IoTソリューション

現場センサーデータをサーバーに送り時系列で表示する方法の検証

EnOceanのセンサーをつかって現場のデータを取得、サーバーに送りそれを監視したり、時系列で表示できるようにしたいと考えています。

現場側ではデータを送ることだけに専念し、サーバー側であとの処理はできるように切り分けていきます。

使用するサーバーはさくらのVPSで進めます。

さくらのVPS

*既にNode-REDもInfluxDBもインストールしたので、その後の方法の記載です。

データベースにはInfluxDBを使用するので確認

DBにはInfluxDBを使用して、Node-REDからデータを流し込みます。

こちらの記事を見ながらやっていきます。

InfluxDBをRaspberry Piにインストールし、node-RED経由でIoTデータを挿入し、Chronografで可視化してみた。 – Qiita

InfluxDB 1.7 のインストール – bnote

InfluxDB インストール – 簡単な使い方 – Qiita

05 30 05 13 00

まずは、influxDBを起動。

05 30 05 14 06

以前、main_dbというデータベースを作成したので、それがあることを確認。

ちなみに、DBの作成は

> CREATE DATABASE TEST

にて作成できます。

あと、MySQLのtableに該当するものは、measurementというようで、DATABASEの中身を見るには、

05 30 05 24 21

このようにします。

05 30 05 29 15

table1の中身確認。以前挿入したデータが表示されました。

InfluxDBにデータを格納する方法

InfluxDBをRaspberry Piにインストールし、node-RED経由でIoTデータを挿入し、Chronografで可視化してみた。 – Qiita

Qiitaで@yoroyasuさんが書かれた記事のNode-REDフローを確認。

05 30 05 33 11 05 30 05 33 50

Injectノードでは、”temp=26.01,hum=65.43″というデータを送信。

05 30 05 34 52

influxdb outノードでtable1を指定。

MySQLに比べてすごくシンプルですね。とおもったら、そうじゃなかった!

@yoroyasuも書かれていますが、Objectとして送る必要があるとのこと。

だとしたら前回の記事で受け取ったデータがそのままおくれそう。

SATEL社のGRPS-Aで取得したデータをInfluxDBに送る方法

こちらが前回の記事。

SATEL社のGRPS-Aでデータを取得してSakura VPS上のNode-REDで監視と制御を行う方法|デジタルライト(Digital-light.jp)

05 30 06 26 20

GRPS-AからMQTTで送られてくるデータがJSON文字列なので、Node-REDのjsonノードでObjectに変換したデータがこちら。

05 30 06 25 40

なので、そのままinflux outノードに送れば格納できます。

05 30 06 28 59

横幅が足りずに行ずれしていますが、しっかりと項目ごとにDBに保存されています。

ChronografをCentOS7にインストール

先程のデータを可視化するためにChronografをさくらのVPSにインストールします。

CentOSへのインストール方法は下記リンクにあります。

Install Chronograf | Chronograf 1.8 Documentation

いまさら CentOS8に 「InfluxDB 1.8.3 + Telegraf + Chronograf」をいれて複数 Raspberry pi4 の温度管理をしてみる – Qiita

# wget https://repos.influxdata.com/rhel/8/x86_64/stable/chronograf-1.8.10.x86_64.rpm

# sudo yum localinstall chronograf-1.8.10.x86_64.rpm

# sudo systemctl enable --now chronograf

# sudo systemctl status chronograf

Chronografのバージョンについては、こちらで確認しておきましょう。

Releases · influxdata/chronograf · GitHub

05 30 07 03 06

ブラウザでURL:8888にアクセスするとChronografが表示されました。

Chronografの画面

05 30 08 13 12

GRPS-AからのデータでRSSI(受信信号強度)の時系列での変化をChronografをつかってグラフ化してみました。

05 30 08 17 26

functionsでは、データをどのように集計するかの機能を選ぶことができ、functionsを選んで”Apply”を押すとグラフに反映されます。

05 30 08 19 51

可視化については、”Visualization”タブをクリック、”Visualization Type”を選択、”Send to Dashboard”とします。

05 30 08 24 30

これでDashboardに表示されるようになりますが、どのように使うかはこれから調査していきます。

まとめ

今まではセンサーデータの取得は、あくまでも制御するためのロジックの素材のひとつでしたが、サーバー場に時系列で集計することにより、最近話題のDXにも関連づけられるような使い方ができそうです。

引き続き、調査・検証していきます。

ABOUT ME
中畑 隆拓
スマートライト㈱ 代表取締役。IoTソリューションの開発、スマートホーム&オフィスのコンサルティング、DALI,KNX,EnOceanなどのインテグレーションを行っています。