IoTを駆使してお年寄りの家を見守る「だけじゃない」システムを作った【SORACOM Summer Challenge 2020】

#はじめに
[SORACOM Summer Challenge 2020](https://www.lp.soracom.jp/summer-challenge-2020)の参加レポートです。
ネットでたまたま見つけたこのイベント、研究室でIoT向けの楕円曲線暗号の研究をしているものの、実際にIoTを使って何かを作ったことがなかったのでいい機会だと思い応募しました。

1. [IoTを駆使してお年寄りの家を見守る「だけじゃない」システムを作った【SORACOM Summer Challenge 2020】](https://qiita.com/tik26/items/fab2d34eb3a533fa19a5) :arrow_backward:今ココ
2. [LTE-M Buttonが押されたらLINE BotへPushメッセージを送る【SORACOM】](https://qiita.com/tik26/items/a3c2e587b7df51313135)
3. [【Raspberry Pi】人感センサーが感知したらtimestampをFirebase Realtime Databaseに格納する](https://qiita.com/tik26/items/92738ded6bb180cd56d4) 
4. [SORACOMと家電とLINE Botを連携させる【Python / Flask / Raspberry Pi】](https://qiita.com/tik26/items/c0395ee548793159a402) **全ソース公開** 


### SORACOMとは
>IoT向けの無線通信をグローバルに提供するプラットフォームです。セルラー、LPWA（LoRaWAN、Sigfox、LTE-M）を、1回線からリーズナブルに使うことができます。[[SORACOMの概要]](https://soracom.jp/overview/)

### 配布された機材
- [GPSマルチユニットSORACOM Edition（バッテリー内蔵タイプ）](https://soracom.jp/products/kit/gps_multiunit/)
![GPSマルチユニットSORACOM Edition（バッテリー内蔵タイプ）](https://soracom.jp/wp-content/uploads/2020/02/img_gps-multiunit-soracom-edition.jpg)
    - 「位置情報（GPS）」「温度」「湿度」「加速度」の4つのセンサーと充電式バッテリーを内蔵し、 セルラーLPWAであるLTE-M通信が利用可能なデバイスです。


- [SORACOM LTE-M Button Plus](https://soracom.jp/products/gadgets/button_plus/)
![SORACOM LTE-M Button Plus](https://soracom.jp/wp-content/uploads/2019/08/products_soracom-lte-button-plus.png)
    - SORACOM LTE-M Button Plus はIoT SIM(plan-KM1)内蔵のボタンおよび接点入力を備えたデバイスです。
plan-KM1による LTE-M 通信を使用し、乾電池(交換可能)で駆動します。

その他、期間中は全プラットフォームサービスを無料で使わせていただきました。

#作ったもの
### おばあちゃんの家を見守るシステム
離れて暮らすおじいちゃん、おばあちゃん、ずっと元気でいてほしいけどいつ何があるかわかりませんよね？そんなお年寄りの方を見守るサービスは世の中にたくさんあります。（[セコム](https://www.secom.co.jp/homesecurity/plan/seniorparents/)さんや、[象印](https://www.mimamori.net/)さんのポットを利用すると通知が行くサービス、[写真立て](https://www.mimamorie.co.jp/)にセンサーが内蔵されたものなんかもあります）

見守るんだったらカメラを設置すれば早い？いやいや、いくら身内だからと言って**プライバシー**には配慮しなければなりません。今回作ったシステムではそういった行動が特定されてしまうような情報は一切用いていません。

また、既存のサービスをSORACOMサービスを用いて作るのではは「車輪の再発明」にすぎません。そこで、**「痒い所に手が届く」**そんなオリジナリティを加えました。

### 使ったもの
- GPSマルチユニットSORACOM Edition
- SORACOM LTE-M Button Plus
    - 接点入力は使用していないので実質LTE-M Button単体
- Raspberry Pi 3 Model A+
    - 人感センサー（焦電型赤外線センサー）を接続
    - サーボモータを接続
- Raspberry Pi 3 Model B+
    - サーバーとして使用
    - 赤外線学習リモコン[(ADRSIR)](https://bit-trade-one.co.jp/product/module/adrsir/)を接続

##全貌
[YouTube](https://youtu.be/EoRkwnCRwEI)にて公開しています。Qiitaでは画像中心ですが、YouTubeなら実際の動きが確認できるので是非ご覧ください。
**[[YouTube] IoTを駆使してお年寄りの家を見守るシステム作った](https://youtu.be/EoRkwnCRwEI)**
[<img width = 600 src = "https://docs.google.com/drawings/d/e/2PACX-1vQBcuU3Mz9mqEXoxcFUwGrH2jGYwmTz75_txM4LUrNr4eZ0DAQeHOuHeOsxED8vGMrVnGCv2ydHqC29/pub?w=928&h=524">](https://youtu.be/EoRkwnCRwEI)

##機能➊ 温度と湿度を計測・表示
これは既存サービスによくあるものですね。GPSマルチユニットは温度と湿度を測る機能があるのでそれを利用します。5分毎に気温と湿度をSORACOM Harvest Dataに送ります。

また、温度と湿度はLINE Botから確認することができます。お年寄りの見守りサービスでなくともこの機能は役に立ちそうです。
<img src="https://docs.google.com/drawings/d/e/2PACX-1vQgP5mkNbch57XB44DhPdi14ImgtW5qWOQpFJ6DjBS7SQqKKFS70WA8aYqSGX4xeT3qiZqOG44mabyX/pub?w=929&amp;h=521">

##機能➋ 人感センサー
これまた既存サービスによくあるものです。Raspberry Piに接続した人感センサーが反応するとタイムスタンプとともにFirebase Realtime Databaseにデータを格納します。

そしてLINEから「1時間以内に反応した回数」と「最後に反応した回数」を確認することができます。
これを家の導線に配置しておけば動いていることがわかるので安心ですね。
<img src="https://docs.google.com/drawings/d/e/2PACX-1vTngUhJgp0zYX4eSBV12jnADJVAmmbzOmRXsyD1AmfnEElthflnNYlpFMcQ83V6qffgcwuSGtfWVx3W/pub?w=1394&amp;h=780">

##機能➌ 緊急ボタン
いくら見守っていたところで、「何かあったとき」に対応できなくては意味がないですよね？
でも、「何かあったとき」にお年寄りの方自身が119番に電話する余裕はあるでしょうか？
余裕があったとしても、携帯電話を手の届くところに置いていなかったら…？

そう、危険はどこに孕んでいるかわからないし、家中どこでも携帯電話を持ち歩いているとは限らないのです。

そこで、家のあらゆるところにこの**緊急ボタン**を設置しておきます。ワンクリックするだけなので、もしものことがあった時も手の届く範囲にこれがあればどうにか知らせることができます。
<img src="https://docs.google.com/drawings/d/e/2PACX-1vTxymLxpAAtZAhZX2i7B_s7-VJBUCdoLa6dJMjdZ6fUZKk1yEicrd3KdjbRn0LHTNxaDxELlKdZ_vAN/pub?w=917&amp;h=688">

脱衣所の床近くやトイレの床近くなんかに設置しておくといいかもしれません。なぜ床近くかって？それは倒れたときを想定しているからです。**「手の届くところに」**がポイントです。


それでもまだ問題があります。実は、救急車を呼べても**玄関の鍵が締まっていて入れない**という事例が多々あるんです。「救急隊はすぐそこにいるのに助けてもらえなかった。」そんな悲しいことは起こってほしくありません。

そこで、LTE-M ButtonとRaspberry Piのサーボモータを連動させました。ボタンがクリックされると玄関に設置された（見た目はスマートじゃない）**スマートロックにより開錠**されます。こうして、一刻も早く助け出す環境を作るわけです。
<img src="https://docs.google.com/drawings/d/e/2PACX-1vSTYI89-4TMxPTStpmZIF_cUKX6h5nCQGBQPqM5RFWgUYqdyCWLEP1KLzWZHHD3RM_zbqbb5sPTsfPJ/pub?w=927&amp;h=524">

## 機能➍ 熱中症の危険が高くなるとエアコンON
**お年寄りの室内における熱中症**の症例が多いのをご存知ですか？[[Yahoo!ニュース参照]](https://news.yahoo.co.jp/byline/ishidamasahiko/20190805-00137140/)
 >体温を調節する機能が衰えてきた高齢者は、気温を感知する皮膚や中枢神経がうまく働かなくなっていることも考えられる

とあります。
せっかく温度と湿度を測っているんだから、エアコンも自動で制御できたらいいですよね？SORACOM Lagoonを使えば温度と湿度を簡単に可視化でき、アラートも簡単に設定することができるので熱中症の危険が高くなったらRaspberry Piの赤外線送信モジュールから信号を送ろう！


…ちょっと待った！

そのままでは、不在の時だってエアコンがONにされてしまいますよね？お年寄りを見守るシステムのはずなのに、不在時にエアコンがついて電気代も増し、環境に負荷をかけるようじゃたまったもんじゃありません。

そこで、先ほどの**人感センサー**が役に立つわけです。15分以内に人感センサーが作動したのであれば家にいる確率は高いでしょう。というわけで、「アラートが発され、かつ15分以内に人感センサーが作動する」という条件を満たせばエアコンをONにします。
<img src="https://docs.google.com/drawings/d/e/2PACX-1vQBVUDL6qdc30G5FaXw9xRZrs5pES7QaeB4qQiTDm6weLgoWzBoJ_HwoiQ0EIhzi1hN3-nc2pfK73qZ/pub?w=929&amp;h=520">

##システム構成図
Raspberry Pi上でFlaskを動かし、そこでSORACOM Harvestからデータを取得したり、LagoonからのWebhookを受け取ったりしてLINEに流しています。
<img src="https://docs.google.com/drawings/d/e/2PACX-1vT4A3t57UvDG6PcnNl9r19UP4tse3T7nJLbv6bpS6nElVbNaYQ6Ib8oWhfPyEYk9zCXIwEuBllb8tC3/pub?w=929&amp;h=521">

---
以上、
    1. 温度と湿度を計測・表示
    2. 人感センサー
    3. 緊急ボタン
    4. 熱中症の危険が高くなるとエアコンON

の4大機能でした:clap:

#…Raspberry Piだけでできるくない？
と思った方いらっしゃいませんか？（いないか）
「Raspberry Piにも温度や湿度を測るモジュールはあるし…」
「緊急ボタンぐらいなら作れるのでは？」
そうなんです。が、1つ問題点があります。
### あなたのおばあちゃん家にインターネット環境はありますか？
最近でこそ、家にネット環境が整っており、スマホを使いこなしているおじいちゃんおばあちゃんもいるかもしれません。とはいえ、まだその数は多くないのではないでしょう。それに、無線LANルーターなんかは時々調子が悪くなることがあります。


---
:boy_tone1:孫「おばあちゃん、Wi-Fiルーター再起動してくれない？」
![](https://www.sozai-library.com/wp-content/uploads/2016/06/8112-300x225.jpg)
お年寄りにはなかなか難しいでしょう。

---

だからこそ、設置も簡単で、難しい設定も必要ないSORACOMのLPWAが有効なのです。

「Raspberry PiでWi-Fi使ってるじゃん、どうするの？」
SORACOMではRaspberry Pi等に接続し、セルラー通信が可能となる[USBドングル](https://soracom.jp/products/module/)なるものもあるそうです。そういう訳で、LAN環境がなくとも上で書いたことは実現可能です。

#まとめと感想
というわけで離れて暮らすおじいちゃん、おばあちゃんを**プライバシーを保護**しつつ、**痒いところにも手が届く**ような総合型見守りシステムでした。
最後に書いたように、「Raspberry Piだけではできない」、逆に言うと「SORACOMのサービスを使うからこそできる」そんなシステムを組み上げられたと自負しています。

#### 感想
- まず、〆切の30分前に出したにもかかわらずアクセプトしてくださった運営の皆さんありがとうございました
- 学祭以外で髪が青い人初めて見た（わかる人にはわかる）
- 期間中はメンターの方々にわからないことを伺うと即答してくださったので滞りなく進められた
- SORACOM関連のサービスの使い方はもちろんのこと、cURLやRaspberry PiのGPIO、LINE BotのFlex Message、その他Pythonの各モジュール（paramiko, Pillow etc...）など、これまで自分が使ったことない要素技術に触れることができたので大変勉強になった
- 上記のことから、Summer Challengeの応募ページに書かれてあった次の言葉の意味がよくわかった。本当に総合格闘技でした。


>ハードウェアから通信、ソフトウェア、クラウド、AIといった様々な専門知識を必要とする IoT は、テクノロジーの総合格闘技と呼ばれています。

以上、最後までご覧いただきありがとうございました！**LGTMしてくださると喜びます。**
お気軽にコメントお願いします。

:arrow_down_small: ソースはコチラ :arrow_down_small: 
[SORACOMと家電とLINE Botを連携させる【Python / Flask / Raspberry Pi】](https://qiita.com/tik26/items/c0395ee548793159a402#%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89)