当前位置: 首页 > ai >正文

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(注入 + 调试)

  1. 从左侧拖拽节点

    • 一个 inject(注入)节点(在 input 分类下)。

    • 一个 debug(调试)节点(在 output 分类下)。

  2. 连接它们

    • 点击 inject 节点的输出端口,拖到 debug 节点的输入端口。

  3. 部署(Deploy)

    • 点击右上角的 红色 "Deploy" 按钮 使流程生效。

  4. 测试

    • 点击 inject 节点左侧的小按钮,它会在 Debug 标签页 输出当前时间戳。

示例 2:HTTP API(接收请求并返回数据)

  1. 拖拽节点

    • http in(输入 > HTTP):用于接收 HTTP 请求(如 GET /hello)。

    • function(处理 > Function):编写自定义逻辑。

    • http response(输出 > HTTP):返回响应。

  2. 配置 http in

    • Method: GET

    • URL: /hello

  3. 配置 function(双击编辑):

    msg.payload = { message: "Hello from Node-RED!" };
    return msg;
  4. 连接并部署

    [http in] → [function] → [http response]
  5. 测试

    • 访问 http://localhost:1880/hello,你会看到 JSON 响应:

    { "message": "Hello from Node-RED!" }

3. 常用节点介绍

分类节点用途
Inputinject手动触发流程(如按钮点击)
http in接收 HTTP 请求(构建 API)
mqtt in订阅 MQTT 消息(IoT)
Processingfunction编写自定义 JavaScript 代码
change修改消息属性
switch条件判断(类似 if-else)
Outputdebug在 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 机器人。

安装方法

  1. 点击右上角 菜单(☰)→ Manage Palette

  2. 在 Install 选项卡搜索节点(如 node-red-dashboard)。

  3. 点击安装,重启后生效。


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 教程


总结

  1. 拖拽节点 → 连接 → Deploy 部署。

  2. 用 Debug 节点 查看数据流。

  3. 通过 HTTP/MQTT 与其他系统交互。

  4. 安装 额外节点 扩展功能(如 Dashboard、数据库)。

你可以尝试构建一个 天气查询 API 或 自动化 Telegram 机器人,Node-RED 让这些变得非常简单!

http://www.xdnf.cn/news/12364.html

相关文章:

  • Ubuntu 系统.sh脚本一键部署内网Java服务(组件使用docker镜像,宕机自启动)
  • web前端开发如何适配各分辨率
  • 【PmHub面试篇】PmHub中基于Redis加Lua脚本的计数器算法限流实现面试专题解析
  • 基于蚁群算法路由选择可视化动态模拟设计与实现【源码+文档】
  • ES数据聚合
  • Python 训练营打卡 Day 45
  • 全球长序列高分辨率光合有效辐射(PAR)(1984-2018)
  • 郑州工程技术学院赴埃文科技开展访企拓岗促就业活动
  • Unity | AmplifyShaderEditor插件基础(第五集:简易移动shader)
  • 高效复用 Cursor 请求,提升开发效率 —— 使用 interactive-feedback-mcp 工具详解
  • 【单片机期末】单片机系统设计
  • 车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇
  • 从 Revit 到 3DTiles:GISBox RVT 切片器如何让建筑图元在 Web 端展示
  • AudioRelay 0.27.5 手机充当电脑音响
  • 数据通信 PoE 交换机解决方案
  • 基于springboot的校园社团信息系统的设计与实现
  • 智慧水务发展迅猛:从物联网架构到AIoT系统的跨越式升级
  • JavaWeb笔记
  • ant-design4.xx实现数字输入框; 某些输入法数字需要连续输入两次才显示
  • MyBatis 核心标签使用场景及用法详解
  • Java中的this()和super()详解
  • 前端脱敏展示姓名、手机号、邮箱
  • 行为型设计模式之Chain of Responsibility(责任链)
  • 基于JWT+SpringSecurity整合一个单点认证授权机制
  • 低内聚高耦合的衡量指标
  • DTS 数据迁移
  • 在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
  • 【Python-Day 23】Python 模块化编程实战:创建、导入及 sys.path 深度解析
  • 青少年编程与数学 01-011 系统软件简介 06 Android操作系统
  • 相机Camera日志分析之二十七:高通相机Camx 基于预览1帧的process_capture_result二级日志分析详解