さくら IoT – 温湿度センサー HDC1000


さくら IoT と 温湿度センサー HDC1000 で温湿度を観測する

ハンズオン資料
さくらインターネットから、ハンズオンの資料が公開されています。
http://www.slideshare.net/sakura_pr/ss-64599802

センサーとして HDC1000 を、WebSocket クライアントとして node-red を使っています。
HDC1000 は、秋月電子で販売されています。
HDC1000使用 温湿度センサーモジュール

いくつか気になったことがあります。
(1) HDC1000 の +V を Arduino の 3.3V に接続している。
Arduino は 5V 動作なので、HDC1000 も 5V にすべきでしょう。
(2) node-red のインストールを、すべて root ユーザーで行っている。
yum 以外は、一般ユーザで設定できますね。
(3) node-red での動作確認が WebSocket を受信するところまでです。
これは、時間の関係かもしれないが、もうちょっとやりたいですよね。
WebSocket の受信だけなら、WEBブラウザーでも出来るし。
拙作の javascript 版

今回やったこと
HDC1000 のデータを node-red で受信するところまでは、資料と同じです。
その先として、グラフ表示をしてみました。

環境は、CentOS ではなく、MAC で構築しました。
インストールは、下記を参考にしてください。
brew で node をインストールする
MAC に Node-RED をインストールする
Node-RED でグラフ表示をする

センサ側
HDC1000 を通信モジュールに接続する
20161013_sakura_hdc1000

node-red の処理
WebSocket の受信から、http 出力にする flow がわからなかったので。
いったん、WebSocket で受信したデータをファイルに保存しました。
ファイルを読み出して、http 出力に結びつけました。

Flow
Flow は Github で公開しました。
20161013_sakura_flow

parser
WebSocket で受信したデータを cvs 形式にする
コード parser.js

text
一番新しいデータが、上になるように、逆順に並び替える
コード text.js

temperature、humidity、count
最新の100個のデータを、グラフ形式に変換する
コード temperature.js

結果
20161013_sakura_temperature


Node-RED でグラフ表示をする


Node-RED のグラフ機能として、
Google Chart のノードが提供されています。

他には、下記のようなサービスと連携することでグラフ表示ができるようです。
dashing
freeboard
pubnub
atlasboard

インストール

$ npm install  -g node-red-contrib-googlechart

確認
線グラフを表示します。
データは、Google Chart のもの を使いました。

flow
20161012_nodered_flow

chart の設定
20161012_nodered_chart_setting

function ノードにて、グラフのデータを用意する

msg.payload = [
{Day:1,  Galaxy:37.8, Avengers:80.8, Transformers:41.8},
{Day:2,  Galaxy:30.9, Avengers:69.5, Transformers:32.4},
{Day:3,  Galaxy:25.4,   Avengers:57, Transformers:25.7},
{Day:4,  Galaxy:11.7, Avengers:18.8, Transformers:10.5},
{Day:5,  Galaxy:11.9, Avengers:17.6, Transformers:10.4},
{Day:6,   Galaxy:8.8, Avengers:13.6,  Transformers:7.7},
{Day:7,   Galaxy:7.6, Avengers:12.3,  Transformers:9.6},
{Day:8,  Galaxy:12.3, Avengers:29.2, Transformers:10.6},
{Day:9,  Galaxy:16.9, Avengers:42.9, Transformers:14.8},
{Day:10, Galaxy:12.8, Avengers:30.9, Transformers:11.6},
{Day:11,  Galaxy:5.3,  Avengers:7.9,  Transformers:4.7},
{Day:12,  Galaxy:6.6,  Avengers:8.4,  Transformers:5.2},
{Day:13,  Galaxy:4.8,  Avengers:6.3,  Transformers:3.6},
{Day:14,  Galaxy:4.2,  Avengers:6.2,  Transformers:3.4}
];
return msg;

結果
20161012_nodered_chart

参考
Node-REDで線グラフ
見えるNode-RED!


MAC に Node-RED をインストールする


Node-RED は、ハードウェアデバイス、API、オンラインサービスなどを接続するためのツールです。
ボックスを接続する形式のグラフィックなツールです。
言語は JavaScript です。

Linux、Mac、Windows 環境で動作します。
IBM Bluemix、Amazon Web Services Microsoft Azure などのクラウド環境でも動作します。
node.js が必要です。

MAC へのインストール
(1) node のインストール
brew で node をインストールする

(2) node-red のインストール

$ npm install -g node-red

動作確認
Creating your first flow を試してみます。

flow
20161011_nodered_flow

結果
unixtime 形式の時刻が文字列に変換される
20161011_nodered_debug_1 20161011_nodered_debug_2