英語版から機械翻訳しています。 元の記事はこちら
ESP32ベースのスマートホームシステムをバイブコーディングしてみた
新しいエージェントファーストIDEであるAntigravityの話を聞いてすぐ、ESP32-C3を使ってHomeKit対応のスマートホーム兼アンビライトシステムをバイブコーディングしてみました。
ESP32ベースのスマートホームシステムをバイブコーディングしてみた
新しいエージェントファーストIDEであるAntigravityの話を聞いてすぐ、最初にやったのは、Raspberry Pi Pico WのLEDを点滅させるシンプルなプログラムを書かせることでした。当時使える中で一番よかったモデル、Opus 4.5を使いました。もちろん、Arduinoのライブラリや、Picoにコンパイルして書き込むために必要なツールチェーンも丸ごとダウンロードしてくれました。全部一発で終わり、LEDもちゃんと点滅しました。本当に感動しました。
「その瞬間、頭の中ではTony Starkの声でこう聞こえました。『Wake up, Daddy's home.』」

そこで、バイブコーダーなら誰でもやりそうなことをしました。AliExpressで、より強力で軽量なESP32-C3を探しまくりました。AliExpressは大好きです。とにかく安いし、たいていのプロジェクトに必要な部品がほぼ何でも見つかります。ESP32-C3のボードをいくつか、MOSFET、バッテリー、IRブラスター、プロトボードを買いました。ただ、その時点では何を作るのかはまだ全然決まっていませんでした。AIエージェントと低コストなハードウェアの力を使って、何かを作りたいということだけは分かっていました。
システム図
最終的にできたシンプルな構成はこんな感じです。TVが動いているときはHyperionがUDPでRGBデータをストリーミングし、ストリームが止まったときのためにHomeKitとSiri側のライト状態も保持しておきます。

さらに詳しい技術的な内容や詳細な図は、プロジェクトのGitHubリポジトリを見てください。
Apple HomeKit連携
僕はiPhoneを使っているので、当然、作るものはApple HomeKitのエコシステムに連携させたくなりました。幸い、ESP32チップを作っているEspressifには、ESP-HAPという公式のHomeKit SDKがあります。そのおかげで、AIに実装させても、ネットワークスタック全体をバイブコーディングするときにありがちな大量のバグをかなり避けることができました。
Ambilight TVシステム
Instagramのリールで、自分の部屋用にアンビライトTVシステムを作るアイデアを見かけました。作り方や配線を調べてみると、そこまで難しくなさそうでした。必要なのはWS2812Bというアドレス指定可能なLEDストリップと、それを制御するマイコンだけでした。マイコンはもう持っていたので、LEDストリップをAliExpressで注文しました。
適当なYouTubeの解説を見ながらハードウェアを組み立てました。かなりごちゃごちゃでした。一番大変だったのは全部をはんだ付けすることです。PCに依存しない製品っぽく動かすために、12V電源からESP32用の5Vを作る降圧モジュールも追加で買う必要がありました。完成したものは、見た目がまるで蜘蛛みたいになりました。やっと終わったと思ったら、RGBライトがちらついて部屋中がディスコみたいになりました。原因は、GNDをちゃんと共通化していなかったことでした。それを見つけるのに一晩かかりました。どうやらこのLEDストリップには出せる明るさにも上限があるようです。そしてもちろん、LEDはテレビの背面にきれいには貼り付いてくれませんでした。

ハードウェアをなんとかした後は、ソフトウェアに移りました。ここはAntigravityとオープンソースのHyperion NGのおかげで一番簡単でした。ノートPCにHyperion NGをインストールし、画面をキャプチャしてサンプリングした色データをHTTP経由でESP32に送り、LEDを制御するようにしました。やりたいことを説明しただけで、あとはほとんどAIがやってくれました。僕がやったのは、AIに言われたタイミングでESP32をPCに接続したり、外したりするくらいでした。
ついに、自分の部屋用のアンビライトシステムが動くようになりました。新しいセットアップでゲームをするのがかなり楽しみです!
Hey Siri, Turn on my lights...
HomeKit連携のことを覚えていますか? Antigravityに、ESP-HAP SDKを使ってESP32上にHomeKitアクセサリサーバーを実装するよう頼みました。そして、本当にできました! それを使って、TVアンビライトのセットアップをiPhoneに簡単に接続できました。Siriからも操作できます。「Hey Siri, turn on my TV Ambilight system!」という感じです。家に帰ったらライトをつけるようなオートメーションも設定できますし、アプリから雰囲気も変えられます。ESP32アンビライトのセットアップは、Hyperionサーバーに接続しているときはTVアンビライトシステムとして動き、接続していないときはHomeKit対応のムードライトとして動きます。
Fujitsuエアコンの赤外線(IR)通信プロトコルをリバースエンジニアリングして、自作のユニバーサルリモコンを作った
この話はまた今度、もっと詳しく書きます...
GitHub repository
SafalFrom2050/ambilight-esp32-homekit
ESP32-C3上でリアルタイムのHyperionアンビライト、Apple HomeKit制御、自動モード切り替えを実現するファームウェアです。
---
アーカイブから


