Arduino IDE ボードマネージャーに外部のボードマネージャを追加する方法

Arduino以外のボードマネージャーを

インストールする時詰まったので、

記録しておく

 

・目的

 外部からボードマネージャーを

 インストールすること。

 

・使用したもの

 mac mini (mac os Sierra)

   Arduino IDE 1.8.2

 

・方法

(1)ボードマネージャーのURLを貼り付ける

 

以下のサイトから欲しいボードマネージャーを

探しURLをコピーする。    

https://playground.arduino.cc/Main/ArduinoOnOtherAtmelChips

    

今回はATmega328Pのボードマネージャーが欲しいので

図1の赤線のURLをコピーする。    

f:id:shangtian:20170624205850p:plain

図1:Arduino Playground - ArduinoOnOtherAtmelChips

 

 

(2)追加のボードマネージャーのURL

    

 次に図2、図3を参照して設定ファイルを開き

 赤線の枠のところに、さっきコピーしたURL

 を貼り付ける。

f:id:shangtian:20170624210411p:plain

図2:Preferences

f:id:shangtian:20170624210602p:plain

図3:環境設定

 

f:id:shangtian:20170624210650p:plain

図4:追加のボードマネージャのURL

 

 赤枠に貼り付けたURLを消去するとインストール済み

 でも追加した ボードマネージャが消えるので注意

 

 新く追加したいときは、図4のように

 貼り付けてしまって良い

 

 

(3)ボードマネージャーのインストー

 

 図5、図6を参照してボードマネージャーを開く

 先ほど追加したものはボードマネージャの

 一番最後の方(たぶん)に表示される。

 

 追加したマネージャーが見つかったらインストー

 をクリックすれば完了。

f:id:shangtian:20170624211007p:plain

図5

f:id:shangtian:20170624211019p:plain

図6

mac osでesp-wroom-02 ATコマンドを復活させる(ファームウェアの書き換え)

・目的 

 esp-wroom-02ファームウェアを書き換えATコマンドを使えるように

 する。但しmacを使用した。

 

・使用したもの

    esp-wroom-02

    ジャンパワイヤ

 ブレッドボード

 10kΩ抵抗

 NJU7223F33(レギュレータ)

 usbシリアル変換モジュール
 

・方法

(1)配線

   図1に回路図を示した。またIO15,IO2,IO0の接続の

   ピンの表1に示した。 またブレッドボードに配線した写真を

   図3に示した。         

 

Esp-wroom-02

HIGH or LOW

IO15

LOW

IO2

接続せず

IO0

LOW

表1:ピンの接続   

f:id:shangtian:20170617224513p:plain

図2:回路図

 

f:id:shangtian:20170620171448j:plain

図3:ブレッドボードに配線

 

 

(2)

   まず以下のサイトに行き図4の赤く囲ってある部分をクリックして

  ダウンロードする。

ESP8266_NONOS_SDK_v1.3.0_15_08_08 - ESP8266 Developer Zone

f:id:shangtian:20170617225238p:plain

図4:ESP8266_NONOS_SDK_v1.3.0_15_08_08 - ESP8266 Developer Zone

 

  次に以下のサイトに行き赤い印の部分を クリックしてダウンロードする。

  (図5)

GitHub - espressif/esptool: ESP8266 and ESP32 serial bootloader utility

f:id:shangtian:20170617230534p:plain

図5:GitHub - espressif/esptool: ESP8266 and ESP32 serial bootloader utility

 

       ダウンロードしたzipファイルを解凍して

  ターミナルを開き

  $cd <Downloads>

       $cd esptoos-master

       $sudo python setup.py install  

 

(3)実行

f:id:shangtian:20170620175519p:plain

