ゆるい空き室モニタをつくる5(ゆるいモニタ編)

最終更新日

完結編。
複数の人感センサーを使えるようにし、

人感センサーが人を検知した回数を時系列に可視化

という github activity みたな表現で、空き室モニタを表示する。

これまで。

ゆるい空き室モニタをつくる1(M5StickC+PIR編)

ゆるい空き室モニタをつくる1(M5StickC+PIR編)

2022.03.13

ゆるい空き室モニタをつくる2(RPi MQTT Broker編)

ゆるい空き室モニタをつくる2(RPi MQTT Broker編)

2022.03.13

ゆるい空き室モニタをつくる3(Node-RED編)

ゆるい空き室モニタをつくる3(Node-RED編)

2022.03.13

ゆるい空き室モニタをつくる4(時系列DB編)

ゆるい空き室モニタをつくる4(時系列DB編)

2022.03.13

複数のセンサを扱う

M5StickC と PIR を2セットつくる。

プログラムはちょっと改変。
マイコン毎に20行目のtopicを変更する。

const char *topic = "sensor/room1";

また、人感センサが検知すると、LEDを赤く光らせるとうざいので、display にMQTTに送るpayloadを表示する。

ok [{status": true}]

program

Grafana のStatus history

前回つくった棒グラフ。
複数のセンサを表示すると、いささか以上に、見づらい。

ここで、grafana の status history の出番。

Queryは、上記の棒グラフと感じ。

SELECT count("status") as room1  FROM "sensor_pir"
WHERE ("topic" = 'room1' AND status = true) AND $timeFilter
GROUP BY time($__interval) fill(none)

センサー毎に、 room1 のところを room2room3 と増やしていけばいい。
as room1 の指定のおかげで、グラフ毎にタイトル sensor_pir.room1 といったタイトルがつく。

visualizations で、 Status history を選択。

検知数毎に、表示する色を Threshholds で設定。

あまり細かいと見えにくいので、最少の集計単位時間を 5分 にする。

直近6時間の5分毎の検知数を色分表示で、なんとなく空き室具合がわかる。
room1 は、15時から17時まで空いてた。でも17時から使ってる。
room3(実はcommand line でpublishしたテストデータ)は、15時くらいから動いてた。とか。

さらに、最少の集計単位時間を 1時間 にしてみる。
実はホントにほしかったのは、これ。
会議室の空き状況が一目でわかる。
あと、検知数が多い時間帯は、きっと人数も多いはず。

この仕組みなら数十室程度の管理はできそう。

24時間後。

シェアする