本文將介紹如何在邊緣計算網關WisGate Connect(RAK7391)上快速部署一個Node-RED 環境。
WisGateConnect 是瑞科慧聯(RAK)最新推出的物聯網平臺,支持多種通訊協議和網絡連接方式,還支持接入多種工業傳感器(溫濕度、氣體、雷達、震動傳感器等等)和IO 模塊(Modbus, CANbus,LIN bus 等等)。
Node-RED是一款IBM 開源的低代碼物聯網編排工具。它通過新穎有趣的方式,將硬件設備、API和在線服務連接在一起。Node-RED 提供了一個基于瀏覽器的編輯器,用戶可以基于這個編輯器中提供的各種節點(node)來輕松地創建各種流程,單擊一下即可將其部署到設備上。
對于個人用戶來說,無需多少編程經驗,即可通過Node-RED 在個人設備上(筆記本電腦、樹莓派、云上虛擬機等)部署多種在線服務,例如部署一套智能家居自動化流程(flow),或者給自己的智能音箱添加點定制化小功能等。
對于企業用戶,Node-RED 也不失為一個可靠的生產力工具。日立、西門子IOT2000、三星、研華WISE-PaaS 等,都將Node-RED 集成到了他們自己的產品和服務中。
為方便用戶使用,我們將采取容器部署Node-RED 的方式。在這之前,瑞科慧聯已經對Node-RED官方鏡像nodered/node-red:3.0.2進行了一些修改。有關Node-RED 3.0 版的最新更改,請查看官方發行說明。修改后的Node-RED 鏡像(代碼倉庫NodeRED RAK-edition)預安裝了一些基本依賴庫,和瑞科慧聯開發的適用于上述工業傳感器和IO 的Node-RED 節點(代碼倉庫RAKWireless/node-red-nodes)。
接下來,我們會介紹兩種啟動該容器的方法:一種是熟悉docker-compose 的用戶可根據下方提供的YML 文件來部署;另一種是通過Portainer 容器的可視化界面來部署。
軟件準備
在部署服務前,需確保在設備上已經安裝了docker。如果計劃使用docker-compose 來部署,還需確認是否已經安裝了docker-compose;如果是使用Portainer 的可視化界面來部署,需確保在設備上部署了Portainer 服務。
可參閱如下文檔來查閱這些軟件的安裝/配置文檔:
- Docker Engine Install Docker 文檔
- Docker-compose Install Docker Compose 文檔 使用 Docker 安裝 Portainer standalone Install Portainer with Docker on Linux 文檔
- 在 Portainer 內配置 RAK 定制的應用模板 RAKWireless/portainer-templates 代碼倉庫
使用docker compose啟動
安裝docker compose后,可通過以下測試命令來檢查安裝是否正常:
rak@rakpios:~ $ docker compose version
Docker Compose version v2.6.0
若使用搭載樹莓派CM4 的WisGateConnect部署,可使用下方的 docker-compose.yml文件來啟動Node-RED 服務:
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文件來啟動Node-RED 服務:
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:
可將上面的配置內容保存在一個叫做docker-compose.yml 的文件中,然后使用如下命令來啟動Node-RED 服務:
![poYBAGN12tCAKWcLAAMfyvFPVjw247.png](https://file.elecfans.com/web2/M00/7B/71/poYBAGN12tCAKWcLAAMfyvFPVjw247.png)
當看到類似Started flows字樣的時候,就表明服務已經啟動成功了。這時可通過瀏覽器來訪問Node-RED的編輯器。在同一局域網內可訪問http://{host-ip}:1880,其中host-ip是你的樹莓派地址。
使用Portainer啟動
在Portainer 上啟動Node-Red 非常簡單,首先需要確保已經按照介紹部分中的文檔成功啟動了
Portainer:
![pYYBAGN12TiAd2opAAApdLXNPvk048.png](https://file.elecfans.com/web2/M00/7B/FE/pYYBAGN12TiAd2opAAApdLXNPvk048.png)
其中 status一欄中可以看到 up6 minutes字樣,這表明此時portainer已經啟動了一段時間了,這時可以在瀏覽器地址欄中輸入https://{host-ip}:9443來訪問portainer的頁面。
![pYYBAGN1rx6AD9l9ABoHh-0qCK8488.png](https://file.elecfans.com/web2/M00/7B/F0/pYYBAGN1rx6AD9l9ABoHh-0qCK8488.png)
在左側邊欄最下方的Setting 選項中找到AppTemplate 這一欄,然后填入RAK 為WisgateConnect 這款產品量身定制的App 模板,該模板中包含了數十種可一鍵部署的常用的服務,包括Node-RED,Zigbee2MQTT,TheThingsStackLNS,Helium gateway-rs,HomeAssistant 等等。
模板的URL是:
https://raw.githubusercontent.com/RAKWireless/portainer-templates/master/portainer_app_template.json
![poYBAGN1r1CAW1YSABYpFKC4oUU353.png](https://file.elecfans.com/web2/M00/7B/62/poYBAGN1r1CAW1YSABYpFKC4oUU353.png)
接著在左側的AppTemplate 中就可以看到包含Node-RED 在內的數十種服務了:
![pYYBAGN1r2CAGr-IABLMNDPAywU860.png](https://file.elecfans.com/web2/M00/7B/F0/pYYBAGN1r2CAGr-IABLMNDPAywU860.png)
點擊Node-RED 的圖標,即可進入部署頁面:
![poYBAGN1r3GATHvVABV1rmlWyVU613.png](https://file.elecfans.com/web2/M00/7B/62/poYBAGN1r3GATHvVABV1rmlWyVU613.png)
可在此頁面修改容器的名字或 PUID、PGID 等選項,然后點擊左下方 Deploy the stack 來部署。部署完成后,會自動刷新當前界面,并返回容器列表頁面,就可以通過瀏覽器來訪問 Node-RED 的編輯器了。在同一局域網內可訪問 http://{host-ip}:1880, 其中 host-ip 是你的樹莓派地址。
Node-RED示例
在進入Node-RED 網頁編輯器中后,可以在左側邊欄中找到如下背景色為橘黃色的節點,這些都是RAK 為其WisBlock 工業傳感器和IO 開發的節點:
![pYYBAGN1r3uAB_5iABLzQi5O2Y0482.png](https://file.elecfans.com/web2/M00/7B/F0/pYYBAGN1r3uAB_5iABLzQi5O2Y0482.png)
這些節點都是為WisBlock 傳感器和IO 開發,但是不僅WisBlock 模塊可以在WisGate Connect 上開箱即用,而且這些節點在大多數情況下也能夠支持采用同樣芯片的傳感器和IO,因為我們給這些節點提供了一些配置選項,用戶可以根據自己的情況修改這些芯片的軟件配置,使他們也能在別的設備上工作。
下表列出了這些Node-RED 節點所對應的各個WisBlock 模塊,同時還有內置的芯片型號,以及Node-REDflow 示例。關于這些Node-RED示例,可以直接查看[Wisblock-node-red 代碼倉庫](GitHub - RAKWireless/wisblock-node-red: NodeRED exampleflows to use with WisBlockmodules),倉庫中包含了所有Node 的文檔和示例代碼。
![pYYBAGN1sQyAQV8JAABISsPJwdM501.png](https://file.elecfans.com/web2/M00/7B/F0/pYYBAGN1sQyAQV8JAABISsPJwdM501.png)
此處以WisGateconnect 上自帶的溫濕度傳感器SHTC3 為例,展示如何快速的讀取溫濕度信息。更多細節請查看該傳感器對應的[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)中的內容導入到Node-RED 中即可。請參考下方操作截圖:
![pYYBAGN1r6GAEwlYAA3uvvFLgJU370.png](https://file.elecfans.com/web2/M00/7B/F0/pYYBAGN1r6GAEwlYAA3uvvFLgJU370.png)
在彈出的窗口中直接粘貼json 文件信息:
![poYBAGN1r6mAVnxGAAuDVainUc0691.png](https://file.elecfans.com/web2/M00/7B/62/poYBAGN1r6mAVnxGAAuDVainUc0691.png)
部署flow:
![pYYBAGN1r7OAFmoEABBQXvRisS0536.png](https://file.elecfans.com/web2/M00/7B/F0/pYYBAGN1r7OAFmoEABBQXvRisS0536.png)
可以看到右側的debug 窗口中已經出現了溫濕度讀數,但是默認是華氏度。可以選擇修改輸出的單位,從華氏度變為攝氏度。
![poYBAGN1r7yALT6jAAzAAWbU3Kg749.png](https://file.elecfans.com/web2/M00/7B/62/poYBAGN1r7yALT6jAAzAAWbU3Kg749.png)
該倉庫中提供了瑞科慧聯開發的20 多個Node-RED 節點的詳細示例代碼和文檔說明。借助這些文檔,可以很快的掌握如何在WisGateConnect 上使用Node-RED 這個低代碼平臺監控和管理各種工業傳感器和IO 接口。
-
物聯網
+關注
關注
2909文章
44635瀏覽量
373394 -
RAK
+關注
關注
0文章
48瀏覽量
2088
發布評論請先 登錄
相關推薦
Node-RED賦能ARMxy嵌入式計算機:開發者的首選
![<b class='flag-5'>Node-RED</b>賦能ARMxy嵌入式<b class='flag-5'>計算</b>機:開發者的首選](https://file1.elecfans.com/web2/M00/07/17/wKgZombtIG-AAR4rAAH-6_MocZk908.png)
Node-RED + 鋇錸技術ARMxy工控機實現Modbus轉IEC-61850
![<b class='flag-5'>Node-RED</b> + 鋇錸技術ARMxy工控機實現Modbus轉IEC-61850](https://file1.elecfans.com/web1/M00/F2/B2/wKgZoWcImIGAbgP1AAJCLj26KRo951.png)
教程:ARMxy工業計算機上Node-RED連接本地MySQL的方法
![教程:ARMxy工業<b class='flag-5'>計算</b>機上<b class='flag-5'>Node-RED</b>連接本地MySQL的方法](https://file1.elecfans.com/web1/M00/F2/B0/wKgaoWcIjE-AIOclAAr6uuHRxFI485.png)
ARM控制器與Node-Red:獲取氣象網站數據
![ARM控制器與<b class='flag-5'>Node-Red</b>:獲取氣象網站數據](https://file1.elecfans.com/web2/M00/07/40/wKgZombuMZ2AIrZ-AAB5_yvi7LA306.png)
Node-Red可視化編程:簡化開發的創新之選
![<b class='flag-5'>Node-Red</b>可視化編程:簡化開發的創新之選](https://file1.elecfans.com/web2/M00/08/08/wKgaombtMS2AG1x8AAFbv-QxLqs199.png)
ARMxy ARM 物聯網邊緣計算網關支持 Node-RED 用于工業控制
![ARMxy ARM 物聯網<b class='flag-5'>邊緣</b><b class='flag-5'>計算</b><b class='flag-5'>網關</b>支持 <b class='flag-5'>Node-RED</b> 用于工業控制](https://file1.elecfans.com/web2/M00/04/4A/wKgaombDCd2AAOXOAAQ_5bhIzWA681.png)
ARMxy ARM物聯網邊緣計算網關支持Node-RED用于云邊端一體化
![ARMxy ARM物聯網<b class='flag-5'>邊緣</b><b class='flag-5'>計算</b><b class='flag-5'>網關</b>支持<b class='flag-5'>Node-RED</b>用于云邊端一體化](https://file1.elecfans.com/web2/M00/04/46/wKgaombC-4uAKqJFAAIghC6fwVA696.png)
ARMxy ARM嵌入式計算機支持Node-Red應用于Ubuntu系統訂閱消息
![ARMxy ARM嵌入式<b class='flag-5'>計算</b>機支持<b class='flag-5'>Node-Red</b>應用于Ubuntu系統訂閱消息](https://file1.elecfans.com/web2/M00/02/F8/wKgZoma-7q2AbfnWAACKaFThY7s250.png)
利用ARMxy邊緣計算機BL340與Node-Red實現LED設備的開閉控制
![利用ARMxy<b class='flag-5'>邊緣</b><b class='flag-5'>計算</b>機BL340與<b class='flag-5'>Node-Red</b>實現LED設備的開閉控制](https://file1.elecfans.com/web2/M00/03/A7/wKgaoma9m42ARaq_AAF7m92CM-8357.png)
使用Node-RED實現ModBus TCP到RTU的轉換
![使用<b class='flag-5'>Node-RED</b>實現ModBus TCP到RTU的轉換](https://file.elecfans.com/web2/M00/3E/6A/pYYBAGJhBGGAGyDYAACBPQuBZQI711.png)
Node-RED初學者教程-三分鐘學習
![<b class='flag-5'>Node-RED</b>初學者教程-三分鐘學習](https://file1.elecfans.com/web2/M00/F3/A9/wKgZomZ9K8iAJEx9AAFuddar79s482.png)
Node-RED安裝本地教程
![<b class='flag-5'>Node-RED</b>安裝本地教程](https://file1.elecfans.com/web2/M00/F2/44/wKgZomZ48jSAYAspAAGqA7WBuU8775.png)
Node-RED實現電表數據采集并上云
![<b class='flag-5'>Node-RED</b>實現電表數據采集并上云](https://file.elecfans.com/web2/M00/3E/6A/pYYBAGJhBGGAGyDYAACBPQuBZQI711.png)
評論