# おふろみまもりだっく 作品説明資料 [TOC] # 1. プロジェクトの背景と目的 &emsp;「おふろみまもりだっく」は、子どもが浴槽に入る瞬間を検知し、溺水事故を未然に防ぐためのシステムです。 &emsp;本機には加速度センサを搭載したLeafonyを内蔵しています。本機を浴槽に浮かべた状態で子どもが浴槽に入水すると、波が発生して本機は揺れ、加速度センサの値が変化します。この変化を読み取ることで溺れ検知を行い、保護者に対して緊急の通知を送信します。 ## 1.1 背景となる社会問題 &emsp;子どもの不慮の事故による死因の一つに「溺水」があります。この「溺水」は海や川、プールといった場所だけでなく、家庭内の「浴槽」でも発生しています。以下の図1をみると、0〜2歳において、浴槽内での溺水が過半数を占めています[^1]。この事故が起きるケースとして、親の目が離れている間に子どもが一人で浴槽に入るなどで、溺水事故が起こることが想定されます。 &emsp;社会問題として、こうした事故を防止するための新たな対策が求められています。 <img src="https://hackmd.io/_uploads/ByFGdfO0A.jpg" width="700"> 図1: 不慮の溺死及び溺水の年齢別死因の割合[^1] ## 1.2 既存のシステムとその課題 &emsp;現在、溺水を防止するシステムとしては以下のようなものが存在します。 - 超音波センサによる検知システム:浴室の天井に超音波センサを設置し、入浴者の頭部位置を測定します。異常を検知すると音声アラームで警告を発します[^2]。 - 非接触センサによる自動排水システム:浴槽内の心拍や呼吸異常を検知し、溺水の可能性がある場合に自動で排水を行います[^3]。 &emsp;しかし、これらのシステムは主に高齢者を対象に設計されており、子ども向けの溺水事故防止システムは、十分に整備されていません。また、既存のシステムの多くは導入コストが高く、設置が簡単ではないという課題もあります。そのため、より手軽で経済的なシステムの開発が必要です。 ## 1.3 目標とするシステム及び設計 &emsp;既存システムにおける、より安く、より簡単にという課題を踏まえ、私たちは子どもの溺水事故を防止するためのシステム「おふろみまもりだっく」を目標とします。 &emsp;このシステムは、アヒルを浴槽に浮かべるだけで、簡単に使用できます。そのため、施工の必要が無く、容易に家庭内の浴槽に設置することができます。 &emsp;また、コスト面でも、Leafonyとアヒルの入れ物などの、安価な素材だけで構成された本機と、スマートフォンがあれば利用することが可能です。 &emsp;以下の図2に設計イメージを示します。 ![おふろみまもりだっく_構成](https://hackmd.io/_uploads/Skr8UGdRA.jpg) 図2: 設計イメージ ## 1.4 Leafonyの活用による利点 &emsp;「おふろみまもりだっく」とLeafonyの親和性として、以下のことが挙げられます。 ### 小型で軽量である &emsp;超小型モジュールを作成し、アヒルに内蔵することが可能です。 ### 本機のみで完結する &emsp;浴室を施工することなく、単一のモジュールで実現が可能です。 ### 拡張性が高い &emsp;リーフを新たに組み合わせることで新たな機能の追加ができる拡張性があります。 # 2. 実装方法 ## 2.1 実装の全体構成 &emsp;「おふろみまもりだっく」はアヒルの内部に搭載されたモジュールが子どもの入水を検知し、保護者にプッシュ通知を送信します。以下の図3におふろみまもりだっくのシステムの全体構成を示します。 ![おふろみまもりだっく_構成](https://hackmd.io/_uploads/B13lMz_AA.jpg) 図3: おふろみまもりだっくのシステムの全体構成 ### アヒル搭載モジュールの構成 &emsp;AI01 4-Sensorsの加速度センサで取得した値をAP02 ESP32 MCUで処理し、入水の検知を行います。入水を検知すると、モジュールがWebサーバにPOSTリクエストを送信します。以下の図4にアヒル搭載モジュールの構成を示します。 ![スクリーンショット 2024-09-30 22.07.18](https://hackmd.io/_uploads/ByH5Gmd00.png) 図4: アヒル搭載モジュールの構成 ### 専用Webサーバの構成 &emsp;専用Webサーバはアヒル搭載モジュールからPOSTリクエストを受け取ると、Firebase Cloud Messagingを利用して保護者に通知を送信します。その際に必要なtoken情報は事前にFirebase Firestoreに保存された各ユーザのtoken情報を使用します。ユーザー管理にはFirebase Authenticationを活用しています。以下の図5に専用Webサーバの構成を示します。 ![スクリーンショット 2024-09-30 22.12.04](https://hackmd.io/_uploads/SJgn7mdRA.png) 図5: 専用Webサーバの構成 ## 2.2 実装一覧 ### 本機の環境設定 &emsp;本機を利用する前に、図6のように、アクセスポイントとして出てきた”Leafony_ESP32-AP"に接続することで、Leafonyに接続し、"http://192.168.4.1" でローカルサーバで立ち上げたページからLeafonyの初期設定を行います。図7のように、Webアプリでアカウントを作成したときに使用したメールアドレス、接続するWi-FiのSSIDとPasswordを入力します。このメールアドレスは、通知を送る端末を特定するために使用します。設定後、指定したWi-Fiに接続することができます。 <div style="display: flex; flex-wrap: wrap; justify-content: space-around;"> <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/rJAlHN_CC.png" width="250"> <p>図6: WiFi接続</p> </div> <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/HyReeZdAA.png" width="300"> <p>図7: Leafony環境設定</p> </div> </div> ### 水上陸上判定 &emsp;本システムは、アヒル型デバイスの底面に設定された足を活かして、陸上と水上の状態を判定します。アヒルを陸上に設置した場合、棒によって一定の傾きを持って静止しますが、水上ではその傾きがなくなり、水平な状態になります。この仕組みを利用して、内部のLeafonyモジュールが傾きセンサの値を監視し、以下のように動作します。 * 傾きが一定値未満になったときに「見守り」を開始します。 * 傾きが一定値以上を維持した場合は「見守り」を終了します。 ### こどもの入水検知 &emsp;アルゴリズムとして、水上判定中に"揺れ"の検知を開始し、"揺れ"を検知してからしばらくしても、"水上"として判定されたら正しく揺れていることとしました。 "揺れ"を検知してからしばらくして"陸上"として判定されたら、おふろみまもりだっくを浴槽から取り出したこととしました。 ### Webアプリと保護者への通知 &emsp;おふろみまもりだっくは、図8のアプリを利用することで、本機の状態を監視したり、通知を受け取ったりすることができます。図9のように、メールアドレスとパスワードでログインを行うと、ユーザIDと通知の送信に必要となるFCM Tokenを紐付けることができます。以下の図10、図11、図12ように、本機の状態は、休止状態、見守り状態、入水検知状態の3つに分けられます。この3つの状態の切り替わりに応じて、Webアプリの画面の切り替えや、図13のようにWebプッシュ通知の送信を行います。 <div style="display: flex; flex-wrap: wrap; justify-content: space-around;"> <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/BkiuS-uR0.jpg" width="200"> <p>図8: おふろみまもりだっくのWebアプリのアイコン</p> </div> <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/HJMXalOCR.png" width="300"> <p>図9: ログイン画面</p> </div> <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/HJlXuJu0C.png" width="200"> <p>図10: 休止状態</p> </div> <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/H1h3_yu00.png" width="200"> <p>図11: 見守り状態</p> </div> <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/S1OpO1uRA.png" width="200"> <p>図12: 入水検知状態</p> </div> <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/rJOL8ed0C.jpg" width="300"> <p>図13: Webプッシュ通知を受信した様子</p> </div> </div> ## 2.3 作品外観 図14にアヒル本機の外観、図15にモジュールの外観を以下に示します。 <div style="display: flex; flex-wrap: wrap; justify-content: space-around;"> <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/BJeHtRvC0.jpg" width="300"> <p>図14: アヒル本機の外観</p> </div> <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/H1nL7-O00.jpg" width="300"> <p>図15: モジュールの外観</p> </div> </div> # 3. 開発上の工夫と課題解決 &emsp;本システムの開発において、以下の点で工夫を行いました。 ### 陸上水上判定 &emsp;水上と陸上の判定を簡単に行える仕組みを取り入れることで、利用者は利用する際は、本機を浴槽に浮かべておき、不要な際は空いてるスペースに置いておくだけで、手軽に本システムを使用することができます。 ### 通知機能 &emsp;Firebase Cloud Messagingを活用し、専用のスマホアプリを作成せずに、Webアプリを通じてスマホへの通知を実現しました。これにより、開発コストを抑えつつ、汎用性の高い通知システムを提供できます。 ### UIデザイン &emsp;以上の図8〜13のように、子どもが関与するシステムとして、親しみやすく直感的なデザインを採用しました。 # 4. まとめと今後の展望 &emsp;「おふろみまもりだっく」は、子どもの溺死事故を未然に防ぐことを目的とし、既存システムの課題を解決するために設計されたシステムです。本システムは、入水を検知した際に通知を送信する対象を柔軟に変更できるため、今後もさまざまな場面に応じた拡張が可能です。例えば、警察や救急隊と連携し、事故発生時に速やかに通知を送ることで、より迅速な救命活動が行える可能性があります。 &emsp;さらに、Leafonyのモジュールを活用することで、システムの拡張が容易です。例えば、AI01 4-Sensorsに搭載された照度センサを使用して浴室の照明のオン/オフをモニタリングし、安全性の向上や自動制御システムとの連携を図ることができます。また、水質センサを追加することで、浴槽の水質や衛生状態を監視し、感染症の予防や衛生管理にも役立てることが可能です。 &emsp;今後もこのような拡張機能を取り入れることで、子どもの溺死事故を未然に防ぎ、安全性を向上させるシステムを構築できることが期待されます。また、ユーザーフィードバックを取り入れながら、使いやすさの向上や機能の充実を図ることで、より多くの家庭にこのシステムを普及させることができればと考えています。 # 5. 動画 [![おふろみまもりだっく説明動画](https://img.youtube.com/vi/YtFqG5uw938/0.jpg)](https://www.youtube.com/watch?v=YtFqG5uw938) 動画のリンク: https://www.youtube.com/watch?v=YtFqG5uw938 # 参考文献 [^1]: 子どもの事故を考える グラフで見る事故別の特徴 綜合警備保障株式会社 (https://www.alsok.co.jp/person/recommend/141/) [^2]: 浴室あんしん安全システム 株式会社JVCケンウッド(https://www.jvckenwood.com/jp/corporate/business/dx/bathroom-safety.html) [^3]:「フロノミライ」グッドデザイン賞を受賞~溺水予防のために強制排水するスマート浴槽 株式会社ライフケア・ビジョン (https://prtimes.jp/main/html/rd/p/000000031.000070402.html)