M5Core2とWi-fiとLINEだけで高齢者の見守りシステム構築してみた

M5Core2で高齢の母親の見守りが出来ないか

以前、M5Stack Basicを購入して、色々なことを試してみたのですが、
更にM5Stackのラインナップに興味が沸いて、M5Core2を衝動買いしてみました。

このM5Core2ですが、以前購入したBasicに比べ、以下のようなセンサーが最初から搭載されており、これ一台で色々と面白い事ができそうです。

  • 振動モーター
  • タッチパネル
  • 6軸センサー

別売りのセンサーをあれこれ買う必要もないので良いですね。
せっかくですから、搭載されているセンサーを使って何かやってみたいと思いました。
特に、6軸センサーは物体の動きが検知できるので、以前から興味がありました。

漠然としたイメージですが、6軸センサーでドアの開閉を検知できるのではと思い、
高齢の母親の見守りシステムを構築出来ないか検討してみることにします。

内蔵の6軸センサーを使って冷蔵庫のドア開閉を検知

M5Core2に内蔵されている6軸センサーを使って、冷蔵庫のドア開閉を検知してみたいのですが、そもそもどうやって検知するのかを調べるところからスタートです。
こんな事なら、高校で物理を選択していれば良かったかも。

色々探しているうちに、Nintendoのとあるサイトを見つけました。

前回のおさらい『ARMS』のように、手の動きをゲームの中に伝えるためにJoy-Conには「加速度センサー」と「ジャイロセンサー」という2種類のセンサーが搭載されています。前回はパン

ジャイロセンサーのヒミツについて調べてみました」というタイトルですが、私のようにジャイロセンサーって何ぞや?というレベルの人間でも分かりやすい解説がなされています。
この記事内の動画を見ると、3つの回転軸における回転をSwitchのジョイコンで検知できるようです。
おそらく、M5Core2でも同じように回転を検知できるのでは。

都合の良いことに、M5Core2用のサンプルスケッチがありました。

Arduino IDEのファイル>スケッチ例>M5Core2>Basics>mpu6886

ひとまずこのサンプルスケッチをM5Core2に流し込んで起動します。

M5Core2, mpu6886

何やら数値がたくさん表示されていますが、
一番上のgyroX, gyroY, gyroZがジャイロセンサーの値となります。

M5Core2のモニター面を上にした状態で手前に起こすとgyroXの値が一瞬大きく変動します。
また、本体を立てた状態でコマのように横方向に回転させるとgyroYの値、
本体を立ててモニターを前面にした状態で左右に傾けるとgyroZの値が大きく変動します。

上記より、ドアの開閉を検知するとしたら、gyroYの値を判定するのが良さそうです。
本体を冷蔵庫のドアに貼り付けた状態で開閉すると、本体の動きとしては「立てた状態からコマ上に横回転」することになります。

ただ、今の時点では冷蔵庫のドアに固定した状態でドアを開閉したときに、どれくらいの数値の変化があるのか分かりません。
そこで、実際に冷蔵庫に固定しドアの開閉時のgyroX~Zの値をCSVファイルに出力してみることにしました。

以下がその結果をExcel上でグラフ化したものですが、合計3回ドアの開閉を行った結果です。
予想通り、ドアの開閉時に、gyroXとgyroZの値にはほぼ変動が無く、gyroYの値が大きく変動しているのが分かります。
ドアを開けた時にはgyroYの値が100付近まで到達し、ドアを閉めた時は-100付近まで到達しています。

ドアのオープンだけを検知するのであれば、gyroYの値が50を超えたかどうかを判定すればいけそうです。

ドア開閉の検知をLINE Notifyに通知

ドアの開閉の検知は何とか出来そうですが、それをどのような方法で通知するか?
今回は検知したデータを蓄積し分析するような事は想定しておらず、冷蔵庫のドアが開いたことがリアルタイムに検知できれば良いわけです。
なので、シンプルにLINEに通知できないか調べてみました。

調べてみると、意外と簡単に通知を飛ばすことができそうです。
以下のサイトが非常に参考になりました。

無事、超音波距離センサーを使って「猫の食事」を検知することに成功した、はとね&きょろ夫婦。今回は、「検知をLINEへ通知する」部分を実装し、猫の食生活を通知するシステムを完成させます。猫の食生...

LINE Notifyを使えばこんなに簡単に通知が飛ばせるんですね。
仮にこの仕組みを実家の冷蔵庫に設置して、1日1回でも冷蔵庫のドアオープン通知が飛んでくれば、息子としても安心してその日1日を過ごせるわけです。

しかもこの検知方法だと、ただ単に冷蔵庫のドアを開けたという事実のみ伝わるので、
カメラで監視するような方法に比べればプライバシーの問題は発生しにくいかと思われます。
たとえ母親でも、息子にカメラで毎日監視されるのは嫌でしょうから。

自宅の冷蔵庫で動作検証

これで冷蔵庫のドアオープンを検知しLINEに通知する仕組みが出来ました。
まずは自宅の冷蔵庫で動作検証です。
とりあえず冷蔵庫のドアに取り付けてみました。

我が家は冷蔵庫とコンセントまでの距離が近いので、電源の確保は簡単でした。
ただ、USBケーブルを引っ掛けてしまうと嫌なのでもうちょっと綺麗に配線したいですね。

朝、在宅ワークが始まる前にM5Core2を仕掛けて、とりあえず以下のようにLINEに通知が飛んでくることを確認できました。
(ドアを開けたのは自分ですが)

やってみて感じたのは、ドアの開閉を検知し通知するシステムがここまで簡単出来てしまうのか、という事でした。
もちろん本格的なシステムとしてリリースするならセキュリティ面など課題は沢山ありますが、今はとにかくスピードが求められる時代です。
今ある技術を組み合わせて試作品を短期間で仕上げることも大事ですよね。

とにかく、これで自分の母親の見守りシステムとして使える目途は立ったので、
近いうちに実家の冷蔵庫に設置しに行くことします。