図6:シリアルポートのアドレス

 

  赤字の部分は上のみたいにシリアルポートのアドレスを確認して 

  下の赤字の部分を変える。青字はファームウェアのバージョンに

  合わせて変更する。

 

       $cd <Downloads>

       $cd esp_iot_sdk_v1-2

       $cd esp_iot_sdk_v1.3.0/bin

       $cd esptool.py -p /dev/cu.usbserial-A1032F1Q write_flash 0x00000 boot_v1.2.bin 0x01000 at/user1.1024.new.2.bin 0xfc000 esp_init_data_default.bin 0xfe000 blank.bin

 

  実行すると図7のようになる。

 

f:id:shangtian:20170617225346p:plain

図7:実行

 

 

 ・結果

 無事ATコマンドが復活

f:id:shangtian:20170620170831p:plain

図8:ATコマンドでファームウェアのバージョン

 

<参考文献>

じわじわ進む: やっとESP8266(WROOM-02)入手

WROOM-02を最新ファームV1.5.4に更新してみる – B’Micom

ESP-WROOM-02 とRaspberry pi 3b を使い温湿度センサ(DHT11)の値をブラウザに表示させる

・目的

 温湿度センサDHT11で計測したデータをesp-wroom-02で受け取り

 apcheとphpが入ってるラズベリーパイに送りブラウザに値を表示させる。図1にイメージ図を示した。

f:id:shangtian:20170611074749p:plain

図1:イメージ図

 

・使用したもの

     esp-wroom-02(自作開発ボード)

     Raspberry pi 3 b(os:raspbian)

     DHT11

 ブレッドボート

 ジャンパワイヤ

 

・方法

 (1)回路

    回路図は図1に示した。dht11

    のDATAピンはIO4に接続した。

    NCピンは接続しなくてよい。

f:id:shangtian:20170615215307p:plain

図2:回路図

 (2)esp-wroom-02側のプログラム

     connectWiFi()と

                 connectServer( float,float)

                 関数を作成した

 

 

    connectWiFi()はwifiに接続する

    関数。

     WiFi.begine(ssid,password)

                 で接続開始。

    接続してない間while文を実行する。

while (WiFi.status() != WL_CONNECTED){
delay(500);
Serial.print(".");
}

 

void connectServer(float t, float h)

で湿温度センサで読み取った値を受け取り

client.print("GET /esp8266/esp8266.php?temperature=");

client.print(t);
client.print("&humidity=");
client.print(h);
client.print(" HTTP/1.1");
client.println("HOST: 192.168.2.110");


でサーバーに送信

 

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <DHT.h>
const char* ssid = "*******";
const char* password = "******";
const char* server = "192.168.2.110";
const int PIN_DHT = 4;
WiFiClient client;
DHT dht(PIN_DHT,DHT11);
//関数の宣言
void connectWiFi();
void connectServer(float,float);


