Skip to content

tutorial nodered

Tomoki Hayashi edited this page Feb 4, 2019 · 3 revisions

Node-REDと連携する

このサンプルでは以下の機能が利用できるようになります。

  • WebSocketを利用して、UnipadとRaspberry PI上のNode-REDと接続する

  • UnipadのBボタン押下を取得して、Node-REDからUnipadに任意のダイアログを表示する

  • ダイアログの選択肢内容によって、

    1. Unipadにメッセージを表示

    2. Raspberry PIを再起動

    3. Raspberry PIをシャットダウン

が実施できます。

1.Node-REDの編集画面ブラウザで開く

  • WEBブラウザにて
http://{ラズパイのIPアドレス}:1880

にアクセスしてNode-REDの編集画面を開いてください。

  • 事前にNode-REDがインストールされていることが必要です。

2. 編集画面で以下のコードを取り込んでください。

  • menu > import > clipboard で以下のコードをコピーしてクリップボードに貼り付けてください。
[{"id":"2b6b72dc.78f256","type":"websocket-listener","z":"9a9b74c6.6b286","path":"/","wholemsg":"false"},{"id":"cd68eb5f.e6b48","type":"websocket in","z":"9a9b74c6.6b286","name":"/","server":"2b6b72dc.78f256","client":"","x":56,"y":134,"wires":[["1feba34.ad8b45d"]]},{"id":"b217fa77.4fcb","type":"websocket out","z":"9a9b74c6.6b286","name":"","server":"2b6b72dc.78f256","client":"","x":802,"y":125,"wires":[]},{"id":"aa086485.901708","type":"debug","z":"9a9b74c6.6b286","name":"","active":false,"console":"false","complete":"payload","x":803.22216796875,"y":403.9999694824219,"wires":[]},{"id":"1feba34.ad8b45d","type":"switch","z":"9a9b74c6.6b286","name":"path","property":"payload","rules":[{"t":"cont","v":"/hello"},{"t":"cont","v":"/touch/end \"ButtonB\""},{"t":"eq","v":"/dialog/clicked/servicectrl \"reboot\""},{"t":"cont","v":"/dialog/clicked/servicectrl \"poweroff\""},{"t":"cont","v":"/dialog/clicked"},{"t":"cont","v":"/update"}],"checkall":"false","outputs":6,"x":220,"y":145,"wires":[["d0425e5c.1de3f"],["7621e0b2.91f9f8"],["168c396a.2f1357"],["1223826c.eddc7e"],["a3a9d2e5.d1efc8"],["f38b5661.d894a8"]]},{"id":"d0425e5c.1de3f","type":"template","z":"9a9b74c6.6b286","name":"/config/type 2","field":"payload","format":"handlebars","template":"/config/type 2","x":450,"y":113,"wires":[["b217fa77.4fcb"]]},{"id":"7621e0b2.91f9f8","type":"template","z":"9a9b74c6.6b286","name":"/dialog/open","field":"payload","format":"handlebars","template":"/dialog/open {\"id\":\"servicectrl\",\"title\" :\"node-red\",\"msg\" : \"node msg.\", \"btns\": [\"show message\",\"reboot\",\"poweroff\"]};","x":447.7777099609375,"y":181.55555725097656,"wires":[["b217fa77.4fcb","aa086485.901708"]]},{"id":"a3a9d2e5.d1efc8","type":"template","z":"9a9b74c6.6b286","name":" Dialog is Clicked ","field":"payload","format":"handlebars","template":"/info dialog was clicked\n","x":464.22216796875,"y":410.1111145019531,"wires":[["b217fa77.4fcb","aa086485.901708"]]},{"id":"1223826c.eddc7e","type":"exec","z":"9a9b74c6.6b286","command":"sudo /sbin/poweroff","addpay":false,"append":"","useSpawn":"","name":"","x":476,"y":336,"wires":[["b217fa77.4fcb"],["aa086485.901708"],[]]},{"id":"168c396a.2f1357","type":"exec","z":"9a9b74c6.6b286","command":"sudo /sbin/shutdown -r now","addpay":false,"append":"","useSpawn":"","name":"","x":491.88330078125,"y":259.8833312988281,"wires":[["b217fa77.4fcb"],["aa086485.901708"],[]]},{"id":"f38b5661.d894a8","type":"template","z":"9a9b74c6.6b286","name":"PressB","field":"payload","format":"handlebars","template":"/info Bを押してください","x":439,"y":491,"wires":[["b217fa77.4fcb","aa086485.901708"]]}]

  • 以下のようにモジュールが表示されるはずです。

3.Deployを押してコードを反映してください。

4.Unipadを起動して、「新しい接続」から以下の内容を指定して、接続を行ってください。

項目 入力内容
Name ※任意の名前 履歴画面で表示されます
Host Raspberry PIのホスト名もしくは、IPアドレス
Port 1880
Prtcl WebSocket

5.接続に成功したら、画面がTouchPADに切り替わります。

そこでBボタンを押してください。

  • Unipadにダイアログ画面が表示されます。

6. [show message]を選択するとUnipadのタッチエリアに「dialog was clicked」と表示されます。

解説

  • 接続時にTouchPadを表示するにはUnipadに対して
/config/type 2

というメッセージを送信することで実現しています。

  • メッセージの表示はUnipadに対して
/info dialog was clicked

というメッセージを送信することで実現しています。

  • ダイアログの表示はUnipadに対して
/dialog/open {"id":"servicectrl","title" :"node-red","msg" : "node msg.", "btns": ["show message","reboot","poweroff"]};

というメッセージを送信することで実現しています。

  • ダイアログの選択肢取得は
/dialog/clicked/{ダイアログのID}

 というメッセージで取得できます。 今回の場合は"id"に"servicectrl" を指定しているので

/dialog/clicked/servicectrl

で取得しています。

以上です。

Node-REDはIBMのBlueMix環境でも利用可能です。

同様の手法で、BlueMixに接続することも可能です。

Clone this wiki locally