動作確認としてmicro:bitからESPへ"AT"コマンドを送ってそのリザルトコードを見てみる。
#include "MicroBit.h" MicroBit uBit; ///////////////////////////////////////////////////////// void initWiFi(); void ATWiFi(); void debug(ManagedString s); ///////////////////////////////////////////////////////// #define Tx MICROBIT_PIN_P0 #define Rx MICROBIT_PIN_P1 #define DEBUG 1 ////////// // test // ////////// int main(void){ initWiFi(); ATWiFi(); release_fiber(); return 0; } void initWiFi(void){ uBit.serial.redirect(Tx, Rx); // シリアルポートを指定端子に設定する。 uBit.serial.baud(115200); // シリアル通信のボーレートを設定する。 uBit.serial.setRxBufferSize(127); // 受信バッファーのサイズを設定する。 } void ATWiFi(void){ uBit.serial.send("AT\r\n", SYNC_SPINWAIT); // "AT"コマンドをESPへ送って、 uBit.sleep(150); // 少しだけ待って、 ManagedString s = uBit.serial.read(127, ASYNC); // ESPから受信して、 if(DEBUG){ debug(s + "\n"); // 受信した文字列をUSBシリアルへ出力して確認する。 } } void debug(ManagedString s){ uBit.serial.redirect(USBTX, USBRX); // シリアルポートを指定端子から標準端子(USB)に切り替えて、 uBit.serial.send(s, SYNC_SPINWAIT); // 何かの文字列を送信して、 uBit.serial.redirect(Tx, Rx); // 送信し終えたらシリアルポートを指定端子に戻す。 }
実行結果:
―――――――――――――――――――――――――――――――――
"AT+GMR"コマンドを送るとESPのファームウェアのバージョンが返ってくる: