ESP32電子工作 ズボラ CYD 編
先日 squeezelite-esp32 の記事を書きましたが、ESP32の他のことも書きたくなって、急遽、3部作にする事にしました。今回はズボラ CYD編!
みなさん半田付けするのって面倒ですよね。プログラミングも面倒ですよね。そんな、みなさんのために極力面倒な事をせずにESP32で電子工作しちゃおう!と言うのが今回のテーマです。
CYDってなに?
Cheep Yello Display でCYD。安い黄色いヤツ(ディスプレイ)です。2.8インチのディスプレイにESP32をつけた安い奴。去年あたりのHackadayの記事 “Cheap Yellow Display” Builds Community Through Hardware あたりから話題になったようです。
2.8インチの320 x 240 LCDディスプレイ
ESP32 WROOM
タッチスクリーン
USBシリアル・インターフェイス
SDカードスロット
GPIOコネクタ(スピーカー端子も)
RGB LED
これだけ乗って、AliExpressなどで約1800円とかで買えます。もちろん完成品です。半田付けする必要はありません。ちょっとした表示ガジェットなんかを作るのなら、これだけで十分ですね。もちろんGPIOコネクタも出ているので、センサなんかも繋がります。
私の場合には、AliExpressのこの店 からアクリルケース付き(約2000円)のやつを買いました。
買ってすぐの状態だとLVGLと言うグラフィック・ライブラリのサンプルが入っていました。(が、これ、ちょっと反応が遅いので今回は使いません)
そしてこのCYD。話題になっただけあって色々な情報・サンプルなんかが集まっているGitHubのレポジトリがあります。ここには資料やサンプル各種(簡単なものから、インターネット・ラジオ、時計などなど)、果てには3Dプリンター用のケースデーターなんかまであります。
ESPHomeをCYDで使う
まあハードウエアはCYDで十分だとしても、どうせプログラミングはしなければならないのでしょ?とお嘆きのあなた。朗報です。
IOT、電子工作の世界でも時代は進んでいて、ローコード、つまりプログラムしなくても設定の範疇で機能を実現できるツールが流行っているのです。
ESP32にはオープンソースの高機能ファームウエアがいくつかありますが、そのうちの1つ、ESPHomeと言うものが今回使うローコードツールで、これは設定だけでIOTデバイスを実現できるものです。
まずは上のESPHomeのトップページをご覧ください、対応するセンサ・デバイス・インターフェイスなどなど数百種類の対応機能があります。CYDのようなディスプレイやフォント・グラフ・メニュー表示などの機能もあります。
これをYAMLファイルで設定してゆくのですが、CYDのRGB・LEDだけならこんな感じです。単にGPIOの出力をRGBに割り振って、それをまとめてRGBライトとして宣言しただけです。(注:実はWifi設定などに数十行必要ですが、それは毎回変わらないし、新規作成した時に自動で追加されます。)
output:
- platform: ledc
pin: GPIO4
id: led_red
inverted: true
- platform: ledc
pin: GPIO16
id: led_green
inverted: true
- platform: ledc
pin: GPIO17
id: led_blue
inverted: true
light:
- platform: rgb
name: RGB
id: led
red: led_red
green: led_green
blue: led_blue
これだけでWEBインターフェイスにLEDライトのスイッチが出現します。
ちなみにこのESPHomeはHomeAssistant(OSSのホーム・オートメーション・サーバー)にも対応していて、そっちに登録するとこんなインターフェイスが出てきます。RGBカラーがUIで設定できて便利ですよね。設定だけで、まだ1行もプログラム書いてないのにですよ。
実際にやってみる
ESPHome環境(とそのDashboard)はdockerを使うと比較的簡単にPCにインストールできます。
docker run --rm --net=host -v "${PWD}":/config -it ghcr.io/esphome/esphome
# MacOSの場合
docker run --rm -p 6052:6052 -e ESPHOME_DASHBOARD_USE_PING=true -v "${PWD}":/config -it ghcr.io/esphome/esphome
そして http://localhost:6052 を開くとDashboardが開きます。
ここから「New Device」を押して新規作成します。名前も付けてください。この名前に「.local」を付けたものがアドレスになります。
ここでモジュールを判別するために接続しようとしますが、MacOSの場合は判別できない?ようなので、skipして素のESP32を選びます。(MacOS以外の場合は接続してどうぞ)
すると新しい設定ができるので「Edit」で編集画面に入ってください。Wifi関係の設定だけが入ったYAMLファイルの内容が表示されます。ただこれだとWEBサーバーが立ち上がらないので、以下の内容を追加します。
この内容(WIFI以外、全くIO設定がない状態)をCYDに一旦かきこみます。CYDをUSBでPCにつないで下さい。(あらかじめCH340ドライバをインストールしておいてください)画面上の「INSTALL」ボタンを押して、「Plug into this Computer」を選ぶとコンパイルが始まり、そしてUSB経由でCYDにファームウエアが書き込まれます。(ちなみに2度目以降はUSBを繋がなくてもWIFI経由で書き込めます)
ではCYDに先ほどの「名前+.local」アドレスでブラウザからアクセスしてみてください。中身は空ですがCYDにアクセスできるはずです。
ここからはお好きな設定で、表示やらセンサーやらを追加して行けます。ちなみに上の方で紹介したGitHubのリポジトリ「ESP32-Cheap-Yellow-Display」のExamplesフォルダにはESPHomeのサンプルもいくつか入っているのでそれを参考にすると良いでしょう。私の場合には時計のサンプル「ESPHomeClock」を参考にシンプルな時計をCYDで作りました。
終わりに
いかがだったでしょうか?本当に半田付けを全くせず、プログラミングもしないでESP32で時計を作ってしまえました。こんなに簡単にできるなんて、電子工作の世の中も進化しているのですね。
あなたも、安い黄色いヤツでちょっと面白いガジェットでも作ってみませんか?
この記事が気に入ったらサポートをしてみませんか?