4G水表电表采集(Z005A)
[TOC]
一、实现功能简介
基于 FlexLua 《DTU01万能采集器》实现多个电表水表数据的采集,并将采集到的电表(相电压/相电流/频率/功率因素/有功功率/有功电度累计值)和水表数据通过 4G 无线传输的方式,以 Json 数据格式通过 Mqtt 上报给云服务器。
采集器每隔 10 分钟上报一批传感器数据给云服务器,数据形式如下:
--电表1:相电压/相电流/频率/功率因素/有功功率/有功电度累计值
{"Dev":"SENSOR_DB1","Data":{"ULNAvg":223.65,"IAvg":0.01,"F":50.03,"PF":0.0,"P":0.0,"Ep":0.05},"Err":null}
--电表2:相电压/相电流/频率/功率因素/有功功率/有功电度累计值
{"Dev":"SENSOR_DB2","Data":{"ULNAvg":225.91,"IAvg":0.01,"F":50.27,"PF":0.0,"P":0.0,"Ep":0.05},"Err":null}
--水表1:用水量为12345.67m³
{"Dev":"SENSOR_SB1","Data":{"Water":12345.67},"Err":null}
"Dev"
:可用来标识这台 DTU01 采集器采集的是什么传感器
"Data"
:中包含的是传感器结果数值
"Err"
:中包含的是故障信息,如果 "Data" = null,则 "Err" 中将包含错误信息,否则平时都是 null
二、硬件
(1)硬件配置
由于 DTU01 的硬件接口是可配置的,所以需要确认一下您手上的 DTU01 采集器是否满足要求,如果确认已满足就无需再做任何 操作,否则请完成下面的硬件配置:
-
请参考《DTU01硬件使用指导书》将 DTU01 电路板上的 ‘A’ 和 ‘B’ 引脚需配置成 485 接口的 ‘A’ 和 ‘B’,即 S3 选择
-
请参考《DTU01硬件使用指导书》将 DTU01 配置成 4G Cat1 通信
(2)供电和低功耗
- 关于 DTU01 和传感器的供电,请进一步参考《DTU01直流供电和电池低功耗供电说明》
- 如果需要整个系统( DTU01 + 传感器 )都由 12v 电池长期低功耗供电,请进一步参考《DTU01直流供电和电池低功耗供电说明》
《DTU01硬件使用指导书》和《DTU01直流供电和电池低功耗供电说明》可在
{FlexLua开源网盘}
->{Hardware}
->{DTU01万能采集器}
->{DTU01硬件使用指导书}
文件夹中找到
三、软件
(1)软件的实现
- DTU01 软件源代码主体框架的实现参考了 RS485_4G_MQTT 源码,该源码位于
{FlexLua开源网盘}
->{Software}
->{DTU01万能采集器}
->{RS485}
->{4G主动发送}
->{MQTT}
文件夹中的 main.lua 文件,基于该代码新增改动点如下:- 新增了几个 ModbusToJson_XX() 传感器采集函数
- 在 While 大循环中增加了对这几个 ModbusToJson_XX() 函数的调用
- DTU01 软件源代码中涉及的传感器资料和传感器的采集代码,来自如下文章:
- 电表1:拓普瑞 TP613 电表(M000A)
- 电表2:拓普瑞 TP613 电表(M000A)
- 水表1:正泰 LXSY 水表(M000D)
- DTU01 软件源代码中假定已将这电表1/电表2/水表1的 Modbus 从机地址已分别设置为:0x01,0x02,0x03
(2)软件的使用
只需修改 DTU01 软件源代码中的配置信息,并将源代码烧录至设备中即可实现大部分场景的需求,烧录方法可参考《DTU01硬件使用指导书》。
本项目的软件源代码文件位于
{FlexLua开源网盘}
->{Application}
->{Z005A}
->{DTU01}
文件夹中