Node-RED物联网数据采集工程 - 第1节

1. 物联网与Node-RED概述

1.1.1 什么是物联网

物联网(Internet of Things, IoT)是指通过信息传感设备,按约定的协议,将任何物体与网络连接,物体通过信息传播媒介进行信息交换和通信,以实现智能化识别、定位、跟踪、监管等功能。

物联网的核心要素可归纳为“感知、传输、处理、应用”四个层面:

层级 功能 典型设备/技术
感知层 采集物理世界的数据 温度传感器、湿度传感器、RFID、摄像头
网络层 传输数据到处理中心 Wi-Fi、LoRa、NB-IoT、MQTT、CoAP
平台层 存储、处理、分析数据 云服务器、边缘网关、数据库
应用层 提供业务服务与可视化 仪表盘、告警系统、移动App
关键指标:据IoT Analytics统计,2025年全球物联网连接设备数已突破300亿台,每天产生超过5EB(Exabyte)的数据。数据采集是物联网系统中最基础、最关键的环节。

1.1.2 物联网数据采集的典型流程

从传感器到应用,数据采集通常经历以下步骤:

  1. 物理量感知:传感器将温度、压力、光照等物理量转换为电信号。
  2. 信号调理与数字化:模数转换器(ADC)将模拟信号转为数字信号。
  3. 协议封装:按MQTT、HTTP、CoAP等协议打包数据。
  4. 网络传输:通过有线或无线网络发送到服务器或边缘节点。
  5. 数据解析与存储:接收端解析协议、清洗数据并存入数据库。
  6. 业务应用:仪表盘展示、告警触发、机器学习推理等。
实践要点:在真实项目中,数据采集的瓶颈往往不在传感器精度,而在协议适配、数据格式转换和网络稳定性。Node-RED正是解决这些“最后一公里”问题的利器。
物联网数据采集典型流程 传感器 温度/湿度/压力 数据采集器 ADC/协议转换 网络传输 MQTT/LoRa/Wi-Fi 云/边缘平台 存储/分析 应用与可视化 仪表盘/告警/App Node-RED 可覆盖“数据采集器→网络传输→平台接收→应用输出”全链路,大幅降低集成复杂度

1.2 Node-RED 简介

1.2.1 起源与定位

Node-RED 是由 IBM 新兴技术团队于 2013 年开发的开源可视化编程工具,2016 年成为 OpenJS 基金会下的顶级项目。它基于 Node.js 运行,采用“流(Flow)”式编程模型,用户通过拖拽节点(Node)并连线即可构建物联网数据流。

1.2.2 核心概念

概念 说明 类比
节点(Node) 功能单元,负责输入、处理或输出 积木块
流(Flow) 节点之间的连接关系与数据流向 电路图
消息(Message) 节点间传递的 JSON 对象,包含 payload 信封
上下文(Context) 全局/流/节点级别的数据存储 便签本
仪表盘(Dashboard) 可视化 UI 组件,实时展示数据 控制面板
新手常见误区:不要将 Node-RED 与 Node.js 后端框架(如 Express)混淆。Node-RED 是面向非程序员的可视化工具,但底层仍运行在 Node.js 上,支持通过 Function 节点编写自定义 JavaScript 逻辑。

1.3 Node-RED 在物联网数据采集中的优势

1.3.1 对比传统开发方式

对比维度 传统开发(Python/Java) Node-RED
开发效率 需编写大量样板代码(协议解析、线程管理) 拖拽节点,零代码或低代码完成集成
协议支持 需手动集成 MQTT/HTTP/CoAP 库 内置 200+ 节点,一键安装
调试能力 依赖日志打印或 IDE 断点 侧边栏实时查看消息、注入调试节点
部署灵活性 需配置服务器环境、依赖管理 单命令启动,支持 Docker/边缘设备
可视化 需额外集成 Grafana/Chart.js 内置 Dashboard 节点,拖拽生成 UI

1.3.2 五大核心优势

  1. 可视化流编程:无需编写大量代码,通过拖拽和连线即可构建数据采集管道,降低物联网开发门槛。
  2. 丰富的节点生态:官方与社区提供超过 5000 个节点,覆盖 MQTT、HTTP、TCP/UDP、Modbus、OPC UA、SQL/NoSQL 数据库等。
  3. 边缘到云的无缝集成:支持在树莓派、Jetson Nano 等边缘设备上运行,也可部署到 AWS、Azure、阿里云等云端。
  4. 实时调试与热部署:修改流后无需重启服务,新配置即时生效;调试节点可实时打印消息内容。
  5. 轻量级与可扩展:运行时仅需 50MB 内存,支持通过 Function 节点编写自定义逻辑,也可开发私有节点。
Node-RED 在物联网数据采集中的角色 设备与传感器 温度/湿度/光照 PLC/Modbus设备 摄像头/扫码枪 Node-RED 协议转换 · 数据清洗 逻辑编排 · 格式封装 本地缓存 · 边缘计算 数据目标 MQTT Broker InfluxDB/MySQL REST API/云平台 Node-RED 位于设备与数据目标之间,充当“万能适配器”角色 支持同时接入多种协议,统一输出为标准化 JSON 消息

1.3.3 典型应用场景

  • 工业数据采集:通过 Modbus TCP/RTU 节点读取 PLC 寄存器,转换为 MQTT 上报到云平台。
  • 环境监测:接收 LoRa 网关上报的温湿度数据,存入 InfluxDB 并通过 Dashboard 展示历史曲线。
  • 智能楼宇:对接 BACnet 或 KNX 设备,实现照明、空调的自动化控制与能耗分析。
  • 设备告警:对传感器数据设置阈值,超限时通过邮件、或钉钉机器人推送告警。