手把手0基础制作4G无线远程气体流量计

113 阅读2分钟

1 功能简介

基于 FlexLua 的 DTU01 万能采集器以及奥松的 AMS 气体流量计搭建一个作 4G 无线远程气体流量计,将采集到的气体流量值通过 4G Mqtt 通信上报至远端的云服务器,从而实现远程获取管道气体流量的功能。

0406a.jpg

2 实现方法

对于新手或者不懂编程的来说,只需将 FlexLua 的 DTU01 万能采集器和传感器通过 RS485 接口的 A、B 两根线连接起来,然后在 FlexLua 官网的 M007B 文档中找到源码复制粘贴到 DTU01 采集器内部运行即可实现功能。

3 代码功能说明

M007B 文档中提到的源代码虽然开发者可以直接拿来用,但这里稍微啰嗦一下该代码实现的核心功能,如果感兴趣可以学习一下:

DTU01 每隔一定时间(比如1分钟)通过 RS485 Modbus 协议读取 AMD 气体流量计的传感器数值,随后将其转换成 Json 字符串数据,通过 4G Mqtt 无线发送给云服务器,发送的数据格式如下:

{"Dev":"TH","Data":{"SSLL":1.57,"LJLL":12345.6,"TEMP":27.7,"STATE":0} ,"Err":null}

RS485 Modbus 采集传感器代码如下:

--读取RS485奥松 AMS1100 气体流量计
--获取到的Json数据形如:{"SSLL":1.57,"LJLL":12345.6,"TEMP":27.7,"STATE":0} --瞬时流量1.57L/min,累计流量12345.6L,温度27.7度
function ModbusToJson()
    --配置RS485 Modbus转Json功能,并设置Json字符串最大长度为150字节
    LIB_ModbusToJsonConfig(150)--必须小于255
    --瞬时流量寄存器地址0x0000,16bit无符号整数AB类型,2位小数,Json名称"SSLL"
    LIB_ModbusToJsonAdd(0x0000,"U_AB",2,"SSLL")---瞬时流量
    --累计流量寄存器地址0x0001,32bit无符号整数ABCD类型,1位小数,Json名称"LJLL"
    LIB_ModbusToJsonAdd(0x0001,"UL_ABCD",1,"LJLL")---累计流量
    --温度寄存器地址0x0003,16bit整数AB类型,1位小数,Json名称"TEMP"
    LIB_ModbusToJsonAdd(0x0003,"U_AB",1,"TEMP")---温度
    --设备状态寄存器地址0x0004,16bit整数AB类型,0位小数,Json名称"STATE"
    LIB_ModbusToJsonAdd(0x0004,"U_AB",0,"STATE")---设备状态值
    
    --参数设置(9600,无校验,1位停止位,功能码"03",从机地址默认0x01,应答最长等待1000ms,包与包最短间隔100ms)
    LIB_ModbusToJsonSend("BAUDRATE_9600","NoneParity","StopBit_1","03",0x01,1000,100)
end

4 气体流量传感器原理和参数

流气体流量传感器是基于热式测量原理, 通过测量电阻变化, 计算被测量气体的质量流量。

para5_2