迅研 DAM-4502 七通道热电阻采集(M010B)
[TOC]
一、实现功能简介
基于 FlexLua 《DTU01万能采集器》实现对 RS485 接口的迅研4502七通道热电阻采集器(8路温度)值的采集,并可通过下面八种无线/有线通信方式中的一种将数据上报至云平台服务器,八种方式分别为:
- 4G 无线 Mqtt 主动传输
- 4G 无线 TCP 主动传输
- WiFi 无线 Mqtt 主动传输
- WiFi 无线TCP 主动传输
- Lora 无线 主动传输
- Lora 无线 被动传输
- 以太网有线主动传输
- 以太网有线被动传输
二、迅研DAM-4502七通道热电阻采集器简介
迅研电子的 DAM-4502 是 一 款 7 通 道 热 电 阻 采 集 产 品 , 采 用 16 位 有 效 分辨 率 A/D, 输 入 通 道 、 通 讯 和 模 块 之 间 提 供 了 3000V 的 电 压 隔 离 , RS485 通 讯 接 口 光 电 隔 离 , AD 模 数 接 口 光 电 隔 离 , 能 防 止模 块 在 受 到 高 压 冲 击 时 而 损 坏 。 应 用 层 支 持 标 准 MODBUS-RTU 协 议 , 适 用 于 各 种 工 业 场 合 及 自 动 化 系 统 。 设备最多可同时采集 7 路热电阻温度,比如可接多路PT100温度采集,多路PT1000温度采集。
说明书资料可在
{FlexLua开源网盘}
->{Spec}
->{M010B}
文件夹中找到。
三、DTU01 万能采集器介绍
基于《DTU01采集器》实现采集 RS485 接口的迅研4502七通道热电阻采集器数据,并将采集到的数据以 Json 字符串的形式通过可选的 4G/WiFi/以太网/Lora 其中一种方式发送给网关或云服务器。在需要电池供电的场景下,还可通过给 DTU01 增加低功耗模块以实现周期性休眠采集,休眠电流可低至 3uA 以内,以实现在电池供电场景下的几个月甚至几年的周期性长期采集。
关于 DTU01 万 能采集器:
《DTU01万能采集器》内部核心主控采用 ShineBlink C2M 低代码物联网核心模组,使用该主控核心模组可轻松采集大量市面上常见的传感器/仪表/工业设备数据,并可自由选择通过 4G/WiFi/以太网/Lora 中的一种方式进行数据通信。本采集器硬件资料和源代码开放且源码极其精简,所以开发者无论是否有嵌入式单片机开发经验,皆可轻松基于源码进行二次开发(例如:新功能增加、边缘数据处理、逻辑判断、特殊协议解析等)。当然如果使用者对编程不感兴趣也可直接参考下面的技术指导文章即可实现大部分场景的需求。
四、DTU01 硬件要求
由于 DTU01 的硬件接口是可配置的,所以需要确认一下您手上的 DTU01 采集器是否满足要求,如果确认已满足就无需再做任何操作,否则请按《DTU01硬件使用指导书》完成下面的硬件配置:
- DTU01 电路板上的 ‘A’ 和 ‘B’ 引脚需配置成 485 接口的 ‘A’ 和 ‘B’,即 S3 选择
- DTU01 电路板上的 ‘+’ 和 ‘-’ 电源输出引脚需配置成 12v 输出(注意在 DTU01 电路板上 ‘+’ 和 ‘-’ 对应 ‘VIN’ 和 ‘GND’)
《DTU01硬件使用指导书》可在
{FlexLua开源网盘}
->{Hardware}
->{DTU01万能采集器}
->{DTU01硬件使用指导书}
文件夹中找到。
五、仪表采集核心代码
参考仪表 RS485 通信参数以及 Modbus 寄存器点位表,可得如下代码,将以下代码覆盖至对应的 main.lua 源代码文件中即可实现采集。
--读取RS485迅研DAM-4502七通道热电阻采集器
--获取到的Json数据形如:{"C1":33273,"C2":33528,"C3":33000,"C4":32768,"C5":32768,"C6":32768,"C7":32768}
--以上Json示例中的C1(通道1)的工程值 = 33273,其他通道以此类推,关于工程值如何转换成实际温度请参考《DAM-4502说明书》
function ModbusToJson()
--配置RS485 Modbus转Json功能,并设置Json字符串最大长度为150字节
LIB_ModbusToJsonConfig(150)--必须小于255
--例如:通道1工程值(热电阻)寄存器地址0x0000,16位无符号AB类型,0位小数,Json名称"C1"
LIB_ModbusToJsonAdd(0x0000,"U_AB",0,"C1")--通道1工程值
LIB_ModbusToJsonAdd(0x0001,"U_AB",0,"C2")--通道2工程值
LIB_ModbusToJsonAdd(0x0002,"U_AB",0,"C3")--通道3工程值
LIB_ModbusToJsonAdd(0x0003,"U_AB",0,"C4")--通道4工程值
LIB_ModbusToJsonAdd(0x0004,"U_AB",0,"C5")--通道5工程值
LIB_ModbusToJsonAdd(0x0005,"U_AB",0,"C6")--通道6工程值
LIB_ModbusToJsonAdd(0x0006,"U_AB",0,"C7")--通道7工程值
--参数设置(9600,无校验,1位停止位,功能码"03",从机地址默认0x01,应答最长等待1000ms,包与包最短间隔100ms)
LIB_ModbusToJsonSend("BAUDRATE_9600","NoneParity","StopBit_1","03",0x01,1000,100)
end
注意:上面Json信息中的值仅仅是七个通道热电阻的工程值,如何将工程值转换成实际温度值需要结合DAM-4502的实际配置和实际外接的热电阻型号(PT100/PT100/Cu50/Cu100等),关于如何将工程值转换成实际温度值,请仔细阅读《DAM-4502说明书》文档,文档位于
{FlexLua开源网盘}
->{Spec}
->{M010B}
文件夹中。另外关于DAM-4502 需要通过迅研提供的PC配置工具软件配置实际需要接入的热电阻型号(PT100/PT100/Cu50/Cu100等)。
六、八种采集传输方式实现(选一种阅读即可)
(1)4G Mqtt 主动传输(直流供电+电池供电)
周期性采集 RS485 Modbus 迅研4502七通道热电阻采集器数据并转换成可读性更强的 Json 字符串,然后通过 4G Mqtt 发送至云端,Json 字符串示例如下:
{"Dev":"TH","Data":{"C1":33273,"C2":33528,"C3":33000,"C4":32768,"C5":32768,"C6":32768,"C7":32768},"Err":null}
实现方法如下:
- 请仔细阅读参考 DTU01 的《软件使用指导书(RS485_4G_MQTT)》,并在 main.lua 源代码文件中修改好"配置信息"
- 将第五节中提供的"采集核心代码"覆盖至相应的 main.lua 源代码文件中
- 注意:如果需要使用低功耗电池供电功能,还需在配置信息中配置 SysSleepEn 参数
指导书文件和main.lua源代码文件均位于:
{FlexLua开源网盘}
->{Software}
->{DTU01万能采集器}
->{RS485}
->{4G主动发送}
->{MQTT}
文件夹中
(2)4G TCP主动传输(直流供电+电池供电)
周期性采集 RS485 Modbus 迅研4502七通道热电阻采集器数据并转换成可读性更强的 Json 字符串,然后通过 4G Tcp 发送至云端,Json 字符 串示例如下:
{"Dev":"TH","Data":{"C1":33273,"C2":33528,"C3":33000,"C4":32768,"C5":32768,"C6":32768,"C7":32768},"Err":null}
实现方法如下:
- 请仔细阅读参考 DTU01 的《软件使用指导书(RS485_4G_TCP)》,并在 main.lua 源代码文件中修改好"配置信息"
- 将第五节中提供的"采集核心代码"覆盖至相应的 main.lua 源代码文件中
- 注意:如果需要使用低功耗电池供电功能,还需在配置信息中配置 SysSleepEn 参数
指导书文件和main.lua源代 码文件均位于:
{FlexLua开源网盘}
->{Software}
->{DTU01万能采集器}
->{RS485}
->{4G主动发送}
->{TCP}
文件夹中
(3)WiFi Mqtt 主动传输(直流供电+电池供电)
周期性采集 RS485 Modbus 迅研4502七通道热电阻采集器数据并转换成可读性更强的 Json 字符串,然后通过 WiFi Mqtt 发送至云端,Json 字符串示例如下:
{"Dev":"TH","Data":{"C1":33273,"C2":33528,"C3":33000,"C4":32768,"C5":32768,"C6":32768,"C7":32768},"Err":null}
实现方法如下:
- 请仔细阅读参考 DTU01 的《软件使用指导书(RS485_WIFI_MQTT)》,并在 main.lua 源代码文件中修改好"配置信息"
- 将第五节中提供的"采集核心代码"覆盖至相应的 main.lua 源代码文件中
- 注意:如果需要使用低功耗电池供电功能,还需在配置信息中配置 SysSleepEn 参数
指导书文件和main.lua源代码文件均位于:
{FlexLua开源网盘}
->{Software}
->{DTU01万能采集器}
->{RS485}
->{WiFi 主动发送}
->{MQTT}
文件夹中
(4)WiFi TCP主动传输(直流供电+电池供电)
周期性采集 RS485 Modbus 迅研4502七通道热电阻采集器数据并转换成可读性更强的 Json 字符串,然后通过 WiFi Tcp 发送至云端,Json 字符串示例如下:
{"Dev":"TH","Data":{"C1":33273,"C2":33528,"C3":33000,"C4":32768,"C5":32768,"C6":32768,"C7":32768},"Err":null}
实现方法如下:
- 请仔细阅读参考 DTU01 的《软件使用指导书(RS485_WIFI_TCP)》,并在 main.lua 源代码文件中修改好"配置信息"
- 将第五节中提供的"采集核心代码"覆盖至相应的 main.lua 源代码文件中
- 注意:如果需要使用低功耗电池供电功能,还需在配置信息中配置 SysSleepEn 参数