← 返回软件与工具库

Node-RED 是什么、适合做什么:拖拽连线做物联网集成(5.0.6)

最后更新 2026-09-02
⏱ 约 9 分钟 🟡 涉接线/强电
Node-RED NodeRED / 可视化流程编程 物联网平台 免费

把已经跑通的几段链路快速接起来,Node-RED 比写一个服务省事得多;但流程一旦要长期演进、要多人协作,它的可读性和版本控制会先撑不住。

授权
Apache-2.0 开源
平台
Windows / macOS / Linux
协议
MQTT、TCP、HTTP、Modbus
官网
http://nodered.org
源码
https://github.com/node-red/node-red
适合
  • · 设备已经在发数据,你要做的是「转个格式、落个库、顺手触发个告警」这类每步都不难、难在串起来的活
  • · 现场的协议转换与数据汇聚:下面接 Modbus/串口,上面出 MQTT/HTTP,中间这层用它拼最快
不适合
  • · 业务逻辑复杂、判断分支多的系统——节点一多流程图就变成面条,可读性断崖下跌
  • · 需要严肃版本控制和代码评审的团队项目:流程存成 JSON,diff 出来基本没法看,评审无从下手
文件名
Node-RED 5.0.6
版本
5.0.6
SHA256
待补(尚未实际核对,不填占位值)
核对于
2026-09-02

本站不托管安装包,上方为官方渠道直链。下载后请自行核对 SHA256,与上表不一致说明文件被改动过。

先说一个特别常见的活儿。

一台设备已经在往 broker 上发 MQTT 了,你现在要做三件事:把数据落进数据库;某个字段超阈值的时候触发一条告警;再把告警推到群里。

这三件事单独拿出来,每一件都不难。难的是把它们串起来——你得起一个服务,接 broker、解报文、连库、写推送、处理重连、加日志、再想办法让它开机自启。真正的业务逻辑可能就二十行,外面那一圈脚手架反而占了大半天。

Node-RED 解决的正是这一段。 它是一个基于流程图的可视化编程工具:在浏览器里拖几个节点出来,用线连起来,数据就顺着线从左往右流过去。上面那件事,在它里面就是拖几个节点、连上线、部署,完事。

官网在 nodered.org,源码在 GitHub 的 node-red/node-red,许可证是 Apache-2.0,最新版本 5.0.6 发布于 2026 年 9 月 1 日。具体有哪些节点可用、怎么装、跑起来需要什么环境,以官方文档为准——这类信息随版本变化,抄在文章里只会过期误导。

「胶水层」是什么意思

把整条物联网数据链路摊开看,常见形态是这样的:设备 → 网关 → broker → 应用。

设备那头有人管,通常是嵌入式工程师的活。应用那头也有人管,前端后端各司其职。真正没人愿意认领、又必须有人干的,是中间这些把两头接起来的胶水:格式不对要转,字段名不一样要映射,这边是发布订阅那边是请求响应要来回倒,还得顺手做点过滤、限流、去重。

这类工作有个共同特征:逻辑简单,接口琐碎,数量多,还老变。 用传统方式写,每一段都要起一个小服务,几个月之后你面对的是七八个没人记得住的小进程。用 Node-RED,它们就是同一个界面里的几张流程图,改一下重新部署就生效。

顺着这个思路看它在工业现场的位置就很清楚了:协议转换与数据汇聚的中间层。下面对着现场设备,走 Modbus 或者串口;上面对着平台,走 MQTT 或者 HTTP。这中间的翻译活儿,正是它最擅长的场景,也正是做展厅、做产线、做设备联网的人天天要面对的问题。

顺便把两种通信模型的差别点一下,因为跨越这道差别恰恰是胶水层的日常:MQTT 是发布订阅模型,设备把数据扔给 broker 就不管了,谁订阅谁收到,发的一方不需要知道有几个接收方;HTTP 是请求响应模型,必须有人主动发起请求才有数据回来。把一个订阅进来的消息转成一次 HTTP 调用,或者反过来,是这类活最典型的样子。

它的天花板在哪

现在说反面,这部分比优点更值得你看。

流程图不擅长表达复杂逻辑。 节点少的时候图很清爽,一眼看懂数据往哪走。但节点数量过了某个坎,画布就会变成一团面条:线互相交叉,分支绕来绕去,你想找「这个判断到底在哪一步做的」,得沿着线一个个点开看。这个可读性的下跌不是线性的,是断崖式的——前一天还挺好懂,加了几个分支之后突然就没人愿意碰了。

代码在这方面反而有优势:函数可以命名、可以拆文件、可以搜索、可以跳转定义。流程图这些能力都很弱。

版本控制和代码评审很别扭。 流程本身是存成 JSON 的。这意味着你 git diff 出来看到的是一堆结构化数据的增删,节点的坐标变了也会进 diff。你基本没法从 diff 里看出这次改动到底改了什么逻辑。 代码评审在这种前提下没法做——评审者只能打开界面自己找不同,而这跟评审的意义已经背道而驰了。

