第三章 能耗监测平台搭建:开源平台选择、传感器接入与实时看板设计

大家好,我是老张。今天咱们聊聊能耗监测平台怎么搭。

说实话,很多企业一上来就买商业平台,花了几十万,结果发现功能用不上。我个人习惯是先拿开源方案搭个原型,跑通了再决定要不要升级。今天我就把这几年的经验掰开揉碎讲给你听。

3.1 开源平台怎么选?ThingsBoard vs Grafana

先说说两个主流选手。ThingsBoard和Grafana,我都在项目里用过,各有各的脾气。

ThingsBoard:适合设备多、规则复杂的场景

ThingsBoard是个物联网平台,说白了就是专门管设备的。它自带设备管理、规则引擎、告警通知。我记得有个工厂项目,300多个电表、水表、气表,用ThingsBoard一个月就上线了。

它的核心优势:

  • 自带设备影子,能存设备状态
  • 规则引擎支持拖拽配置,不用写代码
  • 支持MQTT、CoAP、HTTP多种协议
  • 有租户隔离,适合做多客户项目

但要注意:

  • 社区版功能有限,告警只能发邮件
  • 大规模部署需要调优,我遇到过内存泄漏
  • 前端性能一般,数据量大时卡顿

Grafana:适合数据展示、趋势分析

Grafana是可视化之王。它不管理设备,只管画图。你想想看,如果只是看能耗趋势、对比分析,Grafana比ThingsBoard强太多。

它的强项:

  • 图表种类多,折线图、柱状图、热力图都有
  • 支持Prometheus、InfluxDB、MySQL等多种数据源
  • 仪表盘可以分享、嵌入,方便汇报
  • 插件生态丰富,社区活跃

缺点也很明显:

  • 没有设备管理功能
  • 告警功能相对简单
  • 数据存储得自己搞定

我的建议:

如果项目以设备接入为主,选ThingsBoard。如果以数据分析和展示为主,选Grafana。我一般两个一起用——ThingsBoard收数据,Grafana做看板。

3.2 传感器接入:从物理世界到数字世界

传感器接入是能耗监测的第一步,也是最容易出问题的一步。我曾经在一个项目中,因为485接线顺序搞反了,排查了整整两天。

常见的传感器类型

传感器类型 输出信号 接入方式 注意事项
智能电表 RS485/Modbus 串口服务器→MQTT 注意波特率、校验位
温湿度传感器 4-20mA/0-10V 模拟量采集模块 注意信号衰减
流量计 脉冲/RS485 脉冲计数器/串口 脉冲信号要滤波
气体传感器 4-20mA 模拟量采集模块 需要定期校准

接入流程:三步走

第一步:物理连接

传感器→采集器→网关→服务器。嗯,这里要注意,485总线最长1200米,超过要加中继器。我有个项目在化工厂,距离太远,信号衰减严重,最后加了两个中继才搞定。

第二步:协议解析

Modbus RTU是最常见的协议。每个设备有寄存器地址,读出来是原始值,需要换算成实际物理量。

// Modbus读取电表电压示例
// 寄存器地址:0x0000,数据类型:float
// 原始值:0x4120 0000 → 10.0V

function parseModbusData(rawData) {
  // 大端模式解析
  let buffer = new ArrayBuffer(4);
  let view = new DataView(buffer);
  view.setUint16(0, rawData[0]);
  view.setUint16(2, rawData[1]);
  return view.getFloat32(0); // 返回10.0
}

第三步:数据上报

解析后的数据通过MQTT上报到平台。我习惯用JSON格式,结构清晰,方便调试。

{
  "deviceId": "meter_001",
  "timestamp": 1700000000,
  "data": {
    "voltage": 220.5,
    "current": 10.2,
    "power": 2249.1,
    "energy": 1234.5
  }
}

避坑指南:

我曾经在某个项目中,传感器上报频率设置成1秒一次,结果平台直接崩溃。后来改成10秒一次,加上数据缓存,问题就解决了。记住:不是数据越多越好,够用就行。

3.3 实时数据看板设计:让数据会说话

看板设计是门艺术。我见过太多看板,密密麻麻全是数字,根本看不出重点。好的看板,一眼就能看出问题在哪。

看板设计原则

  • KPI优先:总能耗、单位能耗、峰值功率放在最显眼的位置
  • 趋势为王:折线图比数字更有说服力,能看出变化趋势
  • 颜色预警:绿色正常、黄色警告、红色报警,一目了然
  • 层级分明:总览→分项→设备,层层下钻

一个典型的能耗看板布局

我常用的布局是这样的:

  • 顶部:总能耗、单位能耗、碳排放量(三个大数字)
  • 中部左侧:各分项能耗占比(饼图)
  • 中部右侧:24小时能耗趋势(折线图)
  • 底部:设备列表(表格,带状态指示灯)

用Grafana实现看板

Grafana配置看板很简单,拖拽就行。但有几个技巧:

// PromQL查询示例:计算过去1小时的平均功率
avg_over_time(meter_power{device="meter_001"}[1h])

// 告警规则:功率超过阈值
- alert: HighPower
  expr: meter_power > 5000
  for: 5m
  labels:
    severity: warning
  annotations:
    summary: "设备{{ $labels.device }}功率过高"

小技巧:

我习惯在Grafana里加一个「同比」功能。比如今天和昨天同一时间对比,能快速发现异常。配置方法很简单:在查询里加一个offset 1d就行。

3.4 知识体系总览

下面这张图是我自己画的,把整个能耗监测平台的架构理清楚了。你一看就明白。

能耗监测平台架构图 感知层 智能电表 温湿度传感器 流量计 气体传感器 传输层 RS485/Modbus 4-20mA/0-10V MQTT/CoAP 串口服务器 平台层 ThingsBoard Grafana InfluxDB 规则引擎 应用层 实时看板 告警通知 数据分析 报表导出

你看,从传感器到看板,一共四层。每一层都有坑,但踩过之后,后面就顺了。

好了,这一章就聊到这。记住:平台选型看需求,传感器接入要细心,看板设计要简洁。这三样做好了,能耗监测平台就稳了。

核心要点回顾:

  • ThingsBoard适合设备管理,Grafana适合数据展示
  • 传感器接入注意物理连接、协议解析、数据上报
  • 看板设计要KPI优先、趋势为王、颜色预警

可可精品资料库