无需复杂代码,轻松快速在边缘计算网关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 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 启动

在 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 接口。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
丁宁的 2023-10-30
0 回复 举报
可以试试畅维通达PN4800网关,不只有485,还有模拟量数字量输入输出,WiFi/zigbee/4G/有线网 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分