RaspberryPi 4BでAI、RaspberryPi 4BでIoT（システム概要）

#はじめに
プログラミングの学習を始めてから4ヶ月。pythonを使い、ラズベリーパイでAI、IoTの技術を利用した高齢者見守りシステムを作ってみました。
制作の過程を、何回かに分けてまとめていきます。
#機能

* 対象者の起床を見守ります。いつまでも起きてこないときは、あらかじめ登録している家族にLINEで連絡します。
* 対象者の活動量を見守ります。対象者の動きが極端に少ないときは、声をかけてみます。それでも反応がない場合、あらかじめ登録している家族にLINEで連絡します。
* 対象者の安否が確認できない状態が長く続いたときは、あらかじめ登録している家族にLINEで連絡します。googleカレンダーに登録されている外出予定期間は、装置が見守り対象者を認識できなくても、安否が確認できていると見做します。
* 複数台の装置が連携することで、広い範囲をカバーして対象者を見守ります。

#ハードウエア
###親装置
![親機.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679257/b0f13e5d-6628-ca45-c125-d1e935983fce.png)


###子装置
![子機.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679257/d00df427-a3db-54d0-1928-e10f9a1165bb.png)


#開発環境
###ハードウエア

* MacBook pro

###ソフトウエア

* visual studio code（エディタ）
* FileZilla（FTPクライアント）
* VNC Viewer（リモートデスクトップ）
* ターミナル

###その他

* 無線LAN
* インターネット接続環境
* 工作用機材
 <details><summary>機材詳細</summary><div>
    * ラジオペンチ
    * ニッパ
    * ピンセット
    * はんだごて
    * はんだ
    * カッターナイフ
    * 多用途接着剤
    * 縫針
    * 縫い糸
    * グルーガン
</div></details>

#動作
##起床見守り
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">プログラミングの学習を始めてから4ヶ月。pythonを使い、RaspberryPiでAI、IoTの技術を利用した高齢者見守りシステムを作ってみました。<br>対象者がいつまでも起きてこない場合、LINEで通知します。<a href="https://twitter.com/hashtag/python3?src=hash&amp;ref_src=twsrc%5Etfw">#python3</a> <a href="https://twitter.com/hashtag/OpenCV?src=hash&amp;ref_src=twsrc%5Etfw">#OpenCV</a> <a href="https://twitter.com/hashtag/RaspberryPi?src=hash&amp;ref_src=twsrc%5Etfw">#RaspberryPi</a> <a href="https://twitter.com/hashtag/IoT?src=hash&amp;ref_src=twsrc%5Etfw">#IoT</a> <a href="https://twitter.com/hashtag/AI?src=hash&amp;ref_src=twsrc%5Etfw">#AI</a> <a href="https://twitter.com/hashtag/%E9%9B%BB%E5%AD%90%E5%B7%A5%E4%BD%9C?src=hash&amp;ref_src=twsrc%5Etfw">#電子工作</a> <a href="https://t.co/InfphaL2vQ">pic.twitter.com/InfphaL2vQ</a></p>&mdash; Jin Kubota (@JinKubota1) <a href="https://twitter.com/JinKubota1/status/1333599963561947136?ref_src=twsrc%5Etfw">December 1, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

<details><summary>上記は、動作確認のため通常より時間を短縮して動作させています。</summary>毎朝 起床予定時刻までに見守り対象者を確認できない場合に通知する機能ですが、動画では2分毎に１分間 対象者を確認しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679257/23b44271-d5e8-c3a8-c5a4-9b9b5ce2e4f8.png)
</details>

##活動量見守り
<blockquote class="twitter-tweet" data-theme="dark"><p lang="ja" dir="ltr">プログラミングの学習を始めてから4ヶ月。pythonを使い、RaspberryPiでAI、IoTの技術を利用した高齢者見守りシステムを作ってみました。<br><br>一定時間 対象者に動きのない状態が続いた場合、LINEで通知します。<a href="https://twitter.com/hashtag/python3?src=hash&amp;ref_src=twsrc%5Etfw">#python3</a> <a href="https://twitter.com/hashtag/OpenCV?src=hash&amp;ref_src=twsrc%5Etfw">#OpenCV</a> <a href="https://twitter.com/hashtag/RaspberryPi?src=hash&amp;ref_src=twsrc%5Etfw">#RaspberryPi</a> <a href="https://twitter.com/hashtag/IoT?src=hash&amp;ref_src=twsrc%5Etfw">#IoT</a> <a href="https://twitter.com/hashtag/AI?src=hash&amp;ref_src=twsrc%5Etfw">#AI</a> <a href="https://twitter.com/hashtag/%E9%9B%BB%E5%AD%90%E5%B7%A5%E4%BD%9C?src=hash&amp;ref_src=twsrc%5Etfw">#電子工作</a> <a href="https://t.co/1EfCF4KOJO">pic.twitter.com/1EfCF4KOJO</a></p>&mdash; Jin Kubota (@JinKubota1) <a href="https://twitter.com/JinKubota1/status/1333677639244992512?ref_src=twsrc%5Etfw">December 1, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

