generated at
マイコンでドア開閉を検知してGoogle Homeで通知
作るまでもなくSwitchbot 開閉センサーでできる

---
やること
ドアを2分あけっぱなしにしたらユーザーに通知
sleep秒ごとにn回通知回数をしたら通知を終了。ドアを閉じられるまで待つ

理想
ドア - IC - Google Home
方法1 距離センサー(VL53L0X)を使う

ドアの開閉の検知方法をどうするか?
0.3-2m ±3%
(採用)方法2 磁気センサーを使う
これはパーツライブラリに存在しないので、obniz.jsで扱いたい場合IOやBLEを操作して部品を使う - obniz Docs必要がある
パーツライブラリを作成するということ
外部にあれば
M5Stackのサンプルコード
採用理由
確実にしめられたことがわかりそう
ドアがあいたときに距離が取りづらいレイアウトなのでやりやすそう
検知したらgoogle-home-notifierをつかってユーザー通知

ボードの選定
obnizをつかってみたいのでobniz対応基盤から選ぶ
obniz Board 1Y
スリープ機能がある
>スリープ中はobniz Board1Yの3.3V系統がシャットダウンされます


購入
obniz Board 1Y(常駐用)
M5StickC(表示UI用)
⬜磁石

組み立て
⬜M5StickCで遊ぶ
M5StickCにobnizOSをインストールする
obnizの情報をM5StickCで表示する
常駐できるように組み込む
ドア開閉で起動、終わったらスリープする
設置
1Yの電源を用意する
1Yをドアに固定する


--

常駐させる方法
js
//loop distanceObniz.repeat(async () => { disMillVal = await disSensor.measureWait(); if (disMillVal < DISTANCE_THORESHOLD) { isOpen = true; } else { isOpen = false; } if (isOpen !== prevOpen) { if (isOpen) { await drawOpenFace(ctx, matrix); } else { await drawClosedFace(ctx, matrix); } } prevOpen = isOpen; }, 1000);

作例
>磁石スイッチでドアの開閉を検知したら、obnizはスリープから解除され起動します。そして、起動したらSlackにメッセージを送信し、その後再度スリープを行う仕組みです。
今回の要求はこれを丸パクリする
電源は別途検討

--
M5StickC ENV Hat(販売終了)
obniz側にライブラリがある