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

最終更新日

人感センサの情報をサーバで受取り、他のメディアに配信したり、別の場所で表示したりしたい。

これまでに、M5StickCからRPi4 に向けてMQTTのpublishができるようになった。

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

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

2022.03.13

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

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

2022.03.13

つぎは、RPi4 上のNode-REDを利用して、Subscriber をつくってみる。

Node-REDのsetup

この記事の通り。

NodeRedでRPiの制御

NodeRedでRPiの制御

2020.09.22

dashboardも同じようにinstall。

現在最新版のNode-REDは、installすると既にMQTT機能が組み込まれている。便利。

  • mqtt in ... MQTT Subsciber
  • mqtt out ... MQTT Publisher

Publisher のテスト

まずは、簡単な方Publisherのテストをしてみる。

mqtt out の部品を利用する。
mqtt out の設定は、こんな感じ。

  • Publisherの設定

以降の Server=Broker の設定をしてから、 Topic を設定。ここでは、 sensor/red-node

[

  • brokerの設定

適当に Name を決めて、ServerのIPを設定。

実行すると、command line の subscriber にunix時間が表示される。

$ mosquitto_sub -v -h {BrokerのIP} -t 'sensor/#'
sensor/red-node 1647090348431

Node-REDとMQTT Broker の接続はOK。

Subscriber のテスト

人感センサのデータを topic sensor/# 指定で受取るように設定。

timestamp パーツをクリックして実行する。

debug に時間の値が表示され、Brokerを経由して、PublisherからSubscriberへのデータが渡っていることを確認

人感センサの値をDashboardに表示

つぎは、スマホ(WEB UI)で人感センサの値を見えるようにdashboard機能を追加する。

Node-REDのjson function

M5StickCのPublishから、受け取れるデータは、こんな感じ。

  • 人感センサON
{"status":true}
  • 人感センサOFF
{"status":false}

が、このままだと、唯の文字列なので、制御データとし使いにくい。
Node-REDのfunction json で、json objectに変換する。

どういうことか、status の内容をprintするコードで表す。

  • json変換前
print(payload)
---
{"status":true}
  • json変換後
print(payload.status)
---
true

別に文字列のままでもなんとかなるけど、後々のためにここで対応

node-red-contrib-ui-led

人感センサのON/OFFを表示するUIとして、 node-red-contrib-ui-led を利用する。

install

ハンバーガーメニューの Manage palette からダイアログを表示して、 node-red-contrib-ui-led を選択してinstall。

まだなら、node-red-dashboardも

フロー

topic で、room1room2 の判別を行い、センサ値を赤(on)と緑(off)で表示する。

sensor device

実際のtopicは、 sensor/room1 となる。
この設定では、 room1 という文字列が含まれていたら分岐1、room2 という文字列が含まれてきたら分岐2 にデータが流れるようにしている。

ui-led

json objectの内容で、表示色を変更。

dashboard 表示

同じprivate network(AP)にiPhoneを接続して、表示を確認する。
URLは、こんな感じ。

http://{node-redのIP}:1880/ui/

下記画面ダンプでは、rpi4.local がnode-redのhost名

左側の四角が、人感センサの検知結果によって、赤と緑で切り替わる。

次回はデータを保存して活用する話。

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

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

2022.03.13

シェアする