LoginSignup
4
2

More than 3 years have passed since last update.

Node-REDでconect+ Studioにデータを送信してみる

Last updated at Posted at 2020-12-20

概要

当社が運営する「にじいろのはな保育園」では、
保育室の温湿度モニタリングにconect.plus社の「conect+ Studio」を使用していますが、
先日、conect.plusの中の人から、conect+ Studio用のNode-REDノードがあると聞き、
HACCP向けシステムで使ってみたお話。

システム構成

こんな感じです。
温度センサーにはInkbird IBS-TH1を使用しています。
温度、湿度が取得できます。
データはBluetoothのアドバタイズメッセージで送信してきます。
conect+ Studioにデータを送信するために、Raspberry Pi Zero WH(OSはRaspbian)を使用します。
image.png

実物を並べてみるとこんな感じ。
Raspberry Pi Zero WHより温度センサーの方が大きい感じ(笑)。
image.png

conect+ Studio

conect+ Studio側の設定を行います。
conect+ Studioにログイン後、左側メニューから「データアダプター」を選択します。

以下のような画面が表示されるので、「データアダプターを追加」をクリックします。
image.png

以下のような画面が表示されるので「Web API」を選択します。
image.png

データアダプター名を入力して、「保存する」を選択してください。
image.png

データアダプターの一覧に戻ります。
先ほど追加したデータアダプターが追加されていることが確認できます。
追加したデータアダプターの「?」アイコン(リファレンス)をクリックします。
image.png

以下のような画面が表示されるので、ワークスペースIDとWebAPIキーをコピーしておいてください。
image.png

Node-RED側の設定

conect+ Studio用ノードの追加

表示された「node-red-contrib-conect-plus」の「ノードを追加」をクリックします。
image.png

以下のようなメッセージが表示されるので、「追加」をクリックします。
image.png

追加が完了すると、パレットにconect plusグループが追加され、conect+ Studioのデータ送受信できるノードが表示されます。
image.png

Inkbird IBS-TH1用の設定

今回使用する温度センサーは、BLEのアドバタイズメッセージで温湿度データを送信してきます。
Node-REDでのデータを受信するために、node-red-contrib-blebeacon-scannerノードを使用します。
yossihard/node-red-contrib-blebeacon-scanner

このノードが必要なライブラリ等をインストールするために、
ラズパイのコンソールで以下のコマンドを実行してください。

> sudo apt-get install libbluetooth-dev libudev-dev pi-bluetooth
> npm install @abandonware/noble

conect+ Studio用ノードの追加と同じ手順で、node-red-contrib-blebeacon-scannerノードを追加してください。
追加するとパレットに以下のようなノードが表示されます。
image.png

フローの作成

フローを作成していきます。
以前に書いた記事「SORACOM Harvest Dataを使ってHACCP向けPoCシステムを作る」と、
ほぼ同じフローです(笑)。
⇒SORACOM Harvest Data用のHTTP requestノードが、conect+ Studio用のノードに変わっただけ。

image.png

上側のフローの「データ変換・保存」と書かれたノードで、
送信データを作成してグローバル変数に保存しています。
処理はこんな感じ。

var globalVal = global.get('SensorData');
if (!globalVal) {
  globalVal = {};
} 

var date = new Date();
var now = date.getFullYear()+"-"+(("0"+(date.getMonth()+1)).slice(-2))+"-"+(("0"+date.getDate()).slice(-2)) +
"T"+(("0"+date.getHours()).slice(-2))+":"+(("0"+date.getMinutes()).slice(-2))+":"+(("0"+date.getSeconds()).slice(-2))+"+09:00";

var buf = msg.payload.other

var temp = buf.readInt16LE(0) / 100;
var rssi = msg.payload.rssi;
var payload =  { sensingAt:now, value01:temp};
var newmsg = { payload:payload };

globalVal[msg.payload.id] = payload;
global.set('SensorData',globalVal);

return newmsg;

conect+ Studioへのデータ送信には、studio-sendノードを使用します。
Workspace IDとWebAPI Keyには、conect+ Studioのデータアダプターのリファレンス画面に記載されていたものを使用します。
Device IDとSensor IDには任意の値を入力してください。
ここではDeviceIDにRoom1、Sensor IDにSensor1を設定しています。
image.png

データが送信されたら、conect+ Studio側で確認してみます。
左側のメニューから「データ」を選択し、データアダプター・デバイス・センサーを選択して、
「検索」ボタンをクリックしてください。
受信されたデータが表示されます。
image.png

見える化

conect+ Studioでは、受信したデータをスタイリッシュに表示できます。
画面はドラッグ&ドロップで作っていけるので、
フロントエンドエンジニアではなくても簡単に作成できます。

以下は当社の保育園の室温モニタリング画面です。
image.png

まとめ?

今回はconect+ Studioのノードを使ってみました。
他にもNode-RED向けに様々なサービスのノードがリリースされているので、
システム構築が本当に楽に早くできますねー!

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2