Node-RED 基于流程的可视化编程工具
Node-RED 是一个基于流程的可视化编程工具,特别适合 IoT(物联网)、自动化任务和 API 集成等场景。下面我会详细介绍 如何开始使用 Node-RED,包括基本操作、创建流程、调试和部署等。
1. Node-RED 界面介绍
打开 http://localhost:1880
(或你的服务器 IP:1880),你会看到以下主要部分:
-
左侧面板(Palette):所有可用的节点(Nodes),如输入、处理、输出等。
-
中间画布(Flow Editor):拖拽节点到这里,连接它们构建流程。
-
右侧面板(Sidebar):
-
Info:查看节点帮助文档。
-
Debug:调试消息输出。
-
Configuration:管理全局设置。
-
2. 创建第一个流程
示例 1:Hello World(注入 + 调试)
-
从左侧拖拽节点:
-
一个
inject
(注入)节点(在input
分类下)。 -
一个
debug
(调试)节点(在output
分类下)。
-
-
连接它们:
-
点击
inject
节点的输出端口,拖到debug
节点的输入端口。
-
-
部署(Deploy):
-
点击右上角的 红色 "Deploy" 按钮 使流程生效。
-
-
测试:
-
点击
inject
节点左侧的小按钮,它会在 Debug 标签页 输出当前时间戳。
-
示例 2:HTTP API(接收请求并返回数据)
-
拖拽节点:
-
http in
(输入 > HTTP):用于接收 HTTP 请求(如GET /hello
)。 -
function
(处理 > Function):编写自定义逻辑。 -
http response
(输出 > HTTP):返回响应。
-
-
配置
http in
:-
Method:
GET
-
URL:
/hello
-
-
配置
function
(双击编辑):msg.payload = { message: "Hello from Node-RED!" }; return msg;
-
连接并部署:
[http in] → [function] → [http response]
-
测试:
-
访问
http://localhost:1880/hello
,你会看到 JSON 响应:
{ "message": "Hello from Node-RED!" }
-
3. 常用节点介绍
分类 | 节点 | 用途 |
---|---|---|
Input | inject | 手动触发流程(如按钮点击) |
http in | 接收 HTTP 请求(构建 API) | |
mqtt in | 订阅 MQTT 消息(IoT) | |
Processing | function | 编写自定义 JavaScript 代码 |
change | 修改消息属性 | |
switch | 条件判断(类似 if-else) | |
Output | debug | 在 Debug 面板输出消息 |
http response | 返回 HTTP 响应 | |
mqtt out | 发布 MQTT 消息 |
4. 调试技巧
-
Debug 节点:将
msg
对象输出到 Debug 面板。 -
node.warn()
:在 Function 节点中使用node.warn("Log this")
,日志会出现在 Debug 面板。 -
查看消息内容:点击 Debug 标签页的消息,可以展开查看完整
msg
对象。
5. 安装额外节点
Node-RED 支持插件(节点库),比如:
-
Dashboard:创建可视化 UI 面板。
-
MySQL:连接数据库。
-
Telegram Bot:对接 Telegram 机器人。
安装方法:
-
点击右上角 菜单(☰)→ Manage Palette。
-
在 Install 选项卡搜索节点(如
node-red-dashboard
)。 -
点击安装,重启后生效。
6. 导出/导入流程
-
导出:选中流程 → 点击右上角菜单 → Export(可导出 JSON)。
-
导入:点击右上角菜单 → Import → 粘贴 JSON 或上传文件。
7. 进阶应用
-
连接 MQTT:用于 IoT 设备通信。
-
定时任务:使用
inject
+interval
定时触发。 -
数据库操作:安装
node-red-node-mysql
或node-red-node-sqlite
。 -
可视化 Dashboard:安装
node-red-dashboard
创建 Web 控制台。
8. 学习资源
-
Node-RED 官方文档
-
Node-RED 示例库
-
YouTube 教程
总结
-
拖拽节点 → 连接 → Deploy 部署。
-
用 Debug 节点 查看数据流。
-
通过 HTTP/MQTT 与其他系统交互。
-
安装 额外节点 扩展功能(如 Dashboard、数据库)。
你可以尝试构建一个 天气查询 API 或 自动化 Telegram 机器人,Node-RED 让这些变得非常简单!