ESP-WROOM-02 ✕ myThings = ?
ESP-WROOM-02って何?
サイズも小さく、Wifi通信ができて、Arduinoのプログラムも書き込めるというもジールです。しかも、1個¥950とかなりお買い得です。
今回は、
WiFi-UARTモジュール ブレークアウトボード実装済み [BB-ESP-WROOM02]
これを購入しました。
ESP-WROOM-02の準備
決死のハンダ付け
これだけでは使えません。
ブレッドボードで使用するためには、ビンヘッダをハンダ付けする必要があります。
必要なもの
- ピンヘッダ 2.54mmピッチ
- ピンヘッダ 2mmピッチ
- ジャンパーピン 2mmピッチ ✕ 4個
- スイッチ(リセットスイッチ用) ✕ 1個
- ハンダの技術
ハンダ付け完了
30分奮闘の結果、みごとにガッタガタ・・・
ゆがんでしまった時の修復方法(テクニック)がわからないので、、、とりあえずこのままいきます。
ブードモード
ESP-WROOM-02にはブードモードが2種類あります
モード | GPIO15 | GPIO2 | GPIO0 |
---|---|---|---|
UART Download Mode(書き込みモード) | LOW | HIGH | LOW |
Flash Boot Mode(実行モード) | LOW | HIGH | HIGH |
目的のモードに合わせて、2mmピッチのジャンパーピンで接続して下さい。
PCとの接続
Arduinoのプログラムを書き込めるとはいえど、microUSBなどの端子はないので、UART通信で接続しないといけません。たまたまショップで見つけたUSB-シリアル変換モジュールで接続します。
PCとの接続確認
PCとESP-WROOM-02の通信テストを行います
小型USB-シリアル変換モジュールのデバイスドライバはProlific社よりダウンロードしてインストールしておきます。
小型USB-シリアル変換モジュールをPCに挿入した状態で、アプリケーション>ユーティリティ>システム情報.app を起動して、ハードウェア>USBをクリックします。
一覧に「USB-Serial Controller」が表示されていたら正常に認識されています。
ターミナルから以下のコマンドを実行します。
ls /dev/tty.usbserial*
/dev/tty.usbserial が見えたらOKです。
認識されない時は何度も何度も抜き差しを繰り返してみてください
動作確認
ArduinoIDEからシリアルモニタを起動します。
改行を「CRおよびLF」、通信速度115200bpsに設定し、入力エリアに「AT」と入力しENTERキーを押すと、図のような応答が返ります。
つぎは、バージョン情報を見てみましょう。
「AT+GMR」と入力して、ENTERを押します。
つぎは、近くのアクセスポイントの一覧を見てみます。
「AT+CWLAP」と入力して、ENTERを押します。おー。リストが返ってきました。
「ERROR」が返ってくる場合は、WiFiモードを確認してみてください。
ESP-WROOM-02には、3つのWiFiモードがあります。
マイクロテクニカのサイトより
本モジュールは、周囲のWi-Fiアクセスポイントに接続するステーションモードと、本モジュールがアクセスポイントとなって他のデバイスを接続させるソフトAPモードを搭載しています。これらのモードは単独で動作させることも、両方どうささせることも可能です。DHCPサーバー搭載ですのでソフトAPモードに接続されたデバイスには自動的にIPアドレスが割り振られます。
「AT+CWMODE?」と入力して、Wifiモードを確認してみてください。
Wifiモード | 値 | 説明 |
---|---|---|
Station mode | 1 | 周囲のWi-Fiアクセスポイントに接続する |
softAP mode | 2 | 本モジュールがアクセスポイントとなって他のデバイスを接続させる |
AP + Station mode | 3 | AP + Station モード |
wifiモードを設定するときは、「AT+CWMODE=値」と送信します。
アクセスポイントへの接続
コマンド | 説明 |
---|---|
AT+CWJAP_CUR=<ssid>,<pwd>[,<bssid>] | アクセスポイントの設定。Flashに保存されません |
AT+CWJAP_DEF=<ssid>,<pwd>[,<bssid>] | アクセスポイントの設定。Flashに保存されます |
※ AT+CWJAPコマンドは非推奨のようです。
IPが取得出来ているか確認してみましょう
コマンド | 説明 |
---|---|
AT+CIPSTA_CUR? | IPの情報を表示します。 |
AT+CIPSTA_CUR=[,,] | 静的IPを設定します。Flashに保存されません |
AT+CIPSTA_CUR? | Flashに保存されているIPの情報を表示します。 |
AT+CIPSTA_CUR=[,,] | 静的IPを設定します。Flashに保存されます |
ESP-WROOM-02 プログラム
やっと使える準備ができたので、つぎはArduinoIDEからプログラムを作成し動かしてみたいと思います。
今回は単純に、ESP-WROOM-02をHTTPクライアントにし、APIにアクセスしてデータ取得すろところを試みたいと思います。
ArduinoIDEの準備
ESP-WROOM-02にプログラムを転送するには、マイコンボード にESP8266を追加しなければいけません。
環境設定
まず、ArduinoIDEの環境設定(Arduino>Preferences…)を開き、「Additional Boards Manager URLsの欄に、以下のURLを登録します。
マイコンボードの追加
ツール>マイコンボード>ボードマネージャー を起動します
ESP8226 CommunityをクリックするとInstallボタンがでてくるので押します。
インストールが終わって、再び、ツール>マイコンボード>ボードマネージャー を開くと「ESP8266 Modules」が追加されています。その中から「Generic ESP8266 Module」を選択します。
プログラムの書き込み
早速ハマる
ESP-WROOM-02をクライアントにしたかったので、ファイル>スケッチの例>ESP8266WiFi>WiFiClientの例をロードし、SSIDなどを環境に合わせて変更して、「マイコンボードに書き込む」をクリックします。
すると・・・
error: failed reading byte
warning: espcomm_send_command: cant receive slip payload data
warning: espcomm_send_command(FLASH_DOWNLOAD_BEGIN) failed
なんしかエラー。
先人の方々のページを探し、こちらのブログが大変参考になりました。
http://qiita.com/ksyundo/items/2ea2e846463aba004534
http://hpclab.blogspot.jp/2015/06/esp8266-arduino-ide-on-mac-os-x.html
ポイント
「Step 3: Modify platform.txt file」 Change it like this wayの部分は、esptool.pyのバージョンによってパラメータの指定方法が異なるようなので、注意して下さい。
今回はこのように変更しました。
#tools.espota.upload.pattern="{cmd}" "{path}/espota.py" -i "{serial.port}" -p 8266 -f "{build.path}/{build.project_name}.bin"
tools.esptool.upload.pattern="/usr/local/bin/esptool.py" -p "{serial.port}" write_flash 0x00000 "{build.path}/{build.project_name}.bin"
書き込み
再び書き込みを行うと・・・
最大499,696バイトのフラッシュメモリのうち、スケッチが226,362バイト(45%)を使っています。
最大81,920バイトのRAMのうち、グローバル変数が31,749バイト(38%)を使っていて、ローカル変数で50,171バイト使うことができます。
esptool.py v1.0.2-dev
Connecting...
Running Cesanta flasher stub...
Flash params set to 0x0000
Writing 233472 @ 0x0... 0 (0 %)1024 (0 %)2048 (0 %)3072 (1 %)4096 ・・・省略・・・ (99 %)233472 (100 %)
Wrote 233472 bytes at 0x0 in 20.6 seconds (90.9 kbit/s)...
Leaving...
USBシリアル変換モジュールも煌々と輝き出しました
プログラムの実行確認
書き込んだプログラムが正しく動いているかどうかを確認します。
AWSを使って、ダミーのJSONを返すAPIを作っておきます。
{
"foo": "esp8266",
"baz": [
1,
50,
219
],
"empty": null
}
ジャンパーピンを「Flash Boot Mode(実行モード)」に差し替えて、電源を投入します。
すると
やりました!!
まとめ
今回は、ESP-WROOM-02の準備から、Arduinoとしてプログラムを実行するまでを試してみました。一番ハマったところはプログラムの書き込みのところでした、
もっと手軽に試してみたい人は
PIC32MX534F064H搭載 PIC CLICKERベースボード [CLICK-32MX]
素敵なボードも購入できますので、こちらでも試してみてはいかがでしょうか。
次回は、myThingsのIDCFチャンネルとの連携の仕方などを試してみます。
Author And Source
この問題について(ESP-WROOM-02 ✕ myThings = ?), 我々は、より多くの情報をここで見つけました https://qiita.com/masaomi_k/items/2ab4c536eb77de02d588著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .