ESP32-H2を使ってMatter over ThreadデバイスをDIYする

DIYする

ESP32-H2開発キットを使って、Matter over ThreadデバイスをDIYしました。前回に続いてEspressif社のESP ZeroCodeを利用します。Threadで動作するMatterデバイスは、まだどこからも製品化されていない(と思います)ので、貴重です。

(追記:Matter over Threadの押しボタンスイッチが最近売られているようです)

Tuo Smart Button W/ Matter over Thread (review) - Homekit News and Reviews
Our review of the Tuo Smart Button - currently the only wireless controller that uses Matter over Thread. This is our re...

Matter over Thread

まずは、Matter over Threadについて説明します。現在のMatterの規格では、Matterは物理層・ネットワーク層として、

  • Ethernet
  • Wi-Fi (IEEE 802.11)
  • Thread (IEEE 802.15.4)

の3種類をサポートしてます。Matterデバイスを無線動作させる場合、Wi-FiとThreadの選択肢があります。それぞれをMatter over Wi-Fi、Matter over Threadと呼ぶことにします。下の図のような関係になります。

Wi-Fi/Ethernetの世界とThreadとを橋渡しをするデバイスがThread Border Router (TBR)という装置です。Apple製品だと、HomePodやAppleTVがTBRの役割を果たします。

Threadは、Zigbeeと同じ物理層 (IEEE 802.15.4) の上に、IPv6を載せたものと考えて良いようです。こちらの記事で色々調べて書きました。

話題のThreadを使ってみた
スマートホーム機器を統一すると期待されているMatterは、有線LAN/WiFiに加えて、Threadの上でも動くことになってます。そのためThreadが注目されています。Threadって聞きなれない名前なので、ごく最新の規格なのかと思って...

Wi-Fiと比べてThreadは、低消費電力、接続可能デバイスの個数が多い、メッシュ構造が可能など、IoTデバイスに適しています。特に家庭用のWi-Fiは、せいぜい数十個のデバイスを想定しているので、多数のデバイスを使用するIoT用途には不向きです。なので、Matterを使うならば、Matter over Wi-Fiではなくて、Matter over Threadを使いたいところです。

ESP32-H2

EspressifのESP32シリーズにESP32-H2があります。Matter over Threadのデバイスのために作られたチップです。こちらに紹介動画がありました。

ESP32-H2は、無線モジュールとしてBLEとIEEE802.15.4(ZigbeeやThreadの物理層)を搭載してます。Wi-Fiを搭載していません。電力消費の大きいWi-Fiを搭載しない、IoTデバイスに特化した構成です。

前の記事では、ESP32によるMatter over Wi-Fiの試作をしました。ツールにはESP ZeroCodeというWebアプリを使いました。このWebアプリのデバイス選択肢に、ESP32-H2があり、技術情報へのリンクも用意されてました。

ESP32-H2-DevKitM-1 - - — esp-dev-kits latest documentation

これで是非ともMatter over ThreadのDIYをしてみたいと思いました。AliExpressで探したところ、Espressifの開発キット、ESP32-H2-DevKitM-1という製品が販売されていました

購入したときは送料税込1,911円だったのですが、今は少し値上がりしているようです。600円くらいで買えるESP32無印と比べるとかなり高いです。

開封する

高級品だけあって、綺麗なマッチ箱のような箱に入って、到着しました。注文のタイミングによっては、OEM用のシンプルな包装の場合もあるようです。

ESP32無印とは違い、本体に技適マークの刻印はありません。USBポートはType-Cです。片方がシリアル接続用、もう一方がUSBだそうですが、プログラムをダウンロードする目的では、どちらでも使用可能でした。

Arduino IDEは使用不可

まずは試しにMacに接続してArduino IDEを起動してみました。サポートされてませんでした。ESPのボードマネージャのメニューに、ESP32-H2の選択肢が無いので、まだ対応していないのだと思います。ESP32無印を選んでLチカサンプルをプログラムしてみましたが、ダウンロードの際に下のようにエラーメッセージが出ます。

ZeroCodeを使う

ということで、ESP ZeroCodeを使いました。ESP ZeroCodeに関しては、以下の記事をご覧ください。こちらではESP32無印を使って、Matter over Wi-Fiの明るさ可変スマート電球を作っています。

ESP ZeroCode を使ってMatterデバイスをDIYする
ESP32を作っているEspressif社が、Matterデバイス開発するWebアプリ、ESP ZeroCodeを公開しました。これを使ってESP32で簡単なMatterデバイス(照度のみ制御できるLED照明)を作ってみます。 ESP Ze...

