ESP8266をWifiモデムとして使う

ESP8266モジュールの初期設定


ファームウエアの書き込みが終わったらESP8266モジュールの動作確認と初期設定を行います。
TelaTermを起動して、シリアルポートを指定します。
なお、ほとんどのファームウェアでは、TeraTermメニューの設定→端末→改行コードで送信改行コードをCR+LFに変更しないと
コマンドを受け付けません。
ESP8266の初期設定を行うための結線は以下のようになります。
こちらの回路のGPIO0をGND→PullUpに変更するだけで す。
リセットボタンを押してOKと表示されればファームは正しく書き込めています。

OKと表示されないときは以下のいずれかの原因です。
・ファームが正しく書き込まれていない
・TeraTermのボーレートが正しくない
・TeraTermの送信改行コードが正しくない
・配線が正しくない




以下の手順で初期設定を行います。

@AT+RST:モジュールリセット
AT+RST
OK

ずらずらと表示される
ほとんどの場合、文字化けしていますが気にすることは有りません
初期化シーケンス中はボーレートが変化します

ready

AAT+GMR:バージョン表示
AT+GMR
AT version:1.3.0.0(Jul 14 2016 18:54:01)
SDK version:2.0.0(656edbf)
compile time:Jul 19 2016 18:44:44
OK

BAT+CIPSTAMAC?:MACアドレス表示
AT+CIPSTAMAC?
+CIPSTAMAC:"60:01:94:0e:5b:28"

OK

CAT+CWMODE?:現在のWifiモード表示(初期値は2のSoftAp Mode)
AT+CWMODE?
+CWMODE:2

OK

DAT+CWMODE=1:Station Modeへ変更
AT+CWMODE=1

OK

EAT+CWLAP:アクセスポイントの一覧を表示
AT+CWLAP
+CWLAP:(4,"aterm-e625c0-g",-53,"c0:25:a2:ac:cb:ba",3,11,0)
+CWLAP:(1,"aterm-e625c0-gw",-53,"c2:25:a2:ac:cb:ba",3,11,0)
+CWLAP:(0,"ESP_011834",-51,"62:01:94:01:18:34",3,28,0)
+CWLAP:(0,"AI-THINKER_0D944E",-33,"62:01:94:0d:94:4e",3,30,0)
+CWLAP:(0,"ESP_1B06BB",-51,"5e:cf:7f:1b:06:bb",3,15,-40)
+CWLAP:(3,"ap-wpsG-a8bf10",-56,"1a:fe:34:de:9f:ac",3,8,-40)
+CWLAP:(4,"W02_DCEE061392A6",-77,"dc:ee:06:13:92:a6",11,33,0)

OK

FAT+CWJAP="SSID","Password":アクセスポイントへ接続
AT+CWJAP="aterm-e625c0-g","APのPassword"
WIFI CONNECTED
WIFI GOT IP

OK

GAT+CIPSTA?:IPアドレス表示
AT+CIPSTA?
+CIPSTA:ip:"192.168.10.127"
+CIPSTA:gateway:"192.168.10.1"
+CIPSTA:netmask:"255.255.255.0"

OK

HAT+CWQAP:アクセスポイント切断
AT+CWQAP

OK
WIFI DISCONNECT

ESP-01をWifiモデムとして使う場合、ArduinoとESP-01の間はUARTで通信しますが、ハードウェアUARTで通信すると、 デバッグが何かと厄介です。
そこで、ESP-01とはソフトウェアUARTで通信することにして、ボーレートは安全を見て4800Bpsに変更します。

IAT+UART_DEF:UARTのフレーミング(通信速度など)設定
AT+UART_DEF=4800,8,1,0,0

OK

このコマンドを実行するとボーレートが変わるので、一切のコマンドを受け付けなくなります。
TeraTermメニューの設定→シリアルポートでボーレートを4800bpsに変更します。

再びモジュールリセットを行うと最後に接続したAPに自動的にコネクトします。
また、電源を入れただけでも最後に接続したAPにコネクトします。
これを止める方法が今のところ分かっていません。
AT+RST

OK
WIFI DISCONNECT
DP(ニjヨ,(トV?I#Vd・
ready
WIFI CONNECTED
WIFI GOT IP
AT+CWJAP?
+CWJAP:"aterm-e625c0-g","c0:25:a2:ac:cb:ba",3,-52

OK

ESP8266の設定については、以下のページを大いに参考にさせていただきました。ありがとうございます。
ESP8266 (ESP-WROOM-02)を使う
ESP-WROOM-02の通信速度の設定
ESP-WROOM-02とArduino UNOでhttp通信

ATコマンドの詳細はATコマンドリファレンスに記載されていますが、このドキュメントは頻繁に更新されています。
最新版は「ESP8266 AT Instruction Set」で検索してください。

書き込みと動作確認はGPIO0の扱いが違うだけです。
そこで、以下の様なボードにすると、スライドSWの切り替えだけで、ファームの書き込みと動作確認を行う事ができます。



このようなボードを作ってみました。
ESP-01の横のスライドSWで書き込み/確認を切り替える事ができます。


このようなESP01専用アダプターを見つけました。
5V→3.3Vのレギュレータが載っていて5V仕様です。
Aliで100円以下で買えます。


ESP01を取り付けるとこのようになります。


次回はArduinoからESP-01を操作してみます。