无需复杂代码,轻松快速在边缘计算网关WisGate Connect上部署Node-RED

本文将介绍如何在边缘计算网关 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 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 versiondocker 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:1880volumes: 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:1880volumes: node-red-data: 
可将上面的配置内容保存在一个叫做 docker-compose.yml 的文件中,然后使用如下命令来启动node-red 服务:
当看到类似 started flows 字样的时候,就表明服务已经启动成功了。这时可通过浏览器来访问 node-red 的编辑器。在同一局域网内可访问 http://{host-ip}:1880, 其中 host-ip 是你的树莓派地址。
使用 portainer 启动在 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 示例在进入 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 接口。

LED散热五大误区分析及七大解决方案
HTC聚焦VR业务 成功研发可监控的智能灯泡
格芯宣布转攻3D封装,3D封装成半导体巨头发展重点
电脑越来越卡顿怎么办?这时候你应该升级固态硬盘了!
充电8分钟 续航千公里!解析“黑科技”石墨烯技术
无需复杂代码,轻松快速在边缘计算网关WisGate Connect上部署Node-RED
梦想人签约托玛斯机器人集团,共拓智能制造新模式
三星NEC富士通合资计划破产
微雪电子ST-LINK IIISTM32仿真器简介
PCIe SSD推出了新的硬件形式:SFF-8639,又称U.2
中国铁塔累计承建5G项目超76万
vivo推出新机vivo V19,搭载骁龙730G处理器
恒温隔膜式压力变送器的原理及设计
各种类型传感器的应用及特点介绍
当当网的命运到底是因为时代的变迁还是其他
LED行业领军企业洲明应邀参与标准编制工作
红外热像仪在建筑领域的应用都有哪些?
支持S3C6410处理器SD卡启动模式的U-Boot-2011.06移植修改方案
一款专为电流检测应用开发的高隔离集成式霍尔电流传感芯片--CH701W
直流开关电源的拓扑结构