跳到主要内容

4G远程水位水质监测(Z001A)

[TOC]

一、实现功能简介

基于 FlexLua 《DTU01万能采集器》实现 4G 远程水位水质监测装置,可采集水质(水温/电导率/TDS/盐度/电阻率)、水位等传感器数据,并将采集到的数据通过 4G 无线传输的方式,以 Json 数据格式通过 Mqtt 上报给云服务器。

pic1

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