ESP8266 (ESP-WROOM-02)を使う

モジュール一個で簡単にWiFiに接続できるESP-WR00M-02を使ってみました。シリアルケーブルでの接続からネットワークへの接続手順までを紹介します。

IMG_4313

購入はスイッチサイエンスから
ESP-WROOM-02ピッチ変換済みモジュール《シンプル版》
ESP-WROOM-02ピッチ変換済みモジュール《フル版》
どちらでも同じ様に使う事ができます。とにかく在庫が安定しないので見つけたら即ゲットという勢いで買いましょう。

このモジュールはシリアル通信でパソコンやArduinoと通信してネットワークに接続することが出来ます。通信にはATコマンドというコマンドを使っています。

このモジュール自体のプログラム(Firmware)を書き換えて単独で使える様にするという方法もあるようですが、様々な拡張と手軽に使える事を考えてArduino UNOと接続して使う事を目的とします。

まずはパソコンのUSBとシリアルケーブルで接続してArduino IDEのシリアルモニタを使って通信してみます。ESP-WROOM-02は3.3Vで動作するので3.3Vのロジックレベル出力ができるケーブルを用意します。私はAmazonで購入しました。
VicTsing USB to TTLシリアルケーブルチップセットPL2303HX 1.0M 6フィートArduino UNO mini 用 [並行輸入品]

このケーブル説明書もなんにも無くてケーブルが一本送られてくるだけです。線が4本出ていますが、どの線が何の信号なのか説明が無いという代物。AmazonのFAQにかろうじて説明が出てました。
赤 → +5V
黒 →GND
緑 → TX(3.3V)
白 → RX(3.3V)
だそうです。
このケーブルでは電源の出力が+5Vなので3.3Vの電源を他に用意する必要があります。3.3Vを作るにはArduino UNOの3.3V端子から取り出しても良いですし、3.3V出力の3端子レギュレータを使っても良いでしょう。このモジュールの最大電流は80mA程度の様です。Arduino UNOの3.3Vは最大50mAまでなので動作しない場合が有るようです。
私は秋月の
低損失3端子レギューレータ3.3V 500mA
を使いました。

接続方法は
ESP-WROOM-02 WiFi Module
の7ページに出ている情報を元にします。
Flash Boot Mode(通常使用)では
GPIO15 LOW
GPIO0 High
GPIO2 High
EN High
とします。その他にGNDと+3.3Vを接続します。通信線はUSBシリアルケーブルとモジュールのTXD、RXDをクロスさせて接続します。
USBシリアル TX → RXD
USBシリアル RX → TXD
となります。回路図は以下の様になります。

スクリーンショット 2015-08-28 15.56.08

ブレッドボードを使った接続の様子です。
IMG_4314
左側が3.3Vのレギュレータとコンデンサ。白と黄色が信号線。
IMG_4316

通信にはターミナルソフトであればどれでも使えますがArduino IDEのシリアルモニタを使う事にします。

スクリーンショット 2015-08-28 16.03.01
ツールメニューのポートから/dev/cu.usbserialを選択します。

serial
シリアルモニタのボタンをクリックして通信のウインドウを開きます。

シリアルモニタ

表示されるウインドウで通信速度を設定します。ESP-WROOM-02のデフォルトの通信速度は115200bpsです。

スクリーンショット 2015-08-28 17.24.23
これで通信の準備が出来ました。
ATと入力して送信ボタンをクリックすると(リターンキーでも可)コマンドが送信されます。
正常に通信していると

スクリーンショット 2015-08-28 17.15.19

と表示されます。以下コマンドをいくつか紹介します。

AT+GMR
でファームウェアのバージョンが返って来ます。

AT+CWMODE_DEF=1
動作モードを設定します。1はStation Modeです。普通にアクセスポイントに接続する時はこのモード。このコマンドはモードをフラッシュメモリに保存します。保存したく無い時には
AT+CWMODE_CUR=1
を使います。

AT+CWJAP=”アクセスポイントの名前”,”パスワード”
アクセスポイントの名前とパスワードはご自分の環境のものを入れて下さい。

AT+CIFSR
IPアドレスやアクセスポイントのMACアドレスが返って来ます。

以上の手順でアクセスポイントに接続できます。

スクリーンショット 2015-08-28 17.18.34

固定IPで接続する時は以下のコマンドを使います。
AT+CIPSTA_DEF=”192.168.6.100″,”192.168.6.1″,”255.255.255.0″
パラメータはIPアドレス、ゲートウェイアドレス、サブネットマスクになります。

ATコマンドの詳細については次のPDFESP8266 AT Instruction Setに詳しい説明があります

IPアドレスはDHCPからとってゲートウェイアドレスは固定、DNSサーバーの設定とかってどうやるのでしょうか?