ここからが今流行りのIoT*1っぽいことをやります。
Wi-Fiにつなぐ
ATOMはWi-Fiを使うとき、ATOM自身がAPとなるAPモードと、既存のAPにつなぐSTAモードがあります。今回はSTAモードで既存のAPに接続します。Wi-Fiを使うことでATOMはインターネットへ出ることができるようになります。
Wi-Fiを使うには、WiFiモジュールを使います。あらかじめSSIDとパスワードをchar配列に格納しておき、WiFi.begin(ssid,password)で接続待ちにします。
ここからはマイコンっぽいポイントで、1回で接続が成功するとは限らないので、接続状況を観測して接続できていなければdelayして処理を止めます。それを接続が成功するまで無限ループさせ、接続するまで次の処理へ行かないようにします。
うまくいかないとき
AUTH_EXPIREというエラーで接続できないことがあります。自分の場合、別のスケッチを書き込んでから再度アップロードするとうまくいきました。
サンプル
下記サンプルでは、起動するとLEDが赤く光り、接続されると緑に変わります。myssid、mypasswordの部分は実際に使うSSIDとパスワードにしてください。
#include "WiFi.h" #include "M5Atom.h" const char *ssid = "myssid"; const char *password = "mypassword"; uint8_t DisBuff[2+5*5*3]; void setup(){ WiFi.disconnect(false,true); M5.begin(true, true, true); WiFi.begin(ssid, password); DisBuff[0] = 0x05; DisBuff[1] = 0x05; for (int i = 0; i < 25; i++) { DisBuff[2 + i * 3 + 0] = 0x20; DisBuff[2 + i * 3 + 1] = 0x00; DisBuff[2 + i * 3 + 2] = 0x00; } M5.dis.displaybuff(DisBuff); while(WiFi.status() != WL_CONNECTED){ delay(500); Serial.print("."); } for (int i = 0; i < 25; i++) { DisBuff[2 + i * 3 + 0] = 0x00; DisBuff[2 + i * 3 + 1] = 0x20; DisBuff[2 + i * 3 + 2] = 0x00; } M5.dis.displaybuff(DisBuff); Serial.println(WiFi.localIP()); } void loop(){ }
緑に変わった後ルータの設定画面へ行くと、ちゃんとSerialにprintされたIPアドレスの端末が表示されています。