基于Modbus协议的温湿度传感器的设计

时间:2022-06-26 06:13:20

基于Modbus协议的温湿度传感器的设计

【摘 要】本文介绍了一种使用工业现场总线协议――Modbus协议进行数据传输的温湿度传感器节点。主要是传感器节点的硬件电路的设计,包含数据采集和处理电路等;软件设计,包含温湿度数据的采集和Modbus通信协议。最后对设计的传感器节点进行了射频性能和传感器精度的测试验证。

【关键词】Modbus协议;温湿度传感器;无线传感器

0 引言

无论是在工业现场还是日常生活中,我们都需要对环境的温湿度参数进行监测。传感器节点作为温湿度监测的终端,直接接触被测环境,是整个监测系统的重要组成部分。精度高、成本低、使用时限长、安装方便是我们在设计中需要考虑的因素[1]。

本文综合以上各个因素设计了一款使用Modbus通信协议和433MHz无线频段的无线温湿度传感器节点。考虑到传感器节点成本和精度的因素,使用瑞士Sensirionn公司生产的SHT10传感器,它可以同时测量温度和湿度,且有较高的测量精度和简洁的电路。为了便于安装,使用433MHz无线频段作为传感器节点的通信媒介,有较远的通信距离和穿墙能力,避免了有线通信电缆安装的不便。

1 总体结构

温湿度传感器节点的总体结构如图1所示,主要包含传感器数据采集、电源供电、主控芯片数据处理、无线通信数据收发几个部分。传感器数据采集负责采集环境温湿度的值,电源供电则是为传感器数据采集、主控和无线通信芯片提供3.3V电压电源,主控芯片主要是对采集到的数据进行数据分析和处理以得到实际的温度和湿度的值,无线通信部分实现的是433MHz的通信频段。

图1 温湿度传感器节点的总体结构

2 硬件设计

无线温湿度传感器节点的硬件设计包含电源供电,数据采集,数据处理,数据收发几个部分。电源供电部分主要是把3.7V电池电压转换为3.3V,作为各个部分的供电电源,以及5V电源给电池充电两个部分,使用Maxim公司的MAX8881作为3.7V转3.3V的降压芯片,MAX1555作为5VDC电源给电池充电的芯片;数据采集主要是对环境温湿度参数的采集,使用Sensirionn公司生产的SHT10传感器;数据处理主要是对采集到的数据进行计算求值等,使用ST公司的STM32F103芯片;无线数据通信则是为传感器节点提供一个数据通信的通道,使用TI公司的CC1101芯片。这里主要对数据采集部分进行详细的阐述。

数据采集部分使用SHT10传感器,它传感器把传感元件和信号处理电路集成在了一块微型电路板中,输出为完全标定的数字信号。传感器内部包含一个电容性聚合体测湿敏感元件,一个用能隙材料制成的测温元件,14位的A/D转换器,串行接口电路。由此,传感器具有极高的可靠性和长期的稳定性,并且响应速度快、性价比高等优点。SHT10温湿度传感器测量温度的范围在-40~+123.8°C,测量湿度的范围在0~100%RH;测量温度的精度典型值为±4.5%RH,测量湿度的精度典型值为±0.5°C[2]。

图2 SHT10典型电路

温湿度传感器SHT10一共有4个接口,分别是地(GND),双向串行数据接口(DATA),串行时钟输入口(SCK)以及电源接口(VDD)。传感器的电源供电电压范围为2.4-5.5V,这里使用3.3V电源。电源和地(即VDD,GND)之间需要加一个去耦滤波的电容,电容值为100nF。传感器的典型应用电路如图2所示,传感器的电路采用I2C的总线形式,数据接口DATA接一个10KΩ的上拉电阻再与主控芯片相连进行双向通信,时钟输入口的信号来自主控芯片。

3 软件设计

软件设计部分包含温湿度数据的采集、处理,无线数据收发和Modbus通信协议几个部分。这里把数据的采集、处理以及收发统一到数据监测,一并进行阐述。

3.1 数据监测

数据监测的整个过程是无线温湿度传感器节点上电初始化后,等待无线部分接受数据采集命令,收到采集命令后进行数据采集、处理,最后通过无线部分转发出去,即完成了一次数据采集,整个过程的程序流程图如图3所示。

图3 数据监测的程序流程图

3.2 Modbus通信协议

Modbus通信协议是一种工业现场通用协议,主要规定了应用层报文传输的格式,使得不同生产厂商的设备可以连成网络,集中监控[3]。

Modbus协议可分为在TCP/IP上的实现与串行链路上的实现,即Modbus-TCP和Modbus-RTU。传感器节点内部实现的是Modbus-RTU协议。Modbus协议使用的是客户机/服务器(C/S)的通信模式,主站向从站发送请求的模式有两种:单播和广播,本文实现的是单播的模式。

Modbus通用帧即ADU应用数据单元分为附加地址、功能码、数据和差错校验4个部分,其中功能码和数据部分为PDU协议数据单元。从站地址和功能码各一个字节,数据段最多252个字节,差错校验2个字节。RTU帧还应该注意的是不同的帧与帧之间至少3.5个字符的空闲,同一帧内两字符之间最多1.5个字符的空闲[4]。

传感器内部具体的Modbus通信协议的封包解包过程如图4所示。

图4 Modbus协议通信过程

4 测试结果

无线温湿度传感器节点射频性能的测试结果如表1,每次发送1000个数据包,有效传输距离可达到120米的情况下0%的丢包率,穿越两层楼达到0%的丢包率(注:排除433MHz频段其他设备的干扰)。

传感器精度的测试,在同一环境情况下,使用市场上购买的手持红外温度仪与本文设计的传感器节点进行环境监测数据的对比,温度值的误差保持在±0.5°C以内。例如,传感器节点监测值为21.2°C,手持红外温度仪为21.5°C,误差为-0.3°C。传感器精度测试结果如表2所示。

表1 射频性能测试结果

表2 传感器精度性能测试结果

5 结束语

本文设计了一种使用Modbus通信协议的温湿度传感器节点,给出了传感器节点硬件与软件的设计方法,详尽的介绍了传感器数据采集的软硬件设计和Modbus通信协议的程序实现过程,最后进行了传感器设备的测试。从测试结果看,设计的该款传感器具有较远的通信距离和穿墙能力,并且具有较低的测量值误差。

【参考文献】

[1]李品,孙周.SHT10传感器在温湿度监测系统中的应用[J].传感器与微系统,2012,31(9):136-138.

[2]瑞士Sensirionn公司.SHT10数据手册[S].

[3]互动百科[OL].Modbus.

[4]GB/T19582.2-2008,基于Modbus协议的工业自动化网络规范第2部分:Modbus协议在串行链路上的实现指南[S].2008.

上一篇:港口门座起重机转盘轴承的选型安装及故障预防 下一篇:雷锋精神在现实生活中具有大美的力量