== ESP-WROOM-02をATモードで使う方法・および周辺情報の解説 == スイッチサイエンスも販売している、日本で利用できるESP-WROOM-02モジュールは、 上海のESPRESSIF社が開発したESP8266EXというコントローラに32Mbit(=4MByte)のSPIフラッシュメモリが搭載されたものです。 ArduinoIDE以外の環境で開発する際は、ESPRESSIF社のドキュメントなどをよく参照する必要があります。 逆に言えば、ArduinoIDEでの開発は、あまり細かいところは気にせず使いはじめることができます。 以下の記事は、2016/09/04現在ものものです。最新版ではリンクやドキュメントが変更されている可能性があります。 === 資料 === * [http://espressif.com/en/products/hardware/esp8266ex/resources ESPRESSIF社のESP8266EXリファレンスサイト] * [https://espressif.com/sites/default/files/documentation/4a-esp8266_at_instruction_set_en.pdf ATコマンドのマニュアル] ---- === ATコマンドを使ってWiFIアクセスポイントにアクセスする === 以下に、アクセスポイントに接続する再のATコマンドの利用例を示します。 また、実際に利用したコマンドの説明も軽く行います。 内容は、公式ドキュメント`AT Instruction Set`のver 2.0.0に即しています。 1. `AT+CWMODE=1` の送信 * レスポンス:`OK` 2. `AT+WLAP` の送信 * アクセス可能なアクセスポイントをリストアップします。 * レスポンス * `+CWLAP:, , , , , , ` * OK * パラーメータの意味 * : 認証方式 * 0 : OPEN * 1 : WEP * 2 : WPA_PSK * 3 : WPA2_PSK * 4 : WPA_WPA2_PSK * 5 : WPA2_Enterprise (ATコマンドからでは接続できません) * : 文字列, アクセスポイントのSSID * : 信号強度 * : 文字列, アクセスポイントのMACアドレス * : アクセスポイントの周波数オフセット(いわゆるチャンネル) * : 周波数オフセット用のキャリブレーション 3. `AT+CWDHCP_CUR=1,1`の送信 * モジュールのモードおよびDHCPによるIPアドレス振り当てを有効にします。 * コマンド : `AT+CWDHCP_CUR=, ` * パラメーターの意味 * * 0 : softAPモード * 1 : クライアント(satation)モード * 2 : 両方 * * 0 : DHCP無効 * 1 : DHCP有効 * レスポンス * OK * この設定はフラッシュに書き込まれません。設定を保存したい場合は`AT+CWDHCP_DEF`を使ってください。 4. `AT+WJAP_CUR="ssid","password"`の送信 * 接続先アクセスポイントのSSIDとパスワードを設定し、接続します。 * コマンド : `AT+CWJAP_CUR=, [, ]` * パラメータの意味 * : 文字列, AP’s アクセスポイントのSSID * : 文字列, 最大64byteのASCII * [] : 文字列, アクセスポイントのSSID, 幾つかのAPが同じSSDIの場合 * レスポンス * OK * レスポンスまでの間に以下のメッセージが流れます * WIFI CONNECTED * WIFI GOT IP * この設定はフラッシュに書き込まれません。設定を保存したい場合は`AT+CWJAP_DEFF`を使ってください。 5. `AT+CIPSTA_CUR?`の送信 * ESP-WROOM-O2に割り当てられたIPアドレスを確認します。 * レスポンス(例) * `+CIPSTA:ip:"192.168.11.27"` * `+CIPSTA:gateway:"192.168.11.1"` * `+CIPSTA:netmask:"255.255.255.0"` * OK === ATモード用にFlashを書き直す === ArduinoIDEやLuaScprit用にESP-WROOM-02モージュールを設定すると、以降は基本的にその使い方をする他ありません。 ここでは、ESP-WROOM-02にATコマンド用のファームウエアを書き込む方法を解説します。 これにより、ATコマンド用ファームウェアのアップデートや、一旦Arduinoとして使ったモジュールのATコマンド用の変更ができます。 ==== 必要なもの ==== * ESP8266 NONOS SDK([http://espressif.com/en/products/hardware/esp8266ex/resources ESPRESSIF社のESP8266EXリファレンスサイト]参照) * 記事作成時最新版はv2.0.0です * ESP8266 Flash Download Tools([http://espressif.com/en/products/hardware/esp8266ex/resources ESPRESSIF社のESP8266EXリファレンスサイト]参照) * 記事作成時最新版はv3.3.6dです ===== 手順 ===== 1. ESP8266 DOWNLOAD TOOLを開き、DonwloadPathConfigに書き込むbinファイルと書き込み先アドレスを指定してください。 ESP-WROOM-02には、`(NON OS SDKのディレクトリ)\bin\at\readme.txt`に記載されている設定の中の`32Mbit-C1`の項目を利用します。 ※`32Mbit`と`32Mbit-C1`の違いについて:[http://bbs.espressif.com/viewtopic.php?t=1236 espressif BBS] * \bin\boot_v1.6.bin 0x00000 * \bin\at\1024*1024\user1.2048.new.5.bin 0x01000 * \bin\esp_init_data_default.bin 0x3fc000 * \bin\blank.bin 0xfe000 * \bin\blank.bin 0x3fe000 * 左のチェックボックスをチェックし、パスとアドレスが緑になっていることを確認してください。 2. SpiFlashConfigは、以下のように設定してください。 * CrystalFreq : 26M * SPI SPEED : 40MHz * SPI MODE : QIO * FLASH SIZE : 32Mbit-C1 3. `START`を押し、書き込みを開始します。 この時、ESP-WROOM-02は書き込みが開始されるまで何度もリセットがされます。 また、当モジュールは書き込みの際は書き込みモードで起動しなければなりません。 よって、IO0をLOWにしておくことで、自動的に書き込みモードで起動することができます。 4. 下部のプログレスバーがいっぱいになり、FINISHと緑色の画像が表示されれば書き込みは終了です。 5. ArduinoIDEなどシリアルモニタから`AT`と送信し`OK`と返答があれば書き込みは正常に行われています。 * 改行コードは`CR*LF`、レートは`115200bps`にしてください。