Rubyなにそれおいしいのシリーズ(笑)
GR-CITRUS+WA-MIKANは、Rubyの環境(Rubic)ではGR-CITRUSからWA-MIKANのWiFi機能を使うクラスが用意されていますが、ArduinoライクなC++環境であるIDE for GRではクラスが用意されていません。かたくなにC++でGR-CITRUS+WA-MIKANを使う方法を以下にまとめます。
WeeESP8266の導入
ArduinoからESP8266のWiFi機能を使うライブラリとして、WeeESP8266が知られています。ただしITEAD Studioのオリジナル版はコンストラクタの記述が不作法でGR-CITRUS等では動作せず。それを修正した名古屋大ERTL版も自分の環境ではなんかうまく動かない所があったので、さらに修正したものを作成しました。いずれもGitHubで公開されているので、ダウンロードするなりクローンするなりしてArduinoのlibrariesフォルダに入れます。
GR-CITRUSとWA-MIKANの接続
GR-CITRUSをWA-MIKANに挿します。初期状態のジャンパでは下記のような接続になっています。
GR-CITRUS | WA-MIKAN |
---|---|
0 | (ESP8266 RXD) |
1 | (ESP8266 TXD) |
18 | N.C. |
19 | SD SWI(カード検出) |
2 | SD CS |
3 | (ESP8266 IO13) |
4 | (ESP8266 RESET) |
5 | ESP8266 EN |
6 | (ESP8266 IO15) |
7 / Serial3.TX | ESP8266 RXD |
8 / Serial3.RX | ESP8266 TXD |
9 | (ESP8266 RXD) |
10 | (ESP8266 TXD) |
11 / SPI MO | SD MOSI |
12 / SPI MI | SD MISO |
13 / SPI CK | SD CLK |
14 | (ESP8266 IO4) |
15 | (ESP8266 IO2) |
16 | (ESP8266 IO5) |
17 | (ESP8266 IO0) |
※()は初期状態ではジャンパ未接続
つまり、ESP8266のシリアルポートはGR-CITRUSのSerial3に接続されます。それ以外の両者のI/O接続はESP8266のENがGR-CITRUSの5ピンに接続されているのみです。必要に応じてESP8266のRESETやIO0をGR-CITRUSに接続してGR-CITRUSからESP8266のファームを書き換えたり、他のI/Oを接続することもできますが、ひとまず初期状態のジャンパと初期状態のESP8266ファーム(ATコマンド仕様)で使うことにします。
スケッチ
WeeESP8266のサンプルスケッチのConnectWiFiを少しだけ修正して動作を確認します。
#include "ESP8266.h" // 適宜、自分のWiFi環境に合わせて #define SSID "HOGE" #define PASSWORD "HOGEHOGE" ESP8266 wifi; void setup(void) { Serial.begin(115200); Serial.print("setup begin\r\n"); // ESP8266との接続はSerial3 // またESP8266のデフォルトのボーレートは115200 wifi.begin(Serial3, 115200); // ESP8266のENピンをHIGHに(正論理のイネーブル) pinMode(5, OUTPUT); digitalWrite(5, HIGH); Serial.print("FW Version: "); Serial.println(wifi.getVersion().c_str()); if (wifi.setOprToStation()) { Serial.print("to station ok\r\n"); } else { Serial.print("to station err\r\n"); } if (wifi.joinAP(SSID, PASSWORD)) { Serial.print("Join AP success\r\n"); Serial.print("IP: "); Serial.println(wifi.getLocalIP().c_str()); } else { Serial.print("Join AP failure\r\n"); } Serial.print("setup end\r\n"); } void loop(void) { }
その他の使い方については、WeeESP8266のサンプルなどを参考にしてください。とりあえずこれで、GR-CITRUSでWA-MIKANのWiFiが使えることが確認できました。