void setup() {
  Serial.begin(9600);
  connectWiFi();
//dhtを開始 dht.begin(); } void loop() {
//湿度 温度を読み取り float humidity = dht.readHumidity(); float temperature = dht.readTemperature(); //関数に値を代入して実行
  connectServer(temperature,humidity);
 //5秒停止
 delay(5000); } void connectWiFi() { Serial.println(); Serial.println(); Serial.println("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED){ delay(500); Serial.print("."); } Serial.println ( "" ); Serial.print ( "Connected to " ); Serial.println ( ssid ); } void connectServer(float t, float h) { if(client.connect(server, 80)){ Serial.println("connected to server"); client.print("GET /esp8266/esp8266.php?temperature="); client.print(t); client.print("&humidity="); client.print(h); client.print(" HTTP/1.1"); client.println("HOST: 192.168.2.110"); client.println("Connection: close"); client.println(); } }    

図3:esp-wroom-02PhpDht11

(3)php側のプログラム

          php側のプログラムを図4に示した。

<?php
$A = file_put_contents('/var/www/html/samplePhp/val.txt',$text,FILE_APPEND);
$A = file_put_contents('/var/www/html/samplePhp/val.txt',$temperature,FILE_APPEND);
$A = file_put_contents('/var/www/html/samplePhp/val.txt',$text2,FILE_APPEND);
$A = file_put_contents('/var/www/html/samplePhp/val.txt',$humidity,FILE_APPEND);
$A = file_put_contents('/var/www/html/samplePhp/val.txt',$ddd,FILE_APPEND);
$s = file_get_contents('/var/www/html/samplePhp/val.txt');
print($s);
echo PHP_EOL;
echo n12br("<br />/n");

?> 

図4:esp8266.php

 

・結果

 php側でGETで値を取得しているが、値が受け取れてない場合でも

 text ファイルに保存してしまっているため、if文によってGETが

 空のときは処理をしないように改善した方がよい。

 

 

 

shangtian.hatenablog.com

 

shangtian.hatenablog.com

 

esp-wroom-02 からphpに値を送りブラウザに表示させてみた

・目的

 esp-wroom-02 から値をphpに送り、

    受け取った値をテキストファイル

    に保存して、ブラウザに表示させる。イメージ図を図1に示した。

f:id:shangtian:20170611074749p:plain

図1:イメージ図

 

・使用したもの

 Raspberry pi 3(os: raspbian ; apache2 PHP)

    esp-wroom-02

 mac mini

    usbシリアル変換モジュール

・方法

  (1)回路作成

    回路図は図2に示した。

    

f:id:shangtian:20170616223236p:plain

図2:回路図

 

    (2)esp-wroom-02側のコード

  今回はセンサの値を送るわけでは無く、指定した値をphpに送信する。

        以下にサーバに接続し値を送る部分のコードを示した。

         サーバーに接続したら実行する

  if(client.connect(サーバのアドレス, ポート番号'今回は80')){}

   

  if文の中のコードは以下

 

  client.print(); でサーバに文字列や変数を送信

  client.println();で改行して送信

  client.write(); は文字列しか送れないので使う時は注意

 client.print("GET phpファイルがあるファイルパス?変数名=値 HTTP/1.1\r\n");

  値 HTTP/1.1の間は1つ開けること

  また\r\nは改行コード

  値を複数送る場合は

  ?変数名=値&変数名=値&変数名=値 HTTP/1.1

client.println("HOST: 192.168.2.110");

    client.println("Connection: close");
    client.println();

 

   全体のコードを図3に示した

#include <ESP8266WiFi.h>
#include  <WiFiClient.h>
const char* ssid = "*********";
const char* password = "********";
//サーバーのアドレス const char* server = "192.168.2.110"; 
//WiFiClient をclientで定義 WiFiClient client;
//関数の宣言 void connectWiFi(); void connectServer(); void setup() {
//シリアル通信を9600bpsで開始 Serial.begin(9600); connectWiFi(); } void loop() { connectServer(); delay(5000); } //アクセスポイントに接続 void connectWiFi() { Serial.println(); Serial.println(); Serial.println("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password);  //もしWiFiに接続してなかったら繰り返す while (WiFi.status() != WL_CONNECTED){ delay(500); Serial.print("."); } Serial.println ( "" ); Serial.print ( "Connected to " ); Serial.println ( ssid ); } //サーバーに接続し値を送る void connectServer() { if(client.connect(server, 80)){ Serial.println("connected to server"); client.print("GET /samplePhp/sample2.php?val=11 HTTP/1.1\r\n"); client.println("HOST: 192.168.2.110"); client.println("Connection: close"); client.println(); } }     

       図3:esp-wroom-02_php

 

*サーバー側でphpファイルを図4のように配置したので

  client.println("GET **********?val=11 HTTP/1.1\r\n);

    の*******は/samplePhp/sample2.php となる。

  

f:id:shangtian:20170616221112p:plain

  

図4:ファイルの配置

 

(3)php側のコード

   php側のコードを図5に示した。  

<?php
$text = $_GET["val"]; //valの値を受け取り変数に格納
//val.txtに値を上書き保存 $A = file_put_contents('/var/www/html/samplePhp/val.txt',$text,FILE_APPEND);
//val.txtの値を読み込み変数$sに格納
$s = file_get_contents('/var/www/html/samplePhp/val.txt');
print($s); ?>

図5:samplePhp.php

 

・結果

 うまく表示させることができたが、ブラウザに表示させた時に

 数字が改行されずに表示されるため見にくい。

 

shangtian.hatenablog.com

 

 

<参考文献>

projects : Biotope: Arduinoで計測した値を指定のwebサーバに送信、保存する

【Intel(R)Edison × Arduino】WiFi接続してArduinoでデータ送信しPHPで受け取る | 意識低い系女と高い系男の一年戦争

建築農業工作ゼミ2009-2010: Arduinoで計測した値を指定のwebサーバに送信、保存する

esp-wroom-02 で温湿度計dht11を使ってみた

・目的

 esp-wroom-02 でdht11を使用し、温湿度計を計測し、シリアルモニターに

 表示させる。

 

・使用したもの

 温湿度計dht11

   esp-wroom-02

   ジャンパワイヤ

   usbシリアル変換モジュール

 mac mini

 

・方法

(1)回路組み立て

   回路は図1のように組んだ。図2は実際の回路の写真。

   dht11のNCピンはどこにも接続する必要はない。

   電源はeneloop lite単三 を直列4本で構成した。 またレギュレータを用いて

   3.3Vの定電圧を供給。

f:id:shangtian:20170615215307p:plain

図1:esp-wroom-02 とdht11

f:id:shangtian:20170615212113j:plain

図2:回路の写真

(2)プログラムコード

         dht11を使用するにはライブラリをインクルードする必要がある。

    詳しくは

 

shangtian.hatenablog.com

    を参照してほしい。 dht11のDATAピンは

     IO4に接続したので

    const int PIN_DHT = 4;

            でピンを指定した。図4に全体のコードを示した。

   

#include <DHT.h>

const int PIN_DHT = 4; //dht11に接続するピンを指定
DHT dht(PIN_DHT,DHT11); //DHTの種類とピンを定義

void setup() {
  Serial.begin(9600);
  Serial.println("DHT11");
  dht.begin(); //dhtを起動
}

void loop(){

  float humidity = dht.readHumidity(); //湿度読み取り
  float temperature = dht.readTemperature();//温度読み取り

  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.println("% ¥t");
  Serial.print("Temerature");
  Serial.print(temperature);
  Serial.println(" *C");

  delay(3000); //3秒停止
}

 図4:esp-wroom-02_dht11

 

・結果

 結果を図5に示した。 部屋にある温度計と比べてみると

1,2度高い温度を表示している。

f:id:shangtian:20170609215139p:plain

図5:dht11による計測結果

Raspberry Pi 3 をhdmi<-->dvi-dでディスプレイ表示させる

結構ここで詰まったのでメモしておく。

 

HDMIに対応していない古いディスプレイが余っていたので

ラズパイ用に使おうと思ったのだが、単純に変換器かまして

もうまくい。ラズパイにraspbianをインストールしたあと

config.txtをいじる必要がある。

 

・使ったもの

 

変換名人 DVI(メス) → HDMI(オス)変換アダプタ DVIB-HDMIAG
 

 

 dvi-dケーブル

 三菱RDT1785

 

 

まず /boot/config.txtを開くと図1みたいなのが出てくる

f:id:shangtian:20170610220614p:plain

 

 

 これを

#disable_overscan=1

#を外してコメントアウトを無効化していく 

disable_overscan=1
hdmi_force_hotplug=1

cdmi_groupでは解像度の設定をする

hdmi_group=1   CEA テレビ画面とか
hdmi_group=2   DMT パソコンディスプレイ

今回パソコン用のディスプレイに出力したいのでDMTの方つまり

cdmi_group=2

とすればいい。次に今回使うディスプレイは 1280x1024なので以下を参照し、

These values are valid if hdmi_group=2 (DMT)
Note: according to http://www.raspberrypi.org/phpBB3/viewtopic.php?f=26&t=20155&p=195417&hilit=2560x1600#p195443 
there is a pixel clock limit which means the highest supported mode is 1920x1200 @60 Hz with reduced blanking.
hdmi_mode=1    640x350    85 Hz
hdmi_mode=2    640x400    85 Hz
hdmi_mode=3    720x400    85 Hz
hdmi_mode=4    640x480    60 Hz
hdmi_mode=5    640x480    72 Hz
hdmi_mode=6    640x480    75 Hz
hdmi_mode=7    640x480    85 Hz
hdmi_mode=8    800x600    56 Hz
hdmi_mode=9    800x600    60 Hz
hdmi_mode=10   800x600    72 Hz
hdmi_mode=11   800x600    75 Hz
hdmi_mode=12   800x600    85 Hz
hdmi_mode=13   800x600   120 Hz
hdmi_mode=14   848x480    60 Hz
hdmi_mode=15   1024x768   43 Hz  DO NOT USE
hdmi_mode=16   1024x768   60 Hz
hdmi_mode=17   1024x768   70 Hz
hdmi_mode=18   1024x768   75 Hz
hdmi_mode=19   1024x768   85 Hz
hdmi_mode=20   1024x768  120 Hz
hdmi_mode=21   1152x864   75 Hz
hdmi_mode=22   1280x768          Reduced blanking
hdmi_mode=23   1280x768   60 Hz
hdmi_mode=24   1280x768   75 Hz
hdmi_mode=25   1280x768   85 Hz
hdmi_mode=26   1280x768  120 Hz  Reduced blanking
hdmi_mode=27   1280x800          Reduced blanking
hdmi_mode=28   1280x800   60 Hz  
hdmi_mode=29   1280x800   75 Hz  
hdmi_mode=30   1280x800   85 Hz  
hdmi_mode=31   1280x800  120 Hz  Reduced blanking
hdmi_mode=32   1280x960   60 Hz  
hdmi_mode=33   1280x960   85 Hz  
hdmi_mode=34   1280x960  120 Hz  Reduced blanking
hdmi_mode=35   1280x1024  60 Hz  
hdmi_mode=36   1280x1024  75 Hz  
hdmi_mode=37   1280x1024  85 Hz  
hdmi_mode=38   1280x1024 120 Hz  Reduced blanking
hdmi_mode=39   1360x768   60 Hz  
hdmi_mode=40   1360x768  120 Hz  Reduced blanking
hdmi_mode=41   1400x1050         Reduced blanking
hdmi_mode=42   1400x1050  60 Hz  
hdmi_mode=43   1400x1050  75 Hz  
hdmi_mode=44   1400x1050  85 Hz  
hdmi_mode=45   1400x1050 120 Hz  Reduced blanking
hdmi_mode=46   1440x900          Reduced blanking
hdmi_mode=47   1440x900   60 Hz  
hdmi_mode=48   1440x900   75 Hz  
hdmi_mode=49   1440x900   85 Hz  
hdmi_mode=50   1440x900  120 Hz  Reduced blanking
hdmi_mode=51   1600x1200  60 Hz  
hdmi_mode=52   1600x1200  65 Hz  
hdmi_mode=53   1600x1200  70 Hz  
hdmi_mode=54   1600x1200  75 Hz  
hdmi_mode=55   1600x1200  85 Hz  
hdmi_mode=56   1600x1200 120 Hz  Reduced blanking
hdmi_mode=57   1680x1050         Reduced blanking
hdmi_mode=58   1680x1050  60 Hz  
hdmi_mode=59   1680x1050  75 Hz  
hdmi_mode=60   1680x1050  85 Hz  
hdmi_mode=61   1680x1050 120 Hz  Reduced blanking
hdmi_mode=62   1792x1344  60 Hz  
hdmi_mode=63   1792x1344  75 Hz  
hdmi_mode=64   1792x1344 120 Hz  Reduced blanking
hdmi_mode=65   1856x1392  60 Hz  
hdmi_mode=66   1856x1392  75 Hz  
hdmi_mode=67   1856x1392 120 Hz  Reduced blanking
hdmi_mode=68   1920x1200         Reduced blanking
hdmi_mode=69   1920x1200  60 Hz  
hdmi_mode=70   1920x1200  75 Hz  
hdmi_mode=71   1920x1200  85 Hz  
hdmi_mode=72   1920x1200 120 Hz  Reduced blanking
hdmi_mode=73   1920x1440  60 Hz  
hdmi_mode=74   1920x1440  75 Hz  
hdmi_mode=75   1920x1440 120 Hz  Reduced blanking
hdmi_mode=76   2560x1600         Reduced blanking
hdmi_mode=77   2560x1600  60 Hz  
hdmi_mode=78   2560x1600  75 Hz  
hdmi_mode=79   2560x1600  85 Hz  
hdmi_mode=80   2560x1600 120 Hz  Reduced blanking
hdmi_mode=81   1366x768   60 Hz  
hdmi_mode=82   1080p      60 Hz  
hdmi_mode=83   1600x900          Reduced blanking
hdmi_mode=84   2048x1152         Reduced blanking
hdmi_mode=85   720p       60 Hz  
hdmi_mode=86   1366x768          Reduced blanking

source:http://elinux.org/RPiconfig#Video

次に今回使うディスプレイは 1280x1024なのでhdmi_modeは35にした。

hdmi_mode=35

以下のコメントを有効かして

config_hdmi_boost=4
dtparam=audio=on
hdmi_force_hotplug=1

設定は終了 

以下に全体を示した。

# For more options and information see
# http://rpf.io/configtxtreadme
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
disable_overscan=1

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720

# uncomment if hdmi display is not detected and composite is being output
hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
cdmi_group=2
hdmi_mode=35

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800

# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on

# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

# NOOBS Auto-generated Settings:
hdmi_force_hotplug=1
 

<参考文献> 

RPiconfig - eLinux.org

三菱 ディスプレイ

Esp-wroom-02 電源について

・はじめに

 最初は単三乾電池直列2本でプログラムを実行することができたが、最近うまく実行で 

 きなくなったので電源についてもう少し考えてみる。

 

・使用したもの

 esp-wroom-02

  ブレッドボード

 USBシリアル変換モジュール

 三端子レギュレータNJU7223F33

 三端子レギュレータTA48033S

 コンデンサ0.1μF

  コンデンサ47μF

  LXDC55使用DCDCコンバータキット(3.3V)

 超小型スイッチングACアダプター3.3V 2A

 単三乾電池 

 角電池

 

esp-wroom-02の電源について

 データシートを図1に示した。

 データシートによるとTypで170mAと記されているがMaxのデータが

 記されていいない。http://nemuisan.blog.bai.ne.jp/?eid=216185

 によるとesp-wroom-02の配線を図1に示した。リセット直後は350mAほど

 消費するようなので、3.3V 500mAぐらいesp-wroom-02に供給できたら

 安定してesp-wroom-02を使うことができるはずだ。

 

 ブレッドボードにジャンパワイヤで配線したが、ブレッドボードにジャン

 パワイヤをさすため、接触抵抗が発生してesp-wroom-02にのVcc接続するとき

 には電圧が3.3Vから2.9Vほどに低下してしまった。注意して配線する必要がある。

 

 

・結果

 

 

NJU7223F33

TA48033S

CDCコンバータキット

ACアダプター3.3V 2A

 

×

表1:結果

 

以下にレギュレータ及びDCDCコンバータの配線について示した。

NJU7223F33のとき

f:id:shangtian:20170609211229p:plain

TA48033Sのとき

f:id:shangtian:20170609211455p:plain