孙亮亮
返回 小企业智能化

小企业智能化

小微企业用 Node-RED 搭建设备联动中台:从 MQTT 到企业微信告警

2026年9月14日

用Node-RED编排设备流,推送企业微信钉钉告警

Node-REDMQTT企业微信告警设备联动小企业智能化

小微企业用 Node-RED 搭建设备联动中台:从 MQTT 到企业微信告警

摘要:车间温湿度、设备启停、门禁刷卡散落在不同系统,老板想一处看全还要异常即时提醒。本文用 Node-RED 把 MQTT/HTTP 设备流编排成统一中台,并实战推送企业微信与钉钉告警,零编码改流程。

一、为什么小厂需要"流编排"而不是再买一套软件

小微企业设备数据往往来源杂:ESP32 传感器走 MQTT,老 PLC 走 Modbus,门禁机走 HTTP 回调。传统做法是给每个来源各写一套对接程序,维护成本随设备数线性爆炸。

Node-RED 的价值在于"可视化连线即逻辑":左边拖一个 MQTT 输入节点,中间接一个 function 节点做判断,右边接企业微信机器人节点,一条流水线就成形。改阈值、加设备只需改连线,不必动代码,特别适合没专职开发的小团队。

二、部署:Docker 一键起,数据可持久

用 NAS 或随便一台小主机跑 Docker,五分钟上线:

services:
  nodered:
    image: nodered/node-red:latest
    ports: ["1880:1880"]
    volumes:
      - ./data:/data        # 流文件与凭证持久化,重启用不丢
    restart: unless-stopped

首次访问 http://主机IP:1880 即可看到画布。建议立刻在「设置 → 用户鉴权」开启登录密码,别把 1880 端口裸奔到公网。

三、实战流 1:MQTT 传感器 → 阈值判断 → 企业微信

  1. 拖入 mqtt in 节点,填 broker:1883topic: factory/+/temp(+ 通配车间编号)。
  2. function 节点,解析 JSON 并对温度做判断:
const v = JSON.parse(msg.payload).temp;
if (v > 45) {
  msg.payload = "⚠️ 车间" + msg.topic.split('/')[1] + "温度" + v + "℃超标";
  return msg;            // 只有超标才往下走
}
return null;             // 正常就丢弃,避免刷屏
  1. http request 节点,POST 到企业微信群机器人 Webhook,消息体构造为:
msg.payload = { msgtype: "text", text: { content: msg.payload } };
// http request 填 https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的KEY

连好线点「部署」,车间一过 45℃ 老板企业微信立刻弹消息。

四、实战流 2:门禁刷卡 → 写库 + 推钉钉

门禁机通常能配 HTTP 回调。用 http in 节点暴露 /api/checkin,收到刷卡记录后:

  • 一支流写 PostgreSQL(用 postgres 节点或 function 拼 SQL);
  • 一支流格式化"谁 几点 进厂"推钉钉机器人。

这样考勤与到岗提醒一套流搞定,无需额外 SaaS 年费。

五、几个让中台靠谱的注意点

  • 断网不丢数:MQTT 用 QoS1 + 客户端本地缓存,Node-RED 侧对关键流加持久队列,Broker 恢复后补发。
  • 幂等防重:门禁回调可能重复,函数节点用时间戳做去重,避免一条刷卡推三条。
  • 权限最小化:企业微信/钉钉机器人 Key 写进 Node-RED 的「环境变量」而非硬编码在函数里,轮换 Key 不必改流。
  • 留可观测:加 debug 节点或接一个 dashboard 看板,实时看每个流的消息计数,排错一眼定位。

小结

Node-RED 把"设备接入—逻辑判断—告警触达"三件事用拖拽连起来,是小企业智能化最低门槛的中台形态:一台 NAS、一个 Docker、几个 Webhook,就能让散落的设备开始"说话"并主动报事。

本模块其他文章

小微企业用 Node-RED 搭建设备联动中台:从 MQTT 到企业微信告警 · 孙亮亮