ESP-WROOM-02 を使って、Web で操作する車を作ってみました。
RoboFarm の「ESP-WROOM-02でつくる『Wi-Fiブルドーザー』工作講座~はじめに」で紹介されていた内容をもとにして、少しカスタマイズしたものを作ってみました。
変更点
変更した点は、以下の通り。
- 元ネタでは、小型のブレッドボードにジャンパー線で回路を作っていましたが、PCBE で回路を設計・エッチングして、基板化しました。 ※基板の中央にある SW は、「中央ー右側」を JP にしてしまってもいいかも。LED 用の抵抗は適当に 1kΩ にしてあるので、3.3V 用の通電 LED が 5V 用のそれに比べて暗いです。
-
使用した ESP-WROOM-02 は、秋月電子通商 の ESP−WROOM−02開発ボード [AE-ESP-WROOM02-DEV : 通販コード K-12236] を使用しました。微妙に大きさやピン配置が違うかもしれません...
- モータドライバとして TA7291P を使用するため、基板上にトランジスタ 2SC1815 による簡単なレベル変換を実装しています。 → 参考:3.3V 5V レベル変換
- 動作状況を表示するための LCD を搭載しました。前回と同様に、I2C接続のキャラクタ液晶を使用しました。 → I2C接続小型キャラクタLCDモジュール 8x2行 : [AQM0802A-RN-GBW : 通販コード P-06669]
- 基板上にタクトスイッチを実装し、起動時のボタン操作で動作モードを切り替えられるようにしました。 ※ESP-WROOM-02 が既存のアクセスポイントから IP アドレスを割り当ててもらうか、ESP-WROOM-02 自身がアクセスポイントとして動作するかを切り替えられるようにしました。 → ESP8266_Car02.ino 内の setup( ) を参照
- 自身がアクセスポイントとして動作するときは、ESP.getChipId( ) の結果を用いて、それぞれに固有の SSID が設定されるようにしました。 → ESP8266_Common.ino 内の getSSID( ) を参照
プログラム
上記のプログラムの内、index.html については、ArduinoIDEのメニューバーから「ツール → ESP8266 Sketch Data Uploader」を選択して、ESP-WROOM-02 内のフラッシュメモリにアップロードします。スケッチが格納されたフォルダ直下の data フォルダ内に保存しておけば、アップロードできます。
まとめ
まだまだ、ESP-WROOM-02 を使い始めて間もないので、いろいろと試行錯誤していますが、気付いたことをまとめておきます。
- ESP-WROOM-02 上のフラッシュメモリを、Arduino の開発環境から SPIFFS(SPI Flash File System)を利用して、ディスクのように扱うことができるのですが、はじめはうまく書き込めませんでした。試行錯誤した結果、下のような設定で書き込めるようになったのですが、落ち着いたらもう少し確認してみたいと思います。
- ESP-WROOM-02 自身をアクセスポイントとして動作させる場合、自身の IP アドレスを指定しておかないと、誰にもアクセスしてもらえない。そのため、自身の IP アドレスを固定しておくと便利。… ESP8266 > Link > APモード > IPアドレスを設定する > WiFi.softAPConfig() - Qiita
- ESP-WROOM-02 自身を WiFi.softAP( ) でアクセスポイントとして動作させるか、WiFi.begin( ) で既存のアクセスポイントに接続するかを、切り替えて動作させる場合、WiFi.disconnect( ) を実行しておかないと、うまくアクセスポイントに接続できなくなる場合がある。… Arduino で WiFiモジュール(ESP-WROOM-02) をWiFiで動かす!:息子と一緒に Makers:So-netブログ
いずれにしても、1000円前後の金額で購入でき、Arduino っぽい感じでネットワーク対応のプログラミングができてしまうので、アイディア次第でいろんなことができそうです。