Arduino勉強会/0N-WiFiモジュールその1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[Arduino勉強会]]
#contents
2015/10/25からのアクセス回数 &counter;
** お手軽IoTモジュールESP-WROOM-02 [#n773420d]
秋月で550円で購入できるWiFIモジュール ESP-WROOM-02((画像...
それ単体でもArduinoとして利用でき、アナログデータをサーバ...
&ref(http://akizukidenshi.com/img/goods/L/M-09607.jpg);
初めて使う時には、Wi-Fiモジュール ESP-WROO...
&ref(http://akizukidenshi.com/img/goods/L/K-09758.jpg);
を使うか、スイッチサイエンスのESP-WROOM-02ピッチ変換済み...
を使うと便利です。
&ref(https://docid81hrs3j1.cloudfront.net/contents/large/...
** Arduinoで始めるWiFiモジュール [#de55f5f7]
今回参考にしたサイトは、技適済みWi-Fiモジュール「ESP8266...
- http://tech-blog.cerevo.com/archives/859/
今回は、ESP-WROOM-02の取り付け基板として、上記サイトで紹...
CEREVOのブレークアウトボードを使いました。
最初は、ハンダ付けしたESP-WROOM-02が正しく動作するか確認...
&ref(check_brd.png);
CEREVOのブレークアウトボードの端子の説明は、以下の通りで...
&ref(http://tech-blog.cerevo.com/wp-content/uploads/2015/...
上記の資料を参考に以下の様にブレッドボードに接続しました。
| CEREVO | ブレッドボード |h
| 1 3V3 | 3.3V |
| 2 EN | 10KΩ抵抗で3.3V |
| 9 GND | GND |
| 11 RXD | USBシリアルのTXD |
| 12 TXD | USBシリアルのRXD |
| 13 GND | GND |
| 15 RST | 10KΩ抵抗で3.3V |
| 18 GND | GND |
シリアルモジュールと USBシリアルモジュール
((FTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き)...
との接続は、以下の通りです。
| CEREVO | USBシリアル |h
| 12 TXD | RXD |
| 11 RXD | TXD |
USBシリアルモジュールをPCに接続し、Arduinoのシリアルモジ...
通信速度は、115200 baudで「CRおよびLF」を選択します。
最初にATコマンドを入力して、OKが返ってくれば接続は大丈夫...
次にESP-WROOM-02のファームウェアのバージョンをAT+GMRコマ...
((後で転送速度の設定ミスでファームウェアの入れ直しをした...
&ref(testbench.png);
*** 転送速度の変更 [#b46b5f68]
3.3Vで動作するArduino Pro Miniと接続する場合、115200 baud...
そこで、ESP-WROOM-02の通信速度を9600 baudに変更します。
Arduinoのシリアルモニタから以下のコマンドを入力してくださ...
#pre{{
AT+UART_DEF=9600,8,1,0,0
AT+RST
}}
このあとシリアルモニタの通信速度を9600 baudに変更してOKが...
((間違ってもAT+IPRを使っていけません。私はこれでファーム...
** テストベンチの作成 [#wb5ad167]
Arduinoと接続してESP-WROOM-02の実験するために、以下の様に...
- PCからATコマンドを入力し、ESP-WROOM-02に転送
- メッセージを送信用のスイッチを追加
&ref(testbench.png);
テストベンチ用のArduinoのスケッチは、以下の通りです。
#pre{{
#include <SoftwareSerial.h>
int sw_pin = 10;
int sTx_pin = 12;
int sRx_pin = 11;
int c;
SoftwareSerial pc(sRx_pin, sTx_pin);
void setup() {
pc.begin(9600);
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leon...
}
pinMode(sw_pin, INPUT);
pc.println("ESP8266IF3tTest");
delay(1000);
}
void loop() {
if (pc.available()) {
while((c = pc.read()) != -1)
Serial.write(c);
}
if (Serial.available()) {
while((c = Serial.read()) != -1)
pc.write(c);
}
if (digitalRead(sw_pin) == LOW) {
pc.println("SW pressed");
delay(500);
}
}
}}
** 通信実験 [#qf755585]
さあWiFiモジュールを使って通信してみましょう。
一番簡単なテストは、Webサーバにアクセスすることです。
以下のSageサーバにHello World!を出力するページを作成しま...
- http://www15191ue.sakura.ne.jp/hello.html
まずは、このページを出力することを目標にしてみましょう。
*** ESP-WROOM-02をルータに接続 [#l9f459d3]
最初にESP-WROOM-02をルータに接続するまでの手順を確認しま...
- ESP-WROOM-02(今回は省略します)
- ATコマンドでOKが返ることを確認
- モード設定(Stationモード1)に設定
- ルータに接続
- 接続状況の確認(プログラム化では不要)
では順に試してみます。
シリアルモニタでATを入力してReturnキーまたは「送信」ボタ...
#pre{{
AT
OK
}}
次にAT+CWMODEコマンドでモードをStationモードの1にセットし...
AT+CWMODE=1と入力してください。
#pre{{
AT+CWMODE=1
OK
}}
ルータに接続するために、AT+CWJAPコマンドを使います。
AT+CWJAP="ルータのSSID","ルータ接続パスワード"を入力して...
#pre{{
AT+CWJAP= "ルータのSSID","ルータ接続パスワード"
WIFI DISCONNECT
WIFI CONNECTED
WIFI GOT IP
OK
}}
AT+CIFSRコマンドで、接続状況を確認します。
AT+CIFSRと入力してください。
#pre{{
AT+CIFSR
+CIFSR:STAIP,"192.168.179.8"
+CIFSR:STAMAC,"18:fe:34:9c:eb:22"
OK
}}
私の公開しているSageサーバのWebに接続します。
SageサーバのIPアドレスは、49.212.164.205です。
AT+CIPSTART="TCP","49.212.164.205",80と入力してください。
#pre{{
AT+CIPSTART="TCP","49.212.164.205",80
CONNECT
OK
}}
AT+CIPSENDコマンドで送信するデータのバイト数を指定します。
今回は、"GET /hello.html HTTP/1.0\r\n\r\n\r\n"を送信する...
AT+CIPSEND=30を入力してください。
つぎに送信する文字列を続けて入力してください。
GET /hello.html HTTP/1.0
次に、2回送信ボタンを押してください(HTTPプロトコルでヘッ...
#pre{{
AT+CIPSEND=30
OK
> GET /hello.html HTTP/1.0
Recv 30 bytes
SEND OK
+IPD,303:HTTP/1.1 200 OK
Date: Sun, 25 Oct 2015 02:04:08 GMT
Server: Apache
Last-Modified: Sat, 24 Oct 2015 23:49:16 GMT
ETag: "c005e-34-522e260431c88"
Accept-Ranges: bytes
Content-Length: 52
Connection: close
Content-Type: text/html; charset=UTF-8
<html>
<body>
<h1>Hello World!</h1>
</body>
</html>
CLOSED
}}
これで、無事SageサーバのWebからHello World!のHTMLが送れま...
とても簡単ですね。
Webサーバの場合は、自動的に接続が切れますが、
クライアントから接続を切る場合には、AT+CIPCLOSEコマンドを...
シリアルモニタに出力された一連の出力は以下の様になりまし...
&ref(first_con.png);
** スイッチサイエンスのピッチ変換モジュール [#u832aa4d]
スイッチサイエンスの
[[ESP-WROOM-02ピッチ変換済みモジュール《フル版》>https://...
は、ブレッドボードの幅と同じサイズのため、以下のようにブ...
&ref(sw_convertor_full.png);
以下の様にブレッドボードで配線をして、5V電源から3.3Vに変...
&ref(sw_conv_brd.png); &ref(sw_conv_cfg.png);
ESP-WROOM-02ピッチ変換モジュールとの結線は以下の通りです。
| ESP-WROOM-02変換モジュール | ブレッドボード |h
| 3V3 | VCC(3.3V) |
| EN | 10KΩでプルアップ |
| IO15 | GNDに接続 |
| IO2 | 10KΩでプルアップ |
| IO0 | GND接続でDownloadモード、未接続でBootモード |
| RXD | USBシリアルのTXD |
| TXD | USBシリアルのRXD |
| RST | プルアップしたタクトスイッチに接続 |
| GND | GND |
** コメント [#k1c98e62]
#vote(おもしろかった[16],そうでもない[0],わかりずらい[1])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
- スイッチサイエンスのピッチ変換モジュールの説明を追加し...
#comment_kcaptcha
終了行:
[[Arduino勉強会]]
#contents
2015/10/25からのアクセス回数 &counter;
** お手軽IoTモジュールESP-WROOM-02 [#n773420d]
秋月で550円で購入できるWiFIモジュール ESP-WROOM-02((画像...
それ単体でもArduinoとして利用でき、アナログデータをサーバ...
&ref(http://akizukidenshi.com/img/goods/L/M-09607.jpg);
初めて使う時には、Wi-Fiモジュール ESP-WROO...
&ref(http://akizukidenshi.com/img/goods/L/K-09758.jpg);
を使うか、スイッチサイエンスのESP-WROOM-02ピッチ変換済み...
を使うと便利です。
&ref(https://docid81hrs3j1.cloudfront.net/contents/large/...
** Arduinoで始めるWiFiモジュール [#de55f5f7]
今回参考にしたサイトは、技適済みWi-Fiモジュール「ESP8266...
- http://tech-blog.cerevo.com/archives/859/
今回は、ESP-WROOM-02の取り付け基板として、上記サイトで紹...
CEREVOのブレークアウトボードを使いました。
最初は、ハンダ付けしたESP-WROOM-02が正しく動作するか確認...
&ref(check_brd.png);
CEREVOのブレークアウトボードの端子の説明は、以下の通りで...
&ref(http://tech-blog.cerevo.com/wp-content/uploads/2015/...
上記の資料を参考に以下の様にブレッドボードに接続しました。
| CEREVO | ブレッドボード |h
| 1 3V3 | 3.3V |
| 2 EN | 10KΩ抵抗で3.3V |
| 9 GND | GND |
| 11 RXD | USBシリアルのTXD |
| 12 TXD | USBシリアルのRXD |
| 13 GND | GND |
| 15 RST | 10KΩ抵抗で3.3V |
| 18 GND | GND |
シリアルモジュールと USBシリアルモジュール
((FTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き)...
との接続は、以下の通りです。
| CEREVO | USBシリアル |h
| 12 TXD | RXD |
| 11 RXD | TXD |
USBシリアルモジュールをPCに接続し、Arduinoのシリアルモジ...
通信速度は、115200 baudで「CRおよびLF」を選択します。
最初にATコマンドを入力して、OKが返ってくれば接続は大丈夫...
次にESP-WROOM-02のファームウェアのバージョンをAT+GMRコマ...
((後で転送速度の設定ミスでファームウェアの入れ直しをした...
&ref(testbench.png);
*** 転送速度の変更 [#b46b5f68]
3.3Vで動作するArduino Pro Miniと接続する場合、115200 baud...
そこで、ESP-WROOM-02の通信速度を9600 baudに変更します。
Arduinoのシリアルモニタから以下のコマンドを入力してくださ...
#pre{{
AT+UART_DEF=9600,8,1,0,0
AT+RST
}}
このあとシリアルモニタの通信速度を9600 baudに変更してOKが...
((間違ってもAT+IPRを使っていけません。私はこれでファーム...
** テストベンチの作成 [#wb5ad167]
Arduinoと接続してESP-WROOM-02の実験するために、以下の様に...
- PCからATコマンドを入力し、ESP-WROOM-02に転送
- メッセージを送信用のスイッチを追加
&ref(testbench.png);
テストベンチ用のArduinoのスケッチは、以下の通りです。
#pre{{
#include <SoftwareSerial.h>
int sw_pin = 10;
int sTx_pin = 12;
int sRx_pin = 11;
int c;
SoftwareSerial pc(sRx_pin, sTx_pin);
void setup() {
pc.begin(9600);
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leon...
}
pinMode(sw_pin, INPUT);
pc.println("ESP8266IF3tTest");
delay(1000);
}
void loop() {
if (pc.available()) {
while((c = pc.read()) != -1)
Serial.write(c);
}
if (Serial.available()) {
while((c = Serial.read()) != -1)
pc.write(c);
}
if (digitalRead(sw_pin) == LOW) {
pc.println("SW pressed");
delay(500);
}
}
}}
** 通信実験 [#qf755585]
さあWiFiモジュールを使って通信してみましょう。
一番簡単なテストは、Webサーバにアクセスすることです。
以下のSageサーバにHello World!を出力するページを作成しま...
- http://www15191ue.sakura.ne.jp/hello.html
まずは、このページを出力することを目標にしてみましょう。
*** ESP-WROOM-02をルータに接続 [#l9f459d3]
最初にESP-WROOM-02をルータに接続するまでの手順を確認しま...
- ESP-WROOM-02(今回は省略します)
- ATコマンドでOKが返ることを確認
- モード設定(Stationモード1)に設定
- ルータに接続
- 接続状況の確認(プログラム化では不要)
では順に試してみます。
シリアルモニタでATを入力してReturnキーまたは「送信」ボタ...
#pre{{
AT
OK
}}
次にAT+CWMODEコマンドでモードをStationモードの1にセットし...
AT+CWMODE=1と入力してください。
#pre{{
AT+CWMODE=1
OK
}}
ルータに接続するために、AT+CWJAPコマンドを使います。
AT+CWJAP="ルータのSSID","ルータ接続パスワード"を入力して...
#pre{{
AT+CWJAP= "ルータのSSID","ルータ接続パスワード"
WIFI DISCONNECT
WIFI CONNECTED
WIFI GOT IP
OK
}}
AT+CIFSRコマンドで、接続状況を確認します。
AT+CIFSRと入力してください。
#pre{{
AT+CIFSR
+CIFSR:STAIP,"192.168.179.8"
+CIFSR:STAMAC,"18:fe:34:9c:eb:22"
OK
}}
私の公開しているSageサーバのWebに接続します。
SageサーバのIPアドレスは、49.212.164.205です。
AT+CIPSTART="TCP","49.212.164.205",80と入力してください。
#pre{{
AT+CIPSTART="TCP","49.212.164.205",80
CONNECT
OK
}}
AT+CIPSENDコマンドで送信するデータのバイト数を指定します。
今回は、"GET /hello.html HTTP/1.0\r\n\r\n\r\n"を送信する...
AT+CIPSEND=30を入力してください。
つぎに送信する文字列を続けて入力してください。
GET /hello.html HTTP/1.0
次に、2回送信ボタンを押してください(HTTPプロトコルでヘッ...
#pre{{
AT+CIPSEND=30
OK
> GET /hello.html HTTP/1.0
Recv 30 bytes
SEND OK
+IPD,303:HTTP/1.1 200 OK
Date: Sun, 25 Oct 2015 02:04:08 GMT
Server: Apache
Last-Modified: Sat, 24 Oct 2015 23:49:16 GMT
ETag: "c005e-34-522e260431c88"
Accept-Ranges: bytes
Content-Length: 52
Connection: close
Content-Type: text/html; charset=UTF-8
<html>
<body>
<h1>Hello World!</h1>
</body>
</html>
CLOSED
}}
これで、無事SageサーバのWebからHello World!のHTMLが送れま...
とても簡単ですね。
Webサーバの場合は、自動的に接続が切れますが、
クライアントから接続を切る場合には、AT+CIPCLOSEコマンドを...
シリアルモニタに出力された一連の出力は以下の様になりまし...
&ref(first_con.png);
** スイッチサイエンスのピッチ変換モジュール [#u832aa4d]
スイッチサイエンスの
[[ESP-WROOM-02ピッチ変換済みモジュール《フル版》>https://...
は、ブレッドボードの幅と同じサイズのため、以下のようにブ...
&ref(sw_convertor_full.png);
以下の様にブレッドボードで配線をして、5V電源から3.3Vに変...
&ref(sw_conv_brd.png); &ref(sw_conv_cfg.png);
ESP-WROOM-02ピッチ変換モジュールとの結線は以下の通りです。
| ESP-WROOM-02変換モジュール | ブレッドボード |h
| 3V3 | VCC(3.3V) |
| EN | 10KΩでプルアップ |
| IO15 | GNDに接続 |
| IO2 | 10KΩでプルアップ |
| IO0 | GND接続でDownloadモード、未接続でBootモード |
| RXD | USBシリアルのTXD |
| TXD | USBシリアルのRXD |
| RST | プルアップしたタクトスイッチに接続 |
| GND | GND |
** コメント [#k1c98e62]
#vote(おもしろかった[16],そうでもない[0],わかりずらい[1])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
- スイッチサイエンスのピッチ変換モジュールの説明を追加し...
#comment_kcaptcha
ページ名:
SmartDoc