Help us understand the problem. What is going on with this article?

トイレセンサを作ってみた: プロトタイプ編

More than 1 year has passed since last update.

目次

  • プロトタイプ編(本記事)
  • ハードウェア編
  • 3Dモデル編
  • ファームウェア編
  • Webサービス編
  • Slackボット編

1. 背景と概要(各記事共通)

筆者がお伺いしている企業は成長まっただ中の企業で、どんどんメンバーが増えていっています。
しかし、現在のビルには1フロアにつきトイレが1つがなく、トイレに行っても「使用中」の事が増えてきました。特に、昼食後のトイレの稼働率の高さときたら!

そこで、よくある感じの「トイレセンサ」を作ってみました。このシステムは、以下の4つの要素で構成されています。

  • トイレに設置し、トイレの使用状況をネットワークに送信する「トイレセンサ」
  • トイレに向かう通路の途中に設置し、LEDでトイレの使用状況を知らせる「トイレインジケータ」
  • Webブラウザからトイレの使用状況を知ることができる「Webアプリ」
  • 「トイレセンサ」の情報を取得して判断し、トイレインジケータ、Webアプリに配信する「コントローラ」

2. プロトタイピング

まずは簡単にプロトタイプを作成し、実現可能性の検討を行いました。結論から言えば、問題なくトイレの使用状況を検出できました。

今回、「トイレが使用中である」ことの検出には、光センサを用いました。使用者によってトイレの照明が灯されていれば「使用中」と判断します。
ちなみに、完成版では焦電センサ(人感センサ)も併用しています。

また、状態表示器としてマイコン内蔵フルカラーLEDを用いました。

2.1. 回路図

とても雑ですが、プロトタイプの回路図は以下の通りです。

DSC_6018.jpg

回路図ではIO24、IO25を使用していますが、あとにIO33、IO13に変更しています。

2.2. 部品リスト

使用した部品のリストは、以下の通りです。

No 種別 品番など 入手元 参考価格
1 ESP32開発ボード ESP32 DevKitC 秋月電子 1,480円
2 リニア光センサ LLS05-A 秋月電子 150円
3 マイコン内蔵フルカラーLED NexPixel系 秋月電子 70円
4 抵抗 10kΩ - -

2.3. 仮組み

ブレッドボード上に仮組みを行い、動作確認を行いました。

DSC_6008.jpg

また、とても雑な感じではありますがトイレに実際に設置し、機能することを確認しました。

DSC_6014.jpg

ちなみに完成品はこんな感じです。

DSC_6134.jpg

3. 検出から表示への流れ

使用状況の検出から、トイレインジケータへの表示の流れは、ざっと以下の通りです。

  1. トイレセンサは、光センサの値(電圧値)をESP32に内蔵されているADC(アナログ/デジタルコンバータ)で読み出します。
  2. トイレセンサは、光センサの値を定期的、または一定以上変化時にMQTTトピックに送信します。
  3. コントローラは、MQTTトピックの値を受信します。
  4. コントローラは、光センサの値が閾値以上であれば「使用中」(照明が点灯中)、そうでなければ「空き」(照明が消灯中)と判断します。
  5. コントローラは、判断した結果をMQTTトピックに送信します。
  6. トイレセンサは、MQTTトピックから受信した判断結果を前面のLEDに表示します。(使用中:赤、空き:緑)
  7. トイレインジケータは、MQTTトピックから受信した判断結果を前面のLEDに表示します。(使用中:赤、空き:緑)

4. ソースコード

ソースコードはnayutaya/iotリポジトリにてMITライセンスで公開しています。

トイレセンサのファームウェアはproject/restroom_sensor/firmwareにあります。

5. 終わりに

今後、各構成要素について、少しずつ書き下していきます。

yuyakato
株式会社那由多屋の代表取締役社長です。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away