これに従って作業します。前回の記事では、Windowsが必要だったり、コンデンサ追加する必要がありました。今回は全く問題なく、またMacのGoogle Chromeも使用可能でした。前回、コードのダウンロードで苦労したのは、安価な互換性品を使ったせいだったのかもしれません。ということで、以下ではmacOSを使用します。

MatterでLED照度制御

今回も、まずは、照度をコントロールできるスマート電球を目指してDIYします。GPIO 4番をPWM出力として使い、LEDを点灯します。そこでGPIO4に、220Ωの抵抗、LEDを取り付け、GNDに接続します。

前の記事に従って、ESP ZeroCodeで作業を進めます。macOSのGoogle Chromeを使って、ZeroCodeのページにサインインして、

Create a new productを選びます。

適当な名前をつけて、PWM電球を選択します。

次にESPモジュールを選択します。今回取り寄せたESP32-H2-DevkitM-1が選択肢にありますので、選びます。Zigbee, Thread, BLEのマークが付いてます。

部品構成のページでは、LEDをGPIO4に接続する設定になってます。このまま使います。

すると、ZeroCodeのサーバが必要なコードを作ってくれます。なので、これをダウンロードする先のシリアルポートを指定します。

シリアルポートを指定すると、正しくダウンロードが進み、進捗状況のパーセント表示も100%まで達しました。

ダウンロード終了すると、Matter設定用のQRコードが表示されます。

また、この状態で接続したLEDが2秒周期で点滅します。これはペアリング状態になっていることを示してます。

そこでiPhoneのホームから、「アクセサリを追加」を選びます。

カメラで、Chromeの画面に表示されたQRコードを読み取ります。

すると、電球アクセサリーの追加が開始されます。途中で「認定されていないアクセサリ」というメッセージが出ますが、「このまま追加」を選びます。

この結果、iPhoneやMacのホームに、照明アクセサリが表示されます。タップするとLEDがOn/Offします。

余白部分をタップすると、スライダーも表示されます。

ここまで非常に順調に、問題なく進みました。ペアリングも失敗することなく成功します。動作もとても安定しています。ESP32無印で作ったWi-Fi接続Matterデバイスよりも高速に反応している気もしましたが、実際に比較してみたらほぼ同じでした。

搭載RGB LEDを使う

この開発キットには、フルカラーのLEDが取り付けられています。白くて大きな部品なので目立ちます。開発キットの仕様を見ると、この部品は「アドレス可能なフルカラーLED」でGPIO8に接続されているようです。

個々のLEDをアドレス指定で制御できる、リボン形状フルカラーLEDがあります。多分それと同じ部品が搭載されていると予想しました。GPIO8からシリアルでコマンドを出すと、色や明るさが設定できると思われます。

ESP ZeroCodeのデバイス選択の一覧に、LED Stripという項目があります。キットに搭載のLEDに対して、これが使えるのではないかと思い、試してみました。

GPIO8に接続されているということなので(上記の写真にもプリント基板上にそのように表記されています)、GPIO8番を使用するよう設定します。

この後、コードを生成して、ダウンロードしたところ、基板上のLEDが点滅し、ペアリングモードになったことを表示しました。LEDは制御できているようです。iPhoneのホームからHomeKitに接続すると、iPhoneやMacのホームにOn/Offボタンが現れます。

余白をタップすると、RGB色を変更できました。操作している様子を動画で示します。

本当にThreadなのか?

ということで、キットの基板に搭載されたフルカラーLEDを、Matterデバイスとしてコントロールができました。USBケーブルを接続するだけなので、DIY要素は皆無です。プログラムもESP ZeroCodeで設定しただけでした。Matter over Threadのフルカラー照明を簡単に試せるので、楽しいです。

これが本当にThreadで接続しているかどうか、確認するのは難しいです。というのは、HomeKitからは、どの経路で接続しているかは抽象化されているようで、「詳細メニュー」を見ても表示されていません。ESP32-H2搭載の無線モジュールはThreadのみで、Wi-Fiが搭載されていないので、Threadだと信じるしかありません。

と思ってたら、ペアリングの過程で、以下のような表示が出ました。Matterのペアリングはとてもスムーズでしたが、一回だけこのような表示が出ました。

完了を押して、再度、ペアリングを進めると、もうこの表示は出ませんでした。TBRを担っているHomePod miniの機嫌が悪かったのかと思います。これによると、間違いなくThreadで接続するアクセサリとして扱われているようです。

まとめ

EspressifのESP32-H2は、Threadに対応したIoTモジュールです。この開発キットをAliExpressで購入して、ESP ZeroCodeを使って、Matterで動作する照明デバイスをLEDで試作しました。開発キットに搭載されているフルカラーLEDを使うと、すぐにカラー照明を作って試すことができます。Matter over Threadのデバイスは、まだまだ珍しいので、面白いです。

コメント

タイトルとURLをコピーしました