ESP-WROOM-02 / micro:bitのWiFi化 / mbed / 動作確認

動作確認としてmicro:bitからESPへ"AT"コマンドを送ってそのリザルトコードを見てみる。
f:id:ti-nspire:20180720081226p:plain:h200 f:id:ti-nspire:20180720081239j:plain:h200

#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);       // 送信し終えたらシリアルポートを指定端子に戻す。
}

実行結果:
f:id:ti-nspire:20180720074501p:plain
f:id:ti-nspire:20180720074611p:plain

―――――――――――――――――――――――――――――――――
"AT+GMR"コマンドを送るとESPのファームウェアのバージョンが返ってくる:
f:id:ti-nspire:20180720091804p:plain