第三章 能耗监测平台搭建:开源平台选择、传感器接入与实时看板设计
大家好,我是老张。今天咱们聊聊能耗监测平台怎么搭。
说实话,很多企业一上来就买商业平台,花了几十万,结果发现功能用不上。我个人习惯是先拿开源方案搭个原型,跑通了再决定要不要升级。今天我就把这几年的经验掰开揉碎讲给你听。
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 知识体系总览
下面这张图是我自己画的,把整个能耗监测平台的架构理清楚了。你一看就明白。
你看,从传感器到看板,一共四层。每一层都有坑,但踩过之后,后面就顺了。
好了,这一章就聊到这。记住:平台选型看需求,传感器接入要细心,看板设计要简洁。这三样做好了,能耗监测平台就稳了。
核心要点回顾:
- ThingsBoard适合设备管理,Grafana适合数据展示
- 传感器接入注意物理连接、协议解析、数据上报
- 看板设计要KPI优先、趋势为王、颜色预警