もともと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ノードが登場
このようにWioノードが登場します。詳しい使い方はリポジトリに乗っていますが、直感的に使うことが可能です。
こちらのeventノードで入力のイベントをWebSocket通信と同様に取得可能です。はじめに設定する際にConnection設定を行います。
鉛筆ボタンをクリックします。
Wio NodeでSeeedアカウントのID/PASSを入力します。
Loginを押します。
アクセストークンが取得されて使用はじめられます。
入力の取得例(タッチセンサー例)
たとえば、eventノードでタッチセンサーのイベントを取得します。
タッチセンサーを押すと、
これで「タッチされた」ことが取得できます。これだけだと押されたことだけがわかります。
より詳細に、ON/OFFなど詳細の値を取りたい場合はsensorノードで値を取得します。ボタンの場合、押された状態と、押された値の取得は、常にペアに必要でしょう。
出力の例(LED)
出力の例を挙げます。
今回はLEDを光らせるので、
outputノードを使います。
このように、injectノードで1と0の値を送る形でoutputノードに値を送るフローです。
余談:WebSocketノードを使う方法は発見
まず、このようにシンプルにWebSocketノードを使う方法は発見していました。
WIO Link and Node-RED websockets
ただ、こちらですと、素のWebSocketノードなので手続きがいろいろとあって、NodeJSのコードを書いているのと変わらなくなってくるので、前述のノードを発見して盛り上がった次第です。
おわりに
今回のノードは、データ取得やデバイス出力については、もちろん接続しているハードに合わせてのAPIと見比べてノード設定する必要はありますが、Wio Link API ReferenceのWebSocketイベントに合わせていて扱いやすい印象です。
それでは、よき Wio Node Life & Node-RED Lifeを!