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. 学习资源
总结
拖拽节点 → 连接 → Deploy 部署。
用 Debug 节点 查看数据流。
通过 HTTP/MQTT 与其他系统交互。
安装 额外节点 扩展功能(如 Dashboard、数据库)。
你可以尝试构建一个 天气查询 API 或 自动化 Telegram 机器人,Node-RED 让这些变得非常简单!