多人协作也受同样的限制。两个人同时改一份流程,冲突基本靠人工协调,没有靠谱的合并手段。

一条判断依据

上面两段听起来像是在劝退,其实不是。这两个缺点是否致命,取决于一件事:

这个流程会不会长期演进?会不会多人协作?

会。 那就早点考虑写成正经服务。今天拖两个节点确实快,但这东西要活两年、要三个人轮流改、要能回滚到上个月的版本,那前面说的可读性和版本控制问题会一天天变重,最后你还是得重写一遍,只是那时候没人敢动它了。

不会。 也就是说这就是个内部集成,拼通了跑起来就基本不动了,改动频率按季度算,负责的人就你一个——那 Node-RED 非常划算。半小时干完的活,你没必要花两天去起一个服务、写 Dockerfile、配 CI。

这条判断依据比「Node-RED 好不好」有用得多。它好不好取决于你拿它干什么,而这个问题只有你自己能答。

Apache-2.0 意味着什么

许可证这一栏对做产品的人不是摆设,说清楚它省得你事后返工。

Apache-2.0 是宽松许可证,关键点三条:

可以闭源商用。 你把它用在自己的商业项目里、部署给客户,不需要因此公开自己的代码。

没有 copyleft 传染性。 这是它和 GPL 系列最大的区别——GPL 会要求链接它的代码也按 GPL 开放,Apache-2.0 不会。你不必担心因为用了它就得开源自己那部分。

带专利授权条款。 贡献者明确授予了相关专利的使用许可,这一条在正式商业项目里是加分项,法务通常认这个。

宽松不等于没有义务,保留版权声明、附上许可证副本这些基本要求还是要做到的。另外说明:以上是对许可证类型的通用说明,不构成法律意见,你的具体分发方式如果比较特殊,商用前该走的确认流程还是要走。

接进来之前,先把链路本身确认掉

这是最容易省时间也最容易被跳过的一步。

流程图跑不通的时候,问题可能在任何一环:设备没发数据、broker 地址写错了、主题订阅错了、串口参数不对、报文格式和你以为的不一样。如果你直接在 Node-RED 里从头调,这些变量全搅在一起,最难查。

更省事的做法是分段验证:

MQTT 那一头,先用 MQTTX 连上 broker,订阅一下看有没有消息、消息长什么样。确认设备真的在发、主题真的对得上,再去流程图里连。

裸的 TCP/UDP 链路,用 NetAssist 手工发几个包收几个包,先确认网络这一层通。

设备侧的 Modbus,先用 Modbus Poll 或者站内其他调试工具把从站地址、寄存器地址、字序这几项试通。这一层的坑独立于 Node-RED 存在——寄存器编号差 1、32 位量字序不对,都是老问题。要自己写采集程序而不是拖流程图,那是 libmodbus 和 pymodbus 的领域。物理层为什么会不通,见 RS-485 差分总线 和 UART 串口原理。

每一段单独确认过之后再往一起接,出问题时你至少知道该怪谁。

和 ESPHome 不是一回事

站内还有一篇 ESPHome,同样是「用配置代替写代码」的思路,容易被放在一起比,但两者干的活其实不在一层。

ESPHome 管的是设备本身:它生成的是烧进 ESP 芯片的固件,解决的是「这块板子怎么读传感器、怎么联网、怎么把数据发出去」。

Node-RED 管的是数据出来之后:它跑在服务器或者工控机上,接的是已经发出来的数据,解决的是「这些数据怎么转、怎么存、怎么触发动作」。

实际项目里两者常常一起出现,一个在设备端,一个在服务端,各管一段。真要说重合,那也只是「都让你少写点代码」这个共同气质而已。

其余嵌入式与工业通信的软件工具,见软件与工具库,串口这一侧还可以顺手看看 SComm 和串口调试台。

📄 来源 / 自校链接

本文为公开资料整理,非亲测。关键参数与代码请结合实物与下列官方来源验证。

延伸阅读

接 Node-RED 之前先把链路本身确认掉:MQTT 那一头用 MQTTX 收发一条试试, 裸的 TCP/UDP 用 NetAssist,设备侧的 Modbus 先用 Modbus Poll 读通再说。 要把逻辑做进设备固件而不是服务器,那是 ESPHome 的活。 更多嵌入式与工业通信工具见软件与工具库。

同类可替代
  • ESPHome 工业通信·物联网平台
  • MQTTX 工业通信·网络与协议分析
内容有错、看不懂、或想看下一期?告诉我们 →

本文为公开资料的学习整理,非亲测。涉接线/花钱/合规的步骤请结合实物与官方最新资料验证,风险自负。见免责声明。

这个页面有问题?

提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。