フローから IoTデータ可視化サービス Ambient にデータを送る

enebularのアンケートにご協力いただきありがとうございました。一つ一つ読ませていただいておりますが、その中でAmbientやLINEと連携についてのご要望などがありました。今回の記事ではAmbientノードを使ったフローをご紹介します。

Ambientとは

IoTデータの可視化サービスで、アカウント登録と数ステップの設定でデータをすぐに可視化することができます。

AmbientはIoTデータの可視化サービスです。マイコンなどから送られるセンサデータを受信し、蓄積し、可視化(グラフ化)します。

https://ambidata.io/

Ambientノード

Ambientにデータを送信するためのNode-REDノードが公開されています。

早速、enebular editorのパレットの管理から追加してみましょう。

パレットの管理
追加されたノード

サンプルフロー

0-99のランダムな整数をAmbientに送信して、グラフを作ってみたいと思います。

サンプルフローのインポート(Discover)

Ambientの設定

チャネルを作ります。

チャネル(チャネルの番号は作成した時点で画面とは異なります。)

空のボードができますので、ギアアイコンの左横にあるグラフのボタンをクリックします。

チャネルのボード

チャートの設定を「散布図」にして、d1をx軸、d2をy軸にします。

チャート設定変更画面

設定を保存します。

ノードのプロパティ

enebular editorのフローに戻ります。

Change ノード

changeノードを使ってランダムな整数を作ります。

JSONataを使うと簡単です。

$random() → 0以上、1未満の疑似乱数を返します。
$floor(number) → number の値を number 以下の最も近い整数値へ切り捨てた値を返します。

$floor($random()*100)
と書けば、0-99迄のランダムな整数を2つ返します。これをd1とd2の2つに設定したいので、

msg.d1とmsg.d2にJSONata式を記載します。

Template ノード

payloadのデータを作るには、Templateノードを使うと便利です。Ambientに送る形式に従ってテンプレートを設定します。

“Ambientにデーターを送信する時は、データーを次のようなJSON形式でmsg.payloadにセットします。
    {“d1”:データー1, “d2”:データー2, “d3”:データー3, …}

データーは8種類、”d1″から”d8″まで送ることができます。Ambientはデーターを受信すると、受信時刻と合わせてデーターを蓄積します。”

https://ambidata.io/samples/dataprocess/node-red/

Ambient ノード

ノードのプロパティを開いて、チャネルIDとライトキーを入力します。

完成

フローができたら、一番左のInjectノードのボタンをクリックしてフローを起動します。Ambientは5秒毎にデータを受け入れるので、連続してクリックするときは、注意してください。

完成したフロー

ボードに追加したチャート「散布図」にデータが表示されました。

まとめ

IoTデータ可視化サービスAmbientとNode-REDを使ったサンプルをご紹介しました。

ぜひAmbientとenebularを使ってIoTにチャレンジしてみてください。