Skip to content

Node-RED 文档 ​

整理自《Node-RED 文档》原稿。官方站点与仓库见下文链接。

1、文档入口 ​

1.1、官方文档 ​

1.2、GitHub ​

2、Node-RED 概述 ​

2.1、什么是 Node-RED ​

Node-RED 是一个基于浏览器的低代码开发工具,通过可视化方式创建数据流(flow),用来集成硬件设备、API、在线服务等。

2.2、用来干什么 ​

最初由 IBM 工程师为物联网(IoT)设计,现已广泛用于自动化、数据处理、控制系统、API 构建等领域。

2.3、主要特点 ​

流式编程(Flow-based programming)

核心是拖放「节点」(Nodes)组成数据流(Flow)。每个节点是一个功能单元(收数据、处理、发消息),节点之间用连线传递数据。

支持多种协议和设备

支持 MQTT、HTTP、WebSocket 等协议,以及 Raspberry Pi、Arduino 等硬件;也可对接 AWS、Azure、Google Cloud 等在线服务。

可扩展的节点库

社区生态丰富,可安装第三方节点(数据库、图像处理、短信通知等)扩展能力。

开源与跨平台

基于 Node.js,可运行在 Linux / Windows / macOS,也适合树莓派等资源有限的设备。

简单易用的界面

浏览器里拖节点、连线、单独配置,几乎不必写代码也能搭流程。

3、安装 ​

3.1、Docker 安装 ​

安装 Docker / docker-compose(以 Debian/Ubuntu 为例) ​

bash
# 更新包
sudo apt update
# 安装 docker
sudo apt install docker.io
docker --version

# 安装 docker-compose
sudo apt install docker-compose
docker-compose --version

配置镜像源(可选) ​

国内访问 Docker Hub 不稳定时,可在 /etc/docker/daemon.json 配置 registry-mirrors(按你当前可用的镜像源填写),然后:

bash
sudo systemctl daemon-reload
sudo systemctl restart docker

创建数据目录并启动 ​

bash
cd
mkdir -p node_red_data
# 容器内用户一般为 uid 1000,按实际路径调整
chown -R 1000:1000 ~/node_red_data/

docker run -d --name nodered -p 1880:1880 \
  -v ~/node_red_data:/data \
  nodered/node-red

浏览器访问:http://<主机IP>:1880(原稿示例为 http://172.16.5.111:1880)。

3.2、Windows 本地源码安装 ​

环境:Node.js、npm、yarn;IDE 可用 WebStorm 等。

  1. 克隆 / 打开 Node-RED 工程后安装依赖:
bash
yarn install
  1. 启动:
bash
yarn dev

Windows 源码安装示意

4、节点 ​

以下按调色板分类列出核心节点名称;详细参数以编辑器内帮助与官方文档为准。

4.1、通用节点(common) ​

通用节点

节点说明(一句话)
inject手动或定时注入消息,触发流程
debug在侧栏打印消息,便于调试
complete在指定节点完成处理时触发
catch捕获下游节点抛出的错误
status订阅其它节点的状态变化
link in / link call / link out跨 tab 连接或调用子流
comment注释,不参与数据流

4.2、功能节点(function) ​

功能节点

节点说明(一句话)
function用 JavaScript 处理每条消息
switch按规则把消息路由到不同输出
change不写代码即可改消息或 context
range数值区间线性映射
template用 Mustache 模板生成文本
delay延迟发送或限流
trigger延时再发、超时检测等
exec执行系统命令(注意安全)
filter按条件过滤消息

4.3、网络节点(network) ​

网络节点

节点说明(一句话)
mqtt in / mqtt outMQTT 订阅 / 发布
http in / http response / http requestHTTP 服务端入口、响应、客户端请求
websocket in / websocket outWebSocket 收发
tcp in / tcp out / tcp requestTCP 收发与请求
udp in / udp outUDP 收发

4.4、序列化节点(sequence) ​

序列化节点

节点说明(一句话)
split把数组/字符串等拆成多条消息
join把多条消息合并
sort排序
batch按数量/时间等打成批次

4.5、解析节点(parser) ​

解析节点

节点说明(一句话)
csvCSV 与对象互转
html从 HTML 提取内容
jsonJSON 字符串与对象互转
xmlXML 与对象互转
yamlYAML 与对象互转

4.6、存储节点(storage) ​

存储节点

节点说明(一句话)
写入文件(file)把消息写入文件
读取文件(file in)读取文件内容
watch监视文件/目录变化

5、下一步 ​

工业现场常见接法见本专栏后续文章:

  1. S7 连接 PLC 采集
  2. 采集 OPC UA Server
  3. 采集 Modbus Slave
  4. 采集 BACnet