-
Notifications
You must be signed in to change notification settings - Fork 2
tutorial nodered
Tomoki Hayashi edited this page Feb 4, 2019
·
3 revisions
-
Raspberry PiにインストールしたNode-REDとUnipadをWebsocketを利用して接続するチュートリアルです。
-
Node-REDは2015年11月版のラズパイ用OS Raspbian Jessie にプリインストールされるようになりました。
-
WebSocketを利用して、UnipadとRaspberry PI上のNode-REDと接続する
-
UnipadのBボタン押下を取得して、Node-REDからUnipadに任意のダイアログを表示する
-
ダイアログの選択肢内容によって、
-
Unipadにメッセージを表示
-
Raspberry PIを再起動
-
Raspberry PIをシャットダウン
-
が実施できます。
- WEBブラウザにて
http://{ラズパイのIPアドレス}:1880
にアクセスしてNode-REDの編集画面を開いてください。
- 事前にNode-REDがインストールされていることが必要です。
- 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"]]}]
- 以下のようにモジュールが表示されるはずです。
| 項目 | 入力内容 |
|---|---|
| Name | ※任意の名前 履歴画面で表示されます |
| Host | Raspberry PIのホスト名もしくは、IPアドレス |
| Port | 1880 |
| Prtcl | WebSocket |
- Unipadにダイアログ画面が表示されます。
- 接続時に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
で取得しています。
以上です。
同様の手法で、BlueMixに接続することも可能です。