RS485 Modbus 类型(S000A)
[TOC]
一、实现功 能简介
基于 FlexLua 《DTU01万能采集器》实现对市面上常见的 RS485 温湿度传感器的采集,并可通过下面八种无线/有线通信方式中的一种将传感器数据上报至云平台服务器,八种方式分别为:
- 4G 无线 Mqtt 主动传输
- 4G 无线 TCP 主动传输
- WiFi 无线 Mqtt 主动传输
- WiFi 无线TCP 主动传输
- Lora 无线 主动传输
- Lora 无线 被动传输
- 以太网有线主动传输
- 以太网有线被动传输
二、传感器简介
RS485 Modbus 温湿度传感器广泛适用于通讯基站、机房、图书馆、档案库、仓库、设备、机柜以及其它需要监测温湿度的场所。传感器采用CMOS数字芯片传感器技术,具有更高的测量经度以及稳定性和一致性。传感器支持485通信输出。485输出为标准ModBus-RTU,最远通信距离2000米,可直接接入现场的PLC、工控仪表、组态屏或组态软件。
直流电源(默认) | 10-30V DC | |
---|---|---|
最大功耗 | 0.1W | |
精度 | 湿度 | ±3%RH(60%RH,25℃) |
温度 | ±0.5℃(25℃) | |
变送器电路工作温度 | -40℃ | |
温度显示分辨率 | 0.1℃ | |
湿度显示分 辨率 | 0.1%RH | |
温湿度刷新时间 | 1S | |
长期稳定性 | 温度 | ≤0.1℃/y |
湿度 | ≤1%RH/y | |
响应时间 | 温度 | ≤25s(1m/s风速) |
湿度 | ≤8s(1m/s风速) | |
通信协议 | Modbus-RTU通信协议 | |
输出信号 | 485信号 | |
参数设置 | 通过软件设置 |
该传感器说明书资料可在
{FlexLua开源网盘}
->{Spec}
->{S000A}
文件夹中找到。
三、DTU01 万能采集器介绍
基于《DTU01采集器》实现采集市面上常见的 RS485 Modbus 温湿度传感器数据,并将采集到的传感器数据以 Json 字符串的形式通过可选的 4G/WiFi/以太网/Lora 其中一种方式发送给网关或云服务器。在需要电池供电的场景下,还可通过给 DTU01 增加低功耗模块以实现周期性休眠采集,休眠电流可低至 3uA 以内,以实现在电池供电场景下的几个月甚至几年的周期性长期采集。
关于 DTU01 万能采集器:
《DTU01万能采集器》内部核心主控采用 ShineBlink C2M 低代码物联网核心模组,使用该主控核心模组可轻松采集大量市面上常见的传感器数据,并可自由选择通过 4G/WiFi/以太网/Lora 中的一种方式进行数据通信。本采集器硬件 资料和源代码开放且源码极其精简,所以开发者无论是否有嵌入式单片机开发经验,皆可轻松基于源码进行二次开发(例如:新功能增加、边缘数据处理、逻辑判断、特殊协议解析等)。当然如果使用者对编程不感兴趣也可直接参考下面的技术指导文章即可实现大部分场景的需求。
四、传感器采集核心代码
参考传感器资料中的 RS485 通信参数以及 Modbus 寄存器点位表,可得如下代码,将以下代码覆盖至对应的 main.lua 源代码文件中即可实现传感器的采集。
--读取RS485温湿度传感器
--获取到的Json数据形如:{"Humi":79.7,"Temp":26.8}
function ModbusToJson()
--配置RS485 Modbus转Json功能,并设置将要生成的Json字符串最大长度为150字节
LIB_ModbusToJsonConfig(150)--必须小于255
--湿度值寄存器地址0x0000,类型为16bit带符号AB型,小数点个数1个,Json Key名称"Humi"
LIB_ModbusToJsonAdd(0x0000,"S_AB",1,"Humi")
--温度值寄存器地址0x0001,类型为16bit带符号AB型,小数点个数1个,Json Key名称"Temp"
LIB_ModbusToJsonAdd(0x0001,"S_AB",1,"Temp")
--参数设置(4800,无校验,1位停止位,功能码"03",从机地址0x01,应答最长等待1000ms,包与包最短间隔100ms)
LIB_ModbusToJsonSend("BAUDRATE_4800","NoneParity","StopBit_1","03",0x01,1000,100)
end