スマートホーム規格である「Matter」に対応したDIYデバイスを製作してみました。
特定の誤家庭の課題を解決するために作られたデバイスなので汎用性はありません(笑)。
リビングと、子供部屋・仕事部屋間のミスコミニュケーションを解消したい。
- 例1:「こはんできたよ〜」と呼んでも、お父さんは会議中で返事ができずに、お母さんプンスカ!
- 例2: 朝のゴミ当番の子供がいつまでも捨てに行かずに、お母さんプンスカ!
- リビングにいるAが、子供部屋や仕事部屋にいるB対し、何種類かの定型メッセージを届けたい。
- Aはメッセージの送信を音声でトリガしたい。またメッセージに対するOK/NGのレスポンスが欲しい。
- しかし、Bはリモート会議や電話をしているため、声によるメッセージは困る。また声によるレスポンスも即座にできないことがある。
2つのContact Sensorと1つのDimmable Lightを内蔵しています。
中央のFlash LightとLCDパネルがDimmable Lightに、2つの押ボタンスイッチがContact Sensorに割り当てられています。
Matter ClientからDimmerable LightがONにされると、Flash Lightを点灯させてメッセージの到着を知らせるとともに、Brightnessの値に応じたメッセージをLCDパネルに表示します。
Contact Sendorは、Matter対応のスマート電球と連携させることで、メッセージへの応答(OK/NG)に使用します。緑のボタンがOKを、赤のボタンがNGです。
システムコントローラにはESP32-DevKitC-VE ESP32-WROVER-E開発ボードを使用し、ファームウェアはMatter SDKにesp32-arduino-matterを使ったArduinoのスケッチとして作られています。
Matter ClientからのMessage通知が届いた状態
Amazon Echoの定型アクションを音声でトリガすることで、こはんができたことをGlimmerGoに通知します。応答として、OKボタン、NGボタンの押下でスマート電球(LDA-8WRGB-VOCE)を10秒間点灯させます。
OKボタン応答 | NGボタン応答 |
---|---|
(注)Matter Deviceを使用するには、Matterコントローラーが必要です。このビデオではMatter非対応の第一世代Echoを使用していますが、別室に第4世代EchoがありそちらをMatterコントローラーとして使用しています。
統合環境 : ArduinoIDE
ハードウェア : ESP32-DevKitC-VE ESP32-WROVER-E開発ボード
ESP32上でesp32-arduino-matter
を使用するための以下の手順を実行する必要があります。
ArduinoIDE
>基本設定
追加ボードマネージャのURLに以下をセット。https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
ツール
>ボードマネージャ
esp32 by Espressif
をインストールする。
バージョンは後述のMatterライブラリのサポートするバージョンにすること。ツール
>ボード
>esp32
ESP32 Dev Module
を選択- C++17対応にする。
Library/Arduino15/packages/esp32/hardware/esp32/2.0.14
を以下のように変更する。(2.0.14
はインストールしたesp32 by Espressif
に依存する。)-std=gnu++11
→-std=gnu++17
- Matterライブラリのインストールとインストール
- GitHubからesp32-arduino-matterの.zipをダウンロードする。
スケッチ
>ライブラリをインクルード
>.ZIP形式のライブラリをインクルード
- ツール設定
ツール
>Partition scheme:...
>Minimal SPIFFS (...
- この設定を行わないと以下のようなエラーが出る。
Library ESP32 Arduino Matter has been declared precompiled: Using precompiled library in /Users/xxxxxxx/Documents/Arduino/libraries/ESP32_Arduino_Matter/src/esp32 最大1310720バイトのフラッシュメモリのうち、スケッチが1692041バイト(129%)を使っています。 スケッチが大きすぎます。https://support.arduino.cc/hc/en-us/articles/360013825179 には、小さくするコツが書いてあります。 最大327680バイトのRAMのうち、グローバル変数が100204バイト(30%)を使っていて、ローカル変数で227476バイト使うことができます。 text section exceeds available space in board Compilation error: text section exceeds available space in board
ツール
>Flash size:...
>8MB (64Mb)
ツール
>Erase All Flash Before Sketch Upload
>Enabled
- ArduinoIDEでGlimmerGo.inoを開く。
(注) ArduinoIDE起動時にライブラリのアップデートのポップアップが出ても無視すること。 - ESP32-DevKitC-VE ESP32-WROVER-E開発ボードとホストPCをUSB接続し、
スケッチ>書き込み
で、スケッチのビルドと書き込みを行う。
(橙白黒のケーブルはシリアルモニタ用なので焼き込みには不要。) - 焼き込みに成功すると、LCDパネルにペアリングコードとIPアドレスが表示されます。
- Matterコントローラーを用意する。
- Amazon Echo以外での動作確認はしていません。Matter対応のEchoについてはこちらを参照。
- Matterコントローラーアプリとペアリングを行う。
- 技術仕様書
- 回路図
Apache License Version 2.0