本文將介紹如何在邊緣計(jì)算網(wǎng)關(guān)WisGate Connect(RAK7391)上快速部署一個(gè)Node-RED 環(huán)境。
WisGateConnect 是瑞科慧聯(lián)(RAK)最新推出的物聯(lián)網(wǎng)平臺(tái),支持多種通訊協(xié)議和網(wǎng)絡(luò)連接方式,還支持接入多種工業(yè)傳感器(溫濕度、氣體、雷達(dá)、震動(dòng)傳感器等等)和IO 模塊(Modbus, CANbus,LIN bus 等等)。
Node-RED是一款I(lǐng)BM 開(kāi)源的低代碼物聯(lián)網(wǎng)編排工具。它通過(guò)新穎有趣的方式,將硬件設(shè)備、API和在線服務(wù)連接在一起。Node-RED 提供了一個(gè)基于瀏覽器的編輯器,用戶可以基于這個(gè)編輯器中提供的各種節(jié)點(diǎn)(node)來(lái)輕松地創(chuàng)建各種流程,單擊一下即可將其部署到設(shè)備上。
對(duì)于個(gè)人用戶來(lái)說(shuō),無(wú)需多少編程經(jīng)驗(yàn),即可通過(guò)Node-RED 在個(gè)人設(shè)備上(筆記本電腦、樹(shù)莓派、云上虛擬機(jī)等)部署多種在線服務(wù),例如部署一套智能家居自動(dòng)化流程(flow),或者給自己的智能音箱添加點(diǎn)定制化小功能等。
對(duì)于企業(yè)用戶,Node-RED 也不失為一個(gè)可靠的生產(chǎn)力工具。日立、西門(mén)子IOT2000、三星、研華WISE-PaaS 等,都將Node-RED 集成到了他們自己的產(chǎn)品和服務(wù)中。
為方便用戶使用,我們將采取容器部署Node-RED 的方式。在這之前,瑞科慧聯(lián)已經(jīng)對(duì)Node-RED官方鏡像nodered/node-red:3.0.2進(jìn)行了一些修改。有關(guān)Node-RED 3.0 版的最新更改,請(qǐng)查看官方發(fā)行說(shuō)明。修改后的Node-RED 鏡像(代碼倉(cāng)庫(kù)NodeRED RAK-edition)預(yù)安裝了一些基本依賴(lài)庫(kù),和瑞科慧聯(lián)開(kāi)發(fā)的適用于上述工業(yè)傳感器和IO 的Node-RED 節(jié)點(diǎn)(代碼倉(cāng)庫(kù)RAKWireless/node-red-nodes)。
接下來(lái),我們會(huì)介紹兩種啟動(dòng)該容器的方法:一種是熟悉docker-compose 的用戶可根據(jù)下方提供的YML 文件來(lái)部署;另一種是通過(guò)Portainer 容器的可視化界面來(lái)部署。
軟件準(zhǔn)備
在部署服務(wù)前,需確保在設(shè)備上已經(jīng)安裝了docker。如果計(jì)劃使用docker-compose 來(lái)部署,還需確認(rèn)是否已經(jīng)安裝了docker-compose;如果是使用Portainer 的可視化界面來(lái)部署,需確保在設(shè)備上部署了Portainer 服務(wù)。
可參閱如下文檔來(lái)查閱這些軟件的安裝/配置文檔:
- Docker Engine Install Docker 文檔
- Docker-compose Install Docker Compose 文檔 使用 Docker 安裝 Portainer standalone Install Portainer with Docker on Linux 文檔
- 在 Portainer 內(nèi)配置 RAK 定制的應(yīng)用模板 RAKWireless/portainer-templates 代碼倉(cāng)庫(kù)
使用docker compose啟動(dòng)
安裝docker compose后,可通過(guò)以下測(cè)試命令來(lái)檢查安裝是否正常:
rak@rakpios:~ $ docker compose version
Docker Compose version v2.6.0
若使用搭載樹(shù)莓派CM4 的WisGateConnect部署,可使用下方的 docker-compose.yml文件來(lái)啟動(dòng)Node-RED 服務(wù):
version: '3.7'
services:
nodered:
image: sheng2216/nodered-docker:rak
# build:
# context: ./
# dockerfile: Dockerfile
container_name: NodeRed
user: node-red
group_add:
- "997"
- "998"
restart: unless-stopped
devices:
-"/dev/gpiochip0:/dev/gpiochip0"
- "/dev/i2c-1:/dev/i2c-1"
-"/dev/ttyUSB0:/dev/ttyUSB0"
-"/dev/ttyUSB1:/dev/ttyUSB1"
volumes:
-'node-red-data:/data'
ports:
- "1880:1880"
volumes:
node-red-data:
若使用樹(shù)莓派4B,請(qǐng)使用下方的docker-compose.yml文件來(lái)啟動(dòng)Node-RED 服務(wù):
version: '3.7'
services:
nodered:
image: sheng2216/nodered-docker:rak
# build:
# context: ./
# dockerfile: Dockerfile
container_name: NodeRed
user: node-red
group_add:
- "997"
- "998"
restart:
devices:
-"/dev/gpiochip0:/dev/gpiochip0"
- "/dev/i2c-1:/dev/i2c-1"
-"/dev/ttyAMA0:/dev/ttyAMA0"
volumes:
- 'node-red-data:/data'
ports:
- "1880:1880"
volumes:
node-red-data:
可將上面的配置內(nèi)容保存在一個(gè)叫做docker-compose.yml 的文件中,然后使用如下命令來(lái)啟動(dòng)Node-RED 服務(wù):
當(dāng)看到類(lèi)似Started flows字樣的時(shí)候,就表明服務(wù)已經(jīng)啟動(dòng)成功了。這時(shí)可通過(guò)瀏覽器來(lái)訪問(wèn)Node-RED的編輯器。在同一局域網(wǎng)內(nèi)可訪問(wèn)http://{host-ip}:1880,其中host-ip是你的樹(shù)莓派地址。
使用Portainer啟動(dòng)
在Portainer 上啟動(dòng)Node-Red 非常簡(jiǎn)單,首先需要確保已經(jīng)按照介紹部分中的文檔成功啟動(dòng)了
Portainer:
其中 status一欄中可以看到 up6 minutes字樣,這表明此時(shí)portainer已經(jīng)啟動(dòng)了一段時(shí)間了,這時(shí)可以在瀏覽器地址欄中輸入https://{host-ip}:9443來(lái)訪問(wèn)portainer的頁(yè)面。
在左側(cè)邊欄最下方的Setting 選項(xiàng)中找到AppTemplate 這一欄,然后填入RAK 為WisgateConnect 這款產(chǎn)品量身定制的App 模板,該模板中包含了數(shù)十種可一鍵部署的常用的服務(wù),包括Node-RED,Zigbee2MQTT,TheThingsStackLNS,Helium gateway-rs,HomeAssistant 等等。
模板的URL是:
https://raw.githubusercontent.com/RAKWireless/portainer-templates/master/portainer_app_template.json
接著在左側(cè)的AppTemplate 中就可以看到包含Node-RED 在內(nèi)的數(shù)十種服務(wù)了:
點(diǎn)擊Node-RED 的圖標(biāo),即可進(jìn)入部署頁(yè)面:
可在此頁(yè)面修改容器的名字或 PUID、PGID 等選項(xiàng),然后點(diǎn)擊左下方 Deploy the stack 來(lái)部署。部署完成后,會(huì)自動(dòng)刷新當(dāng)前界面,并返回容器列表頁(yè)面,就可以通過(guò)瀏覽器來(lái)訪問(wèn) Node-RED 的編輯器了。在同一局域網(wǎng)內(nèi)可訪問(wèn) http://{host-ip}:1880, 其中 host-ip 是你的樹(shù)莓派地址。
Node-RED示例
在進(jìn)入Node-RED 網(wǎng)頁(yè)編輯器中后,可以在左側(cè)邊欄中找到如下背景色為橘黃色的節(jié)點(diǎn),這些都是RAK 為其WisBlock 工業(yè)傳感器和IO 開(kāi)發(fā)的節(jié)點(diǎn):
這些節(jié)點(diǎn)都是為WisBlock 傳感器和IO 開(kāi)發(fā),但是不僅WisBlock 模塊可以在WisGate Connect 上開(kāi)箱即用,而且這些節(jié)點(diǎn)在大多數(shù)情況下也能夠支持采用同樣芯片的傳感器和IO,因?yàn)槲覀兘o這些節(jié)點(diǎn)提供了一些配置選項(xiàng),用戶可以根據(jù)自己的情況修改這些芯片的軟件配置,使他們也能在別的設(shè)備上工作。
下表列出了這些Node-RED 節(jié)點(diǎn)所對(duì)應(yīng)的各個(gè)WisBlock 模塊,同時(shí)還有內(nèi)置的芯片型號(hào),以及Node-REDflow 示例。關(guān)于這些Node-RED示例,可以直接查看[Wisblock-node-red 代碼倉(cāng)庫(kù)](GitHub - RAKWireless/wisblock-node-red: NodeRED exampleflows to use with WisBlockmodules),倉(cāng)庫(kù)中包含了所有Node 的文檔和示例代碼。
此處以WisGateconnect 上自帶的溫濕度傳感器SHTC3 為例,展示如何快速的讀取溫濕度信息。更多細(xì)節(jié)請(qǐng)查看該傳感器對(duì)應(yīng)的[Node-RED flow example](wisblock-node-red/sensors/rak1901/rak1901-shtc3-read at master · RAKWireless/wisblock-node-red ·
GitHub)。首先需要將文件[rak1901-shtc3-read.json](wisblock-node-red/rak1901-shtc3-read.jsonat master· RAKWireless/wisblock-node-red·GitHub)中的內(nèi)容導(dǎo)入到Node-RED 中即可。請(qǐng)參考下方操作截圖:
在彈出的窗口中直接粘貼json 文件信息:
部署flow:
可以看到右側(cè)的debug 窗口中已經(jīng)出現(xiàn)了溫濕度讀數(shù),但是默認(rèn)是華氏度。可以選擇修改輸出的單位,從華氏度變?yōu)閿z氏度。
該倉(cāng)庫(kù)中提供了瑞科慧聯(lián)開(kāi)發(fā)的20 多個(gè)Node-RED 節(jié)點(diǎn)的詳細(xì)示例代碼和文檔說(shuō)明。借助這些文檔,可以很快的掌握如何在WisGateConnect 上使用Node-RED 這個(gè)低代碼平臺(tái)監(jiān)控和管理各種工業(yè)傳感器和IO 接口。
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2912文章
44915瀏覽量
375973 -
RAK
+關(guān)注
關(guān)注
0文章
48瀏覽量
2106
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論