跳到主要内容

4G水表电表采集(Z005A)

[TOC]

一、实现功能简介

基于 FlexLua 《DTU01万能采集器》实现多个电表水表数据的采集,并将采集到的电表(相电压/相电流/频率/功率因素/有功功率/有功电度累计值)和水表数据通过 4G 无线传输的方式,以 Json 数据格式通过 Mqtt 上报给云服务器。

pic1

采集器每隔 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} 文件夹中