United Statesからアクセスのようです。言語設定をEnglishに切り替えますか?
Switch to English site
Skip to main content

1. 開発背景

トイレに入り、用を足した後に初めて、トイレットペーパーが十分にないことに気が付くという問題があります。

この状況を未然に防ぐため、利用者の入退室時、ペーパーの残量が少なくなっている場合に警告音を発するデバイス「Mr.Toilet」を考案しました。

同時に、健康や生活の利便性の観点から、トイレの使用頻度やトイレットペーパーの交換回数、現在のトイレットペーパーの状態をアプリから確認できると有益なのではないかと考え、それらを記録する機能を追加することを考えました。

▲ デバイスをトイレに設置した様子

2. システムの概要

本システムはRaspberry pi、サーバ、Androidアプリの3つの部分から構成されています。

Raspberry piは音声での利用者への警告・トイレ利用状況のサーバへの送信、

Androidはサーバから読みだしたデータの表示を行い、

サーバはデータベースへのデータ保存・Raspberry piとAndroidからのそれぞれの要求への応答を行います。

サーバとの通信はHTTPSエンドポイントを介して行われます。

以下に、3つの部分について記述します。

Raspberry pi

赤外線センサで1秒ごとに人の動きを検出することで、トイレへの入退室を検出します。

入退室の際、超音波距離センサを利用してトイレットペーパーとの距離を計測することで、ペーパーの残量測定を行います。

残量が設定された閾値よりも少ない場合、スピーカーから警告が行われます。

退室時、使用日時と残量、ペーパーが交換されたかどうかの情報がサーバに送信されます。

このフローを図にすると以下のようになります。

回路図は以下のようになっています。

サーバ

HTTPSエンドポイントへのリクエストによって、Raspberry piから送信されたデータをデータベースに書き込みます。

また、Androidからはデータベース読み出しのリクエストを受けます。

データベースのテーブル構成とカラムの型は以下のようになります。

Table

id: (integer, primary_key)

トイレ利用日: (text)

トイレ利用時刻: (text)

ペーパー残量割合: (double)

ペーパーが交換されたかどうか: (boolean)

残量の読み出しリクエストでは、データベースの最新レコードの残量割合を参照して以下の図のようにあらかじめ設定された閾値に応じて3段階の値を返します。

"LONG"はペーパーが十分な残量あることを、"MEDIUM"はすこし減っていることを、"SHORT"はかなり少なくなっていることを表現しています。

value

アプリケーション

UIは以下のようになります。

アプリの主な機能として、以下の3つがあります。

①トイレットペーパーの状態確認機能

②月ごとのトイレットペーパー交換回数確認機能

③日ごとのトイレの使用回数確認機能

これらの機能では、サーバのエンドポイントにリクエストを送信して得られたデータを表示しています。

①トイレットペーパーの状態は、以下の画像のように確認することができます。

▲ トイレットペーパーの状態が残量に応じて変化し、確認できている

②月ごとのトイレットペーパー交換回数、③日ごとのトイレの使用回数

のトイレ利用状況は、それぞれ以下の画像のように確認することができます。

▲ 月ごとのトイレットペーパー交換回数

Used_time_3e232e01ce703f6f810b0147ebe7f649cbc72979.png

▲ 日ごとのトイレ使用回数

デモビデオはYoutubeにアップロードされています。

3. まとめと今後の展望

トイレットペーパーの量に応じての警告・Androidからトイレットペーパーに関するデータを確認できるシステム「Mr.Toilet」を開発しました。今後の展望としては、

  • トイレットペーパーの残量を確認するセンサーの変更(超音波センサでは不安定なため)
  • トイレの使用履歴からのトイレットペーパーの量の予測及び自動発注

を考えています

Infinity2 さんはまだ自己紹介を入力されていません...