STM32 マイコンと ESP-WROOM-02 を接続して使おうとしています。 ESP-WROOM-02 の操作はマイコンから UART 経由で AT コマンドを送ることで行います。 コマンドやコマンドに対するレスポンスは "ESP8266 AT Instruction Set" という資料に書かれているのですが,レスポンスの改行コードなど不明なところがあるので,実際にコマンドを送ったときのレスポンスを調べました。
以下,よく使いそうなコマンドとコマンドに対する実際の応答を記します。改行コードは <CR> や <LF> という形で明示します。
ESP-WROOM-02 との疎通確認などに使います。
デフォルトではエコーが有効になっているので,送ったコマンド AT がはじめに返っています。 改行コードは <CR><LF> で良いようです。
コマンド:
AT<CR><LF>
レスポンス:
AT<CR><LF>
<CR><LF>
OK<CR><LF>
バージョン情報を取得します。
他のコマンドではリザルトコード(OK など)の前は空行なのですが,このコマンドでは違うようです…。
コマンド:
AT+GMR<CR><LF>
レスポンス:
AT+GMR<CR><LF>
AT version:1.6.2.0(Apr 13 2018 11:10:59)<CR><LF>
SDK version:2.2.1(6ab97e9)<CR><LF>
compile time:Jun 7 2018 19:34:27<CR><LF>
Bin version(Wroom 02):1.6.2<CR><LF>
OK<CR><LF>
Wi-Fi のモードを設定します。
パラメータは
です。
コマンド:
AT+CWMODE_CUR=1<CR><LF>
レスポンス:
AT+CWMODE_CUR=1<CR><LF>
<CR><LF>
OK<CR><LF>
試しに範囲外のパラメータを与えてみると,ERROR が返ってきます。
コマンド:
AT+CWMODE_CUR=4<CR><LF>
レスポンス:
AT+CWMODE_CUR=4<CR><LF>
<CR><LF>
ERROR<CR><LF>
アクセスポイントに接続します。OK の前に接続状態を示す文字列が返っています。
コマンド:
AT+CWJAP_CUR="ssid","password"<CR><LF>
レスポンス:
AT+CWJAP_CUR="ssid","password"<CR><LF>
WIFI CONNECTED<CR><LF>
WIFI GOT IP<CR><LF>
<CR><LF>
OK<CR><LF>
サーバーに接続します。
コマンド:
AT+CIPSTART="TCP","www.example.com",80<CR><LF>
レスポンス:
AT+CIPSTART="TCP","www.example.com",80<CR><LF>
CONNECT<CR><LF>
<CR><LF>
OK<CR><LF>
サーバーにデータを送ります。
まず初めに以下のコマンドでデータ長を指定します。n のところに実際のデータ長を示す数字を入れます。
コマンド:
AT+CIPSEND=n
すると,すぐに OK が返ります。
レスポンス:
AT+CIPSEND=117<CR><LF>
<CR><LF>
OK<CR><LF>
続けて,送信データの入力を促すプロンプト(> の後にスペース1つ)が返ります。
>
ここで,送信データを送ります。指定したデータ長のデータを送るとその旨を示すレスポンスが返ります。
<CR><LF>
Recv n bytes<CR><LF>
<CR><LF>
SEND OK<CR><LF>
<CR><LF>
続けて,サーバーから返されたデータが,+IPD,m: に続けて返ります。m のところには実際のデータ長を示す数字が入ります。
+IPD,m:HTTP/1.1 200 OK<CR><LF>
以下省略...
SNTP による時刻を取得します。あらかじめ,AT+CIPSNTPCFG コマンドで SNTP を有効にしておく必要があります。
コマンド:
AT+CIPSNTPTIME?<CR><LF>
レスポンス:
AT+CIPSNTPTIME?<CR><LF>
+CIPSNTPTIME:Wed Oct 31 22:21:17 2018<LF>
<CR><LF>
OK<CR><LF>