Skip to content

46nori/GlimmerGo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GlimmerGo

スマートホーム規格である「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からの通知を待っている状態 待機時

点灯状態

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を使用するための以下の手順を実行する必要があります。

  1. ArduinoIDE>基本設定 追加ボードマネージャのURLに以下をセット。
    https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
    
  2. ツール>ボードマネージャ esp32 by Espressifをインストールする。
    バージョンは後述のMatterライブラリのサポートするバージョンにすること。
  3. ツール>ボード>esp32 ESP32 Dev Moduleを選択
  4. C++17対応にする。 Library/Arduino15/packages/esp32/hardware/esp32/2.0.14を以下のように変更する。(2.0.14はインストールしたesp32 by Espressifに依存する。) -std=gnu++11-std=gnu++17
  5. Matterライブラリのインストールとインストール
    1. GitHubからesp32-arduino-matterの.zipをダウンロードする。
    2. スケッチ>ライブラリをインクルード>.ZIP形式のライブラリをインクルード
  6. ツール設定
    • ツール>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

ファームウェアのビルドとESP32への焼き込み

  1. ArduinoIDEでGlimmerGo.inoを開く。
    (注) ArduinoIDE起動時にライブラリのアップデートのポップアップが出ても無視すること。
  2. ESP32-DevKitC-VE ESP32-WROVER-E開発ボードとホストPCをUSB接続し、スケッチ>書き込みで、スケッチのビルドと書き込みを行う。
    (橙白黒のケーブルはシリアルモニタ用なので焼き込みには不要。)
  3. 焼き込みに成功すると、LCDパネルにペアリングコードとIPアドレスが表示されます。

GlimmerGoの使用方法

ドキュメント

License

Apache License Version 2.0

Releases

No releases published

Packages

No packages published

Languages