<details><summary>上記は、動作確認のため通常より時間を短縮して動作させています。</summary>40分間 対象者に動きが認められない場合に通知する機能ですが、動画では30秒間動きがないと通知するようにしています。
![動作_活動量.001.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679257/101b982c-e46b-60a1-5082-8693acda39b0.jpeg)
</details>

##所在確認
<blockquote class="twitter-tweet" data-theme="dark"><p lang="ja" dir="ltr">プログラミングの学習を始めてから4ヶ月。pythonを使い、RaspberryPiでAI、IoTの技術を利用した高齢者見守りシステムを作ってみました。<br><br>一定時間 対象者の所在がわからない状態が続いた場合、LINEで通知します。<a href="https://twitter.com/hashtag/python3?src=hash&amp;ref_src=twsrc%5Etfw">#python3</a> <a href="https://twitter.com/hashtag/OpenCV?src=hash&amp;ref_src=twsrc%5Etfw">#OpenCV</a> <a href="https://twitter.com/hashtag/RaspberryPi?src=hash&amp;ref_src=twsrc%5Etfw">#RaspberryPi</a> <a href="https://twitter.com/hashtag/IoT?src=hash&amp;ref_src=twsrc%5Etfw">#IoT</a> <a href="https://twitter.com/hashtag/AI?src=hash&amp;ref_src=twsrc%5Etfw">#AI</a> <a href="https://twitter.com/hashtag/%E9%9B%BB%E5%AD%90%E5%B7%A5%E4%BD%9C?src=hash&amp;ref_src=twsrc%5Etfw">#電子工作</a> <a href="https://t.co/4RdbkX0qy7">pic.twitter.com/4RdbkX0qy7</a></p>&mdash; Jin Kubota (@JinKubota1) <a href="https://twitter.com/JinKubota1/status/1333678417267462145?ref_src=twsrc%5Etfw">December 1, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

<details><summary>上記は、動作確認のため通常より時間を短縮して動作させています。</summary>3時間 対象者の所在が確認できなかった場合に通知する機能ですが、動画では60秒間所在が確認できないと通知するようにしています。
![動作_所在.001.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679257/ddc99421-877d-b20e-328d-db28ede26920.jpeg)

</details>

##スケジュール取得

<blockquote class="twitter-tweet" data-theme="dark"><p lang="ja" dir="ltr">プログラミングの学習を始めてから4ヶ月。pythonを使い、RaspberryPiでAI、IoTの技術を利用した高齢者見守りシステムを作ってみました。<br><br>Googleカレンダーから対象者の予定を取得します。予定は、起床見守りや所在確認に利用します。<a href="https://twitter.com/hashtag/python3?src=hash&amp;ref_src=twsrc%5Etfw">#python3</a> <a href="https://twitter.com/hashtag/OpenCV?src=hash&amp;ref_src=twsrc%5Etfw">#OpenCV</a> <a href="https://twitter.com/hashtag/RaspberryPi?src=hash&amp;ref_src=twsrc%5Etfw">#RaspberryPi</a> <a href="https://twitter.com/hashtag/IoT?src=hash&amp;ref_src=twsrc%5Etfw">#IoT</a> <a href="https://twitter.com/hashtag/AI?src=hash&amp;ref_src=twsrc%5Etfw">#AI</a> <a href="https://twitter.com/hashtag/%E9%9B%BB%E5%AD%90%E5%B7%A5%E4%BD%9C?src=hash&amp;ref_src=twsrc%5Etfw">#電子工作</a> <a href="https://t.co/wrrb3iL7sP">pic.twitter.com/wrrb3iL7sP</a></p>&mdash; Jin Kubota (@JinKubota1) <a href="https://twitter.com/JinKubota1/status/1333679109675708416?ref_src=twsrc%5Etfw">December 1, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

<details><summary>上記は、動作確認のため通常より時間を短縮して動作させています。</summary>1日に一度 Googleカレンダーから当日の予定を取得する機能ですが、動画では2分間に一度スケジュールを取得するようにしています。
![動作_スケジュール.001.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679257/f88a92c1-2fae-cf17-36ab-a66327397bc0.jpeg)

</details>

#関連投稿
[RaspberryPi 4BでAI、RaspberryPi 4BでIoT（まえがき）](https://qiita.com/Jin_Kubota/items/787c677e273ab2409282)
[RaspberryPi 4BでAI、RaspberryPi 4BでIoT（開発環境）](https://qiita.com/Jin_Kubota/items/6a63c6ea4e621427a541)
[RaspberryPi 4BでAI、RaspberryPi 4BでIoT（RaspberryPi初期設定：OSインストール編）](https://qiita.com/Jin_Kubota/items/319319a026256595c45f)

#おわりに
プログラミング初心者のため、誤りが多々あると思います。アドバイス、励ましのコメントなどいただけると嬉しいです。