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