【ESP-WROOM-02】【電子工作】ATコマンドを使うまで

ESP-WROOM-02を買いまして。

使えるようにセットアップします。

f:id:engetu21:20151108151653j:plain

 

1.そもそもESP-WROOM-02とは?

まぁ、こちらを御覧ください。

親指サイズでWiFi通信を実現し、クライアントとしてはもちろん、Webサーバとして動かすこともできる優れものとのこと。

例えば、人感センサと組み合わせて外に設置し、訪問者があればWiFi通信で部屋の中のサーバを介してツイートできる、とかいろいろできるようになります。

何よりの魅力は1000円以下で購入できるということです。

 

2.準備するもの

  1. ESP-WROOM-02ピッチ変換済みモジュール《フル版》 - スイッチサイエンス

  2. FTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き) - スイッチサイエンス

  3. ブレッドボード

  4. ジャンパーコード(オスーオス)

  5. 抵抗(10kΩ)

  6. ピンヘッダ
  7. ハンダごて

 

3.接続

※いつもどおりFritzingで作ろうと思ったものの、パーツが見つからず・・・。写真と文章で残します。

 

私が買ったものはスイッチサイエンスさんのESP-WROOM-02ピッチ変換済みモジュール《フル版》 でして、これにはまずピンがついていないため、ピンヘッダのハンダ付けが必要になります。(※初ハンダ付け)

 

ハンダ付けが問題なく終われば、次はブレッドボードによる接続です。

先人たちのものを参考にしたものの、ピン配置には苦戦しました。

それでもポイントとなるものがいくつか有りまして、

  1. ESP-WROOM-02にはファームウェアへの書き込みモード(UART Download Mode)と実行モード(Flash Boot Mode)がある。
  2. モード変更の鍵をにぎるのは「IO15」「IO2」「IO0」の3つ
  3. 2のそれぞれには10kΩの抵抗を挟み、Pull Up、Pull Down接続をさせなければならない
  4. 「EN」もPull Upで接続しなればならない(10kΩの抵抗を挟む)。

ピンアウトについては、ESP-WROOM-02を使ってみる : Eleclog.さんで図で整理されているため、こちらが参考になります。

というわけで、下手くそですが私が設定した配線は以下のとおりです。

なお、USBシリアル変換アダプタは3.3Vでジャンパピンを設定しておきましょう。

f:id:engetu21:20151108160823j:plain

f:id:engetu21:20151108161021j:plain

 

USBシリアル変換アダプタ <-- --> ESP-WROOM-02

---------------------------------------------------------------------------

VCC <-- --> 3.3V

VCC <-- 抵抗(10kΩ) --> EN

GND <--  --> GND

TX <--  --> RXD

RX <--  --> TXD

GND <-- 抵抗(10kΩ) --> IO15

VCC  <-- 抵抗(10kΩ) --> IO2

VCC  <-- 抵抗(10kΩ) --> IO0

※上記のIO0をVCCに繋げれば実行モードGNDに繋げれば書き込みモードになります。写真はVCCに繋げているので実行モードで動きます。

 

なお、Arduinoマイコンとしても使える小型WifiモジュールESP-WROOM-02を使ってみる(準備編) | Device Plus - デバプラで紹介されているように、ジャンパピンで制御できる形のものが販売されていますので、その場合は配線が上記と異なります。

 

USBシリアル変換アダプタは、何もしていないとUSBをWindowsに接続しても認識されないため、ドライバを入れる必要があります。以下を参照。

FTDIのUSBシリアル変換器のドライバのインストール法(1) - しなぷすのハード製作記

 

 3.Arduino IDEの設定

こちらのサイトを参考に。

技適済み格安高性能Wi-FiモジュールESP8266をArduinoIDEを使ってIoT開発する為の環境準備を10分でやる方法 - Qiita

 

ボード設定は、「Generic ESP8266 Module」を選択していれば問題ないと思います(たぶん)。

 

4.Arduino IDEのシリアルモニタでATコマンドを実行してみる

シリアルモニタを起動してATコマンドを実行します。

なお、ATコマンドはピン設定が実行モード(Flash Boot Mode)になっていないと実行できません。

f:id:engetu21:20151108170454j:plain

 

AT、AT+GMRとコマンドを打ってみます。

ただし、右下の改行設定とビットレートをそれぞれ「CRおよびLF」、「115200bps」にしないと正常に動きません。

f:id:engetu21:20151108171137j:plain

配線が問題なければ、上記のように応答が返ってきます!

 

5.ファームウェアのアップデート

4の画像を見ればわかりますが、ATバージョンが0.25、SDKバージョンも1.1.1となっていることから、現行バージョンより若干古いです。

ので、アップデートをします。

アップデートの際には書き込みモード(UART Download Mode)に変更し忘れないように。

 

参考サイト:ねむいさんのぶろぐ | ESP-WROOM-02を使ってみる2 -外付けSPIフラッシュの書き換え-

 

以下のサイトから必要なモノを取得してきます。

FLASH_DOWNLOAD_TOOLS_v2.4_150924.rar:http://bbs.espressif.com/viewtopic.php?f=5&t=433

esp_iot_sdk_v1.4.0_15_09_18.zip:http://bbs.espressif.com/viewtopic.php?f=46&t=1124(ファイルは下の方)

 

 FLASH_DOWNLOAD_TOOLSを実行すると以下の様な画面になるため、参考サイトを見ながら設定を行います。で、実行

 

f:id:engetu21:20151108172633j:plain

bin\boot_v1.4(b1).bin:0x0

bin\at\1024+1024\user1.2048.new.5.bin:0x1000

bin\blank.bin:0xFE000

bin\esp_init_data_default.bin:0x3FC000

bin\blank.bin:0x3FE000

 

書き込み中はコンソールで以下のように表示されます。

Erasing flash...
head: 1 ;total: 1
erase size : 4096
Writing at 0x00000800... (0 %)
Leaving...
Erasing flash...
head: 15 ;total: 69
erase size : 221184
Writing at 0x00045000... (95 %)
Leaving...
Erasing flash...
head: 1 ;total: 1
erase size : 4096
Writing at 0x000fec00... (97 %)
Leaving...
Erasing flash...
head: 1 ;total: 1
erase size : 4096
Writing at 0x003fc000... (97 %)
Leaving...
Erasing flash...
head: 1 ;total: 1
erase size : 4096
Writing at 0x003fec00... (98 %)
Leaving...
com closed 

 正常に書き込みが完了すれば「Finish」と表示されます。

 

再度、ATコマンド実行のため、実行モード(Flash Boot Mode)にピンを変更し、シリアルモニタからコマンドを実行します。

f:id:engetu21:20151108173230j:plain

AT、SDKともにバージョンがアップされました!