2015年9月22日火曜日

ESP8266 開発備忘録

昨年末に買ったESP8266 ESP-01モジュール(3個で$10)をやっと触ってみました。当初ESP-01モジュールはATコマンドベースでArduinoとシリアル通信してIoT(Webサーバ)を実現していましたが、今年の3月にはArduino IDEがこのマイコンに対応、またLuaインタプリターを内蔵したファームウェア  NodeMCUも出ました。

ESP-01モジュールはFlash512Kと小さめだけど、80MHzで動作。RTOSなども実装できるみたいで将来のCDIシステムのプラットフォームによいかも。それにしても$3台は安いです。これ一個と単三電池2本でWebサーバができちゃうのですから。

この3つの環境で動作確認ができたので、備忘録。


⓪USB-TTL変換でパソコンと接続

  • ESP8266は3.3V仕様なのでV5かけると壊れるので注意が必要です。私の使っているUSB-TTL変換器もジャンパーで5V⇔3.3V切り替えができるのだけど、なんせ疑わしい中華製なのでTx信号が5V出てるかも?なので、3.3VZener Diodeで保護しておきました。


①ファームウェアupdate (Windows)

  • GPIO0をLowにしてESPを起動
  • esptool (Python2.7, Pyserial)で動作OK。下の画面はesptoolを使ってESP-01モジュールのMACアドレスを取得したところ。
  • esp8266flasherで動作OK
  • NodeMCUについてくるFlasher(64ビット)だけは通信いくのだけど、flash終了せず。(NG)


②ATコマンド

  • 出荷時のファームウェアでは動作せず。
  • ファームウェアを”AI-v0.9.5.0 AT Firmware.bin” (AI-Thinker製)にしたらOK。
  • ATコマンドで自宅ルーターの設定を入れたら、外部との接続もOK。

③Arduino IDE for ESP8266

  • Arduino IDE1.6.5にESP8266のボードを追加。外部のWEBに接続してデータを取得する サンプルプログラムも一発動作OK
  • コンパイルしたプログラムはIDEでダウンロード可能。だけど、これでオリジナルのファームウェアを上書きしてしまうんです。もとに戻したい(いまさらATコマンドベースを使う人はいないかもしれないけど) 場合は、AT-Thinker製などのファームウェアをflashする必要あります。

④NodeMCU

  • 最新版の0.9.6-devのファームウェアを導入して動作OK。
  • GPIO0にLEDを接続して、WebからON/OFFできました。
  • それにしてもLuaインタプリターがよくわからない。。。

video