パブリッシュ(MQTT)されたデータをNODE-Redで可視化とデータ保存

はじめに

現在、事務所内にCO2濃度を測定するセンサを取付けたM5Stick-C PlusとMQTTのブローカーとしてRaspberry Piを設置しています。
M5Stick-C側から約1分間隔で測定したCO2濃度の値をMQTTでRaspberry Piにパブリッシュし、Raspberry Piでサブスクライブしています。

サブスクライブはPythonのコードで実行し、テキスト・ファイルとして保存しています。
また、RaspberryPi起動時に自動でGUIを起動するスクリプトに、シェルを開き、Pythonのコードを実行するシェルスクリプトを追加し、自動で実行させています。

Node-Redでサブスクライブ

Pythonでパブリッシュされたデータの保存はできました。
その一方で、可視化の部分が出来ていません。

そこでNode-Redを使って、可視化の部分について試してみました。

いろいろな情報を組合わせ、以下のフローを組みました。
フローの詳細については、インターネットで公開されているので、説明は省略します。

Raspberry Pi 起動時の設定として、Node-Redの設定が必要になりますが、Raspberry Pi起動時に、このフローが自動で起動するようにしています。

また、フローを作成していて判ったのですが、Pythonで1日ほどかけてコードを隼吾しましたが、Node-Redだと同じ機能が1時間ほどで出来てしまう。
生産性の高さに驚きました。
Node-Redではサブスクライブしたデータの可視化がテーマだったのですが、同時にデータ保存もテキスト・ファイルに保存できたことは予想外でした。

Raspberry Pi のボードがあればよく、サブスクライブ側の可視化とデータ保存機能はノートPCなどを使い、Node-Redで開発した方が生産性は高いように思われます。

 

Node-Redで可視化した結果

作成したフローをデプロイし、実行した結果です。
こちらは、デプロイしてから15時間近く経過した結果になります。

エアコンを動かすと、CO2濃度が400 ppmになります。
エアコンを切るとCO2濃度が上昇します。

センサーの特性なのか、エアコンによって事務所内に空気循環が生じ、濃度が下がったのか。

今までは、各時刻での値しか読めなかったものが、このように可視化されることによって、いろいろな疑問が生まれてきます。

IoTシステムによる生産効率を改善

事例として社内に設置したCO2濃度センサーの値をMQTTを使い、収集・可視化するシステムを構築しました。

  • 条件としては社内ネットワークに接続しない。
  • データ収集に外部サーバーを利用しない。
  • 時刻サーバから正確な時刻をコピーする。

こんな条件で構築しています。
この条件でしたら、既存設備などへの追加工事という形でIoTシステムの導入が容易になると思います。

データの可視化や処理用にパソコンは不要で、Wi-Fi通信機能を持つタブレット端末があれば大丈夫です。
ご興味があれば、ホームページの問合せフォームよりご連絡をお願いいたします。

PAGE TOP