AWS IoT Button を買ったのでトイレ IoT に使えそうなバックエンド書いた

まえがき

気になっていた AWS IoT エンタープライズボタンを購入しました。

届くまでの間、何に使えそうか考えてましたが勤め先のトイレ IoT で使ってみたいと思いバックエンドのプログラムを書きました。

できたもの

github.com

S3 上に以下のような CSV のメトリックスが保存されるのが iot-button-metrics の最終成果物です。

"2018/07/28 12:12:30",0
"2018/07/28 12:13:29",0
"2018/07/28 12:14:30",1
"2018/07/28 12:15:30",1
"2018/07/28 12:16:30",1
"2018/07/28 12:17:29",1
"2018/07/28 12:18:30",1
"2018/07/28 12:19:30",0
"2018/07/28 12:20:30",0
...

iot-button-metrics ではAWS IoT エンタープライズボタンをトイレに設置し、個室入室者が入室時にボタンを押すことを想定しています。
ボタンを押してから5分間は入室している想定でメトリックを保存します。
(この300秒という時間は適切な時間がわからないので調整の余地があります)

複数ボタンはまだ対応してませんが、そのうち対応するでしょう。
(2018/07/29 01:44 追記: 対応しました)

アーキテクチャ

f:id:khei-fuji:20180728221939p:plain

AWS IoT エンタープライズボタンを押したときに Lambda を呼び出すことができます。
ボタンからトリガーされる Lambda Function では単にボタンを押された日時が保存されるのみです。
毎分トリガーされる Lambda Function ではさきの日時を加味してメトリックを保存します。

メトリックを保存するまでが役割で、これをどう可視化するかまではカバーしていません。

あとがき

Amazon - AWS IoT エンタープライズボタン
説明に "約2,000 回クリックできます" とあるため、1日40回利用されるとすれば50日程度、週末を考慮しても2ヶ月程度しか保たないということになります。
地味にコストがかかりますね。。

このコストがクリアされる前提ですが、勤め先で無事導入できた場合は Power BI が得意な同僚がいるため、可視化の部分を託したいところです。


なぜかボタンの Amazon アフィリエイト貼れないのでトイレっぽいもの置いておきます。