これまで、ArduinoやESP8266、Raspberry Piで、いろいろ遊んできましたが、当面の目的にはESP32が最も適していそうなので、しばらくESP32に集中してみることにします。
目次
やりたいこと
- ESP32を搭載したDevKit(秋月電子購入品)をまずは入門として使う。
- ESP32でセンサー(複数台)準備。通信はワイヤレス
- ESP32でゲートウエイ(一台)センサーとの通信は、ワイヤレス
- ワイヤレスとしては、WiFiとBLEの選択可
- WIFIの場合、まずはSSIDとパスワードをコード内埋め込みから。
- IP固定あるいはDHCP
- 外部のAPを使う方法と、SoftAPでESP32自身をAPとしてつなぐ方法もトライ
- サーバー側のUSBにPCをホストとしてつなぐ
- ホストのPCでセンサー結果を表示、あるいは制御
- Blynkを使ったリモート制御とブラウザを使ったリモート制御の選択可
- ESP32への電源供給はそれぞれUSB端子から
- センサーは、各種(GPIO、温度、湿度、気圧、GPS、光、音、動き・・・・)
- 制御は各種(GPIO、LED、モーター、音・・・)
- PC側のソフトは、VCあるいはVBあるいは、Python
- ESP32のソフトはCを基本とする
- ESP32の開発環境はArduino IDEとする
- 気軽に持ち運べるツールとして実現する。必要に応じて基板を作成する
- 極力センサー側では処理、計算等を行わず、極力、知的処理はサーバー側に置く
概念はこんな感じ。
先々、いろんなセンサーやいろんな制御へ拡大できるようにしておくつもり。
また、セキュリティー面もおいおい考慮していく必要があります。
工場内等での通信環境が不安定な際に必要なMESHやマルチホップの対応は、ESP32では行わず、別のプラットフォームも調査していく予定です。
これまでのESP32トライ
これまでにも、ESP32の単体モジュールを買って、アダプター基板にはんだ付けしたり、3.3Vのシリアルアダプターをつないでプログラムを書き込んだり、Deep Sleepモードを試して単体でどこまで省エネ出来るか試したり、WiFi経由でのソフトウエア更新を試してみたり……と、遊んできましたが、正直、自分で周辺回路をはんだ付けするのが億劫になってきたのと、超低消費電力の用途以外であれば、DevKitを使ったほうが、断然便利そうなので、しばらくは、こちらを使って遊んでみようと思います。
EN端子やIO0端子に対する書き込み時の制御も、この基板だとArduinoと同様に自動でできるらしいので。
ということで、秋月電子の通販で、先ず、DevKitC を5個、注文しました。
早く届け〜!!
開発環境の選択
ハードウエアが到着する前に、開発環境を整備します。ESP32の開発環境としては、いくつか用意されています。このページに比較記事があります。
ESP-IDF
ESP32の公式開発フレームワークは、ESP-IDF (Espressif IoT Development Framework)のようです。C++で書いて、makeでコンパイルや書き込みを行う環境です。すべての機能にアクセスできますが、IDEでは無いので、とっつきにくいようです。ベースにESP-IDFを使いつつ、IDEとしては別にEclipseやVisual Studioを使う方法もあるようです。
Arduino Core for the ESP32
ESP32の開発環境としては最もメジャーなやり方のようです。ESP32のすべての機能を活かせるかどうかはよくわかりませんが、IoTの入門としてはこれが一番とっつきやすそうです。私は、Arduinoの開発でArduino IDEを使っていたので慣れていることもあり、これを使うことにします。Cで書いて、ArduinoのIDE上でコンパイルから書き込み、実行でき、またシリアルモニターも一体化しているので便利に使えるようです。
その他
スクリプト系ではPython、Lua、JavaScriptで開発ができるようです。また、ForthやBASICでも開発できるようですが、メジャーでは無いので私の選択候補からは外しておきます。
Arduino Core for ESP32の準備
このページを参照にして、環境を準備してみます。
Arduino IDEは、Arduinoのページからインストールすれば良し。私のPCのArduino IDEのバージョンは1.8.5で、最新では無いため、今、久しぶりに起動してみたら、新しいバージョンのダウンロードを促されました。Windows用の1.8.9をダウンロードして実行すると、今のバージョンをアンインストールする必要があるとのこと。念の為に、自分で作ったファイルがこのフォルダーには無いことを確認した上で、続行しました。最後まで終了したので大丈夫でしょう。
再度、Arduino IDEを立ち上げたら、ちゃんと 1.8.9になり、かつ以前のスケッチが表示されたので大丈夫でしょう。
次に、Board Managerを使って ESP32の設定をします。「環境設定」の「追加のボードマネージャのURL」に、https://dl.espressif.com/dl/package_esp32_index.jsonと入力してOKし、ボードマネージャの検索窓にESP32と入力すると以下の画面になります。
1 |
<a href="https://bcn.xsrv.jp/wp-content/uploads/image-65.png"><img style="display: inline; background-image: none;" title="image" src="https://bcn.xsrv.jp/wp-content/uploads/image_thumb-65.png" alt="image" width="653" height="369" border="0" /></a> |
1.02が最新(安定版として)のようなので、これをインストールすると、ちょっと時間を要したけれど無事終了しました。ツールのボード選択画面から、ESP32 Dev Moduleを選択して終了です。
ESP32のボード設定にいろいろオプションがありますが、ここから先は、基板が到着してからにします。