基于单总线的分布式温湿度监测系统设计
引言
对环境条件要求高的场合,需要精密地测量相对湿度与温度,尤其是实验室中很多实验数据需要与温湿度一一对应。然而,监测环境一般是几十到上百平方米的范围,仅监测一点的温湿度是不够的,需要分布多个传感器节点,将各个节点的传感结果平均值作为环境参数。通常的方法是构建RS485分布式现场总线,每个传感器节点都需要单片机和通信器件,成本较高。
DHT22数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。每个DHT22传感器都在极为精确的湿度校验室中进行校准。湿度测量范围为0~100%RH,精度为±2%RH;温度测量范围为-40~125℃,精度为±0.5℃。单线制串行接口,使系统集成变得简易快捷。DHT22具有体积小、功耗低、超快响应、抗干扰能力强、性价比高等特点,信号传输距离可达20 m以上,适合于分布式应用。
但是,DHT22的单总线不支持寻址,也就是说单总线仅能挂接单个DHT22传感器。若每个传感器都单独布线,势必造成浪费。因此,合理的传感器接口方式是设计的关键。本文采用4个DHT22单总线智能温湿度传感器实现分布式温湿度监测系统的设计。
1监测系统结构及接口设计
系统结构及接口如图1所示。4个DHT22传感器需要4根数据线,加上电源和地线共6根线。系统采用双绞线作为分布式连接线路,RJ45作为接口器件。核心板设计了4个RJ45接口,4个传感器可分别接入4个接口。核心板的4个RJ45接口内部连接一致,当布线不超过20 m时,传感器可采用咬尾式接口方式(即仅接入核心板的1个接口),当超过20 m时单独布线,大幅节约了布线成本,降低了布线难度。
系统结构及接口如图1所示。4个DHT22传感器需要4根数据线,加上电源和地线共6根线。系统采用双绞线作为分布式连接线路,RJ45作为接口器件。核心板设计了4个RJ45接口,4个传感器可分别接入4个接口。核心板的4个RJ45接口内部连接一致,当布线不超过20 m时,传感器可采用咬尾式接口方式(即仅接入核心板的1个接口),当超过20 m时单独布线,大幅节约了布线成本,降低了布线难度。
也就是说,每个传感器节点的内部结构需要具备两个功能:①每个传感器节点具有两个直通连接的RJ45接口,以实现咬尾式连接;②每个传感器节点能够设定通信线路,因为每个传感器独享1根线路。
传感器节点内部结构框图如图2所示。4个传感器DHT22的DATA引脚通过4位拨码开关分别连接至4根数据线即可。
2 DHT22的总线接口协议
DHT22采用OC门单总线通信协议,因此单总线必须接上拉电阻,建议为5.1kΩ。
DHT22采用OC门单总线通信协议,因此单总线必须接上拉电阻,建议为5.1kΩ。
对DHT22进行一次40 bit数据的通信,时间为5 ms左右,采用MSB方式,但采样周期间隔不得低于2 s.40bit数据的数据格式为:40 bit数据=16bit湿度数据+16 bit温度数据+8 bit校验和(前4个字节的和)
16 bit湿度数据为无符号数,16 bit温度数据为有符号数原码表示,两数据都为放大10倍后的真实物理量值。例如:0000 0010+1000 1100+0000 0001+0101 1111=1110 1110,对应湿度=65.2%RH,温度=35.1℃。
用户主机(MCU)发送一次开始信号后,DHT22从低功耗模式转换到高速模式;主机开始信号结束后,DHT22发送响应信号,送出40 bit的数据,并触发一次信号采集。
DHT22的单总线握手信号时序如图3所示。空闲时总线为高电平,通信开始时主机(MCU)拉低总线1~10ms后释放总线,延时20~40μs后主机开始检测从机DHT22的响应信号(一个80μs左右的低电平),随后从机拉高总线80μs左右准备进行数据传送。每bit数据都是由一个低电平时隙和一个高电平组成。低电平时隙固定为一个50μs左右的低电平,它代表数据位的起始;其后的高电平的长度决定数据位所代表的数值,较长的(70μs)高电平代表1,较短(26~28μs)的高电平代表0.40bit数据序列传送完毕后,从机将再次拉低总线50μs左右,随后释放总线,由上拉电阻拉高。
AVR单片机读取单个DHT22的子程序如下:
3核心板软件设计
核心板软件包括3个部分:4个传感器信息采集及处理、液晶显示和PC温湿度信息上传。这里仅讨论4个传感器信息的采集及处理。
3核心板软件设计
核心板软件包括3个部分:4个传感器信息采集及处理、液晶显示和PC温湿度信息上传。这里仅讨论4个传感器信息的采集及处理。
单片机每隔2 s就分别读取4个传感器的温度与湿度信息,并分别作平均得到温度值和湿度值。为进一步实现准确测量,建立两个8成员的数组,系统引入8阶FIR滤波器。根据采样频率fs=1/(2s)=0.5 Hz,截止频率fc=0.1 Hz,利用Matlab环境的firl函数获取滤波器系数:b=firl(8-1,2fc/fs)
可得:b=-0.0072 0.0000 0.1351 0.3721 0.3721 0.1351 0.0000 -0.0072软件流程如图4所示。
结语
本文采用4个DHT22单总线智能温湿度传感器实现了分布式温湿度监测系统的设计。系统结构简单,安装调试方便,在同类仪表的开发中具有广阔的应用前景,特别适合于在工业加工的精密测试中心、实验室以及对加工材料的存放有较高要求的环境中使用,还可以应用于居住环境的监测。本系统已经成功应用,性能稳定可靠,测量精度高,智能化程度高,使用简便,性能价格比高,受到了用户的普遍欢迎。
本文采用4个DHT22单总线智能温湿度传感器实现了分布式温湿度监测系统的设计。系统结构简单,安装调试方便,在同类仪表的开发中具有广阔的应用前景,特别适合于在工业加工的精密测试中心、实验室以及对加工材料的存放有较高要求的环境中使用,还可以应用于居住环境的监测。本系统已经成功应用,性能稳定可靠,测量精度高,智能化程度高,使用简便,性能价格比高,受到了用户的普遍欢迎。
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码