micro:bitからWi-Fi APに接続する
Wi-Fi通信モジュール(ESP8285)とアンテナを搭載したGroveデバイス「UART WiFi V2 (ESP8285)」を使って、micro:bitからWi-Fi AP(アクセスポイント)へ接続する方法を紹介します。UART WiFi V2の制御は、ATコマンドで行います。
1.UART WiFi V2 (ESP8285)
seeedのUART WiFi V2 (ESP8285)は、Wi-Fi通信モジュール(ESP8285)とアンテナを搭載したGroveデバイスです。UART WiFi V2の機能について「15-3.UART WiFi V2 (ESP8285)」で詳しく紹介していますのでご覧ください。
2.micro:bitからWi-Fiアクセスポイントに接続する準備
UART WiFi V2に搭載されているESP8285には、あらかじめATコマンドセットが利用できるファームウェアが書き込まれているので、簡単なテキストコマンド(ATコマンド)を発行することで制御できます。本記事では、このATコマンドを使って、micro:bitからWi-Fiアクセスポイントに接続します。
Wi-Fiアクセスポイントの準備
UART WiFi V2から電波の届く範囲に、Wi-Fiアクセスポイント、または無線LANルーターがあることを確認します。また、アクセスに必要なSSID・パスワードを確認しておきます。
micro:bitとUART WiFi V2の接続
micro:bitにGroveデバイスを接続するには「Grove Shield for micro:bit v2.0」などの拡張ボードを使用すると便利です。本記事では、Grove Shield for micro:bit v2.0の端子P1/P15に接続しました。
3.プログラム(ブロック)
初期設定後、ボタンAを押したときに、Wi-Fiアクセスポイントに接続するプログラムです。正常に接続できた場合、DHCPによって割り振られるIPアドレスを表示します。
最初だけ実行するプログラム
初期設定です。変数「CRLF」は、ATコマンドを発行するときの改行コードとして使用します。変数「SSID」「Password」には、接続するWi-FiアクセスポイントのSSID・パスワードを指定します。シリアル通信の設定として、UART WiFi V2を接続した端子P1・P15、ボーレート115200を指定します。受信バッファーの大きさは128です。初期設定が終わると、LED画面にハートを表示します。
関数:SendATCommandWaitResponse
指定されたATコマンドを発行して、応答を受信する関数です。第1引数は、発行するATコマンドです。第2引数は、正常時に期待する応答に含まれる文字列です。第3引数は、応答の待ち時間(秒)です。第4引数は、待ち時間いっぱいまで待つかどうかの真偽値です。偽の場合、待ち時間の途中で文字列(第2引数)が見つかった場合、そこで中断します。真の場合、待ち時間いっぱいまで待ってから文字列(第2引数)を探します。戻り値は、文字列(第2引数)が見つかった場合は真、見つからなかった場合は偽となります。
ボタンAが押されたときに実行するプログラム
4つのATコマンドにより構成されています。ATコマンドを一つずつ発行しながら、正常に動作し終えると、LED画面にIPアドレスを含む応答内容が表示されます。途中でエラーになった場合は、LED画面にエラーメッセージが表示されます。
一つ目は「AT」コマンドです。UART WiFi V2が、シリアル接続によって正しく接続されていることを確認します。二つ目は「AT+CWMODE」です。動作モードを指定します。1は、Wi-Fiアクセスポイントへ接続するモードです。三つ目は「AT+CWJAP」です。指定したSSID・パスワードで、Wi-Fiアクセスポイントへ接続します。最後は「AT+CIFSR」です。DHCPによって割り振られたIPアドレスを取得します。すべてのATコマンドが正常に処理されると、LED画面にIPアドレスを含む応答内容(Buffer)が表示されます。
4.プログラム(JavaScript)
プログラム(JavaScript)です。
5.動作確認
micro:bitにプログラムを書き込んだ後、USBケーブルをGrove Shield for micro:bit v2.0側のMicro USB端子に接続します。この端子から電源供給しないと正常に動作しませんでした。LED画面にハートが表示されたことを確認して、ボタンAを押します。うれしい顔が表示された後、IPアドレスを含む応答内容が表示されると成功です。