本文将介绍如何在边缘计算网关 WisGate Connect(RAK7391)上快速部署一个 Node-RED 环境。
WisGate Connect 是瑞科慧联(RAK)最新推出的物联网平台,支持多种通讯协议和网络连接方式,还支持接入多种工业传感器(温湿度、气体、雷达、震动传感器等等)和 IO 模块(Modbus, CAN bus,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 compose 后,可通过以下测试命令来检查安装是否正常:
rak@rakpios:~ $ docker compose version
Docker Compose version v2.6.0
若使用搭载树莓派 CM4 的 WisGate Connect 部署,可使用下方的 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 服务:
当看到类似 Started flows 字样的时候,就表明服务已经启动成功了。这时可通过浏览器来访问 Node-RED 的编辑器。在同一局域网内可访问 http://{host-ip}:1880, 其中 host-ip 是你的树莓派地址。
在 Portainer 上启动 Node-Red 非常简单,首先需要确保已经按照介绍部分中的文档成功启动了
Portainer:
其中 status 一栏中可以看到 up 6 minutes 字样,这表明此时 portainer 已经启动了一段时间了, 这时可以在浏览器地址栏中输入 https://{host-ip}:9443 来访问 portainer 的页面。
在左侧边栏最下方的 Setting 选项中找到 App Template 这一栏,然后填入 RAK 为 Wisgate Connect 这款产品量身定制的 App 模板,该模板中包含了数十种可一键部署的常用的服务,包括 Node-RED,Zigbee2MQTT,The Things Stack LNS,Helium gateway-rs,HomeAssistant 等等。
模板的 URL 是:
https://raw.githubusercontent.com/RAKWireless/portainer-templates/master/portainer_app_template.json
接着在左侧的 App Template 中就可以看到包含 Node-RED 在内的数十种服务了:
点击 Node-RED 的图标,即可进入部署页面:
可在此页面修改容器的名字或 PUID、PGID 等选项,然后点击左下方 Deploy the stack 来部署。部署完成后,会自动刷新当前界面,并返回容器列表页面,就可以通过浏览器来访问 Node-RED 的编辑器了。在同一局域网内可访问 http://{host-ip}:1880, 其中 host-ip 是你的树莓派地址。
在进入 Node-RED 网页编辑器中后,可以在左侧边栏中找到如下背景色为橘黄色的节点, 这些都是 RAK 为其 WisBlock 工业传感器和 IO 开发的节点:
这些节点都是为 WisBlock 传感器和 IO 开发,但是不仅 WisBlock 模块可以在 WisGate Connect 上开箱即用,而且这些节点在大多数情况下也能够支持采用同样芯片的传感器和 IO,因为我们给这些节点提供了一些配置选项,用户可以根据自己的情况修改这些芯片的软件配置,使他们也能在别的设备上工作。
下表列出了这些 Node-RED 节点所对应的各个 WisBlock 模块,同时还有内置的芯片型号,以及 Node-RED flow 示例。关于这些 Node-RED 示例,可以直接查看 [Wisblock-node-red 代码仓库] (GitHub - RAKWireless/wisblock-node-red: NodeRED example flows to use with WisBlock modules),仓库中包含了所有 Node 的文档和示例代码。
此处以 WisGate connect 上自带的温湿度传感器 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.json at master · RAKWireless/wisblock-node-red · GitHub)中的内容导入到 Node-RED 中即可。请参考下方操作截图:
在弹出的窗口中直接粘贴 json 文件信息:
部署 flow:
可以看到右侧的 debug 窗口中已经出现了温湿度读数,但是默认是华氏度。可以选择修改输出的单位,从华氏度变为摄氏度。
该仓库中提供了瑞科慧联开发的 20 多个 Node-RED 节点的详细示例代码和文档说明。借助这些文档,可以很快的掌握如何在 WisGate Connect 上使用 Node-RED 这个低代码平台监控和管理各种工业传感器和 IO 接口。
全部0条评论
快来发表一下你的评论吧 !