Node-REDでWio Node用Nodeがあったので使ってみたメモ

もともとWio Link API Referenceを参考にしてのWebSocket通信はNode-REDで試したものの、Node-REDにWio Nodeのノードがあったらいいなー!と探していたら、すでに開発されている人がいて使ってみたメモです。ありがたや。

リポジトリはこちら

WarriorRocker/node-red-contrib-wio-seeed: Wio Link Nodes using Grove modules for Node RED

インストール

Node-REDの設定フォルダに移動してインストールします。

npm install node-red-contrib-wio-seeed

インストールするとWioノードが登場

node-red-wio-seeed-first-contact_1

このようにWioノードが登場します。詳しい使い方はリポジトリに乗っていますが、直感的に使うことが可能です。

node-red-wio-seeed-first-contact_2

こちらのeventノードで入力のイベントをWebSocket通信と同様に取得可能です。はじめに設定する際にConnection設定を行います。

node-red-wio-seeed-first-contact_3

node-red-wio-seeed-first-contact_4

鉛筆ボタンをクリックします。

node-red-wio-seeed-first-contact_5

Wio NodeでSeeedアカウントのID/PASSを入力します。

node-red-wio-seeed-first-contact_6

Loginを押します。

node-red-wio-seeed-first-contact_7

アクセストークンが取得されて使用はじめられます。

入力の取得例(タッチセンサー例)

node-red-wio-seeed-first-contact_9

たとえば、eventノードでタッチセンサーのイベントを取得します。

node-red-wio-seeed-first-contact_10

タッチセンサーを押すと、

node-red-wio-seeed-first-contact_11

これで「タッチされた」ことが取得できます。これだけだと押されたことだけがわかります。

node-red-wio-seeed-first-contact_15

より詳細に、ON/OFFなど詳細の値を取りたい場合はsensorノードで値を取得します。ボタンの場合、押された状態と、押された値の取得は、常にペアに必要でしょう。

出力の例(LED)

出力の例を挙げます。

node-red-wio-seeed-first-contact_12

今回はLEDを光らせるので、

node-red-wio-seeed-first-contact_13

outputノードを使います。

node-red-wio-seeed-first-contact_16

このように、injectノードで1と0の値を送る形でoutputノードに値を送るフローです。

node-red-wio-seeed-first-contact_14

node-red-wio-seeed-first-contact_17を押すと、光ります!

余談:WebSocketノードを使う方法は発見

まず、このようにシンプルにWebSocketノードを使う方法は発見していました。

WIO Link and Node-RED websockets

ただ、こちらですと、素のWebSocketノードなので手続きがいろいろとあって、NodeJSのコードを書いているのと変わらなくなってくるので、前述のノードを発見して盛り上がった次第です。

おわりに

今回のノードは、データ取得やデバイス出力については、もちろん接続しているハードに合わせてのAPIと見比べてノード設定する必要はありますが、Wio Link API ReferenceのWebSocketイベントに合わせていて扱いやすい印象です。

それでは、よき Wio Node Life & Node-RED Lifeを!