4G远程水位水质监测(Z001A)
[TOC]
一、实现功能简介
基于 FlexLua 《DTU01万能采集器》实现 4G 远程水位水质监测装置,可采集水质(水温/电导率/TDS/盐度/电阻率)、水位等传感器数据,并将采集到的数据通过 4G 无线传输的方式,以 Json 数据格式通过 Mqtt 上报给云服务器。
采集器每隔 10 分钟上报一批传感器数据给云服务器,数据形式如下:
--水质(水温/电导率/TDS/盐度/电阻率)
{"Dev":"SENSOR_WATER","Data":{"Temp":26.5, "ElecMs":12.34:, "ElecUs":1000, "TDS":200, "Salt":0.51, "R":0.251},"Err":null}
--水位,表示水位值为43cm
{"Dev":"SENSOR_LEVEL","Data":{"Level":43},"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 软件源代码中涉及的传感器资料和传感器的采集代码,来自如下文章:
- 水质(水温/电导率/TDS/盐度/电阻率):S016A(RS485 Modbus 类型水质传感器采集)
- 水位(电子水尺):S017B(RS485 Modbus 类型电子水尺传感器采集)
- DTU01 软件源代码中假定已将水质、水位这两个传感器的 Modbus 从机地址已分别设置为:0x01,0x02
(2)软件的使用
只需修改 DTU01 软件源代码中的配置信息,并将源代码烧录至设备中即可实现大部分场景的需求,烧录方法可参考《DTU01硬件使用指导书》。
本项目的软件源代码文件位于
{FlexLua开源网盘}
->{Application}
->{Z002A}
->{DTU01}
文件夹中