应用天地 APPLICAT ION NOT ES
单总线传感器DHT11在温湿度测控中的应用
倪天龙
(中国人民75701装备处,广州510880)
摘要:新型单总线数字温湿度传感器DHT11具有体积小巧、接口简单、响应速度快、性价比高等特点。文章简要介绍了单总线概念,阐述了DHT11的基本原理和控制使用方法,以及其在仓库温湿度测控系统中的应用。DHT11的诸多优点,使其在自动控制和家电消费品领域中拥有较高的应用价值。
关键词:单总线;温湿度传感器;DHT11
中图分类号:T P368 文献标识码:A
Application of Sin gle Bus Sen sor DHT11in Temperature H umidity
Measure and Control System
Ni Tianlong
(75701Units of PLA,Guangzhou510880,China)
Abstract:New digital temperature hum idit y sensor DH T11has many advantages such as compactness,simple interface,fast response, and cheapness.This paper briefly introduces t he concept of1 w ire bus,and expounds the basic principles and t he application methods of DHT11,as well as its application in the temperature and humidity control system.The excellent advantages m akes DH T11valued in the fields of automat ion and consumer electronics products。
Key words:1 w ire bus;temperature humidity sensor;DHT11
引 言
随着科技的不断发展,汽车、空调、除湿器、烘干机等
种类繁多的电器都已进入人们的日常生活,而这些电器设
备很多都离不开对温度、湿度等环境因素的要求。因此,
温度、湿度传感器用途越来越广泛。新一代的数字传感器
不再需要外置的A/D转换模块,并具有标准接口,使用方
便,得到了越来越多的应用。DHT11作为一种新型的单
总线温湿度数字传感器,具有更多的优点,它使系统设计
更加简单,控制方便,易于实现。
1 单总线通信简介
目前常用的微机与外设之间进行数据传输的串行总
线主要有I2C总线、SPI总线和SCI总线。其中I2C总线
以同步串行两线方式进行通信(1条时钟线,1条数据
线),SPI总线则以同步串行三线方式进行通信(1条时钟
线,1条数据输入线,1条数据输出线),而SCI总线是以
异步方式进行通信的(1条数据输入线,1条数据输出
线)。这些总线至少需要两条或两条以上的信号线。近
年来,美国的达拉斯半导体公司(Dallas Semiconductor)推
出了一项特有的单总线(1 w ire Bus)技术。该技术与上
述总线不同。它采用单根信号线,既可传输时钟,又能传
输数据,而且数据传输是双向的,因而这种单总线技术具
有线路简单、硬件开销少、成本低、便于总线扩展和维护
等优点。
单总线适用于单主机系统,能够控制一个或多个从机
设备。主机可以是微控制器,从机是单总线器件,它们之
间的数据交换只通过1条信号线。当只有1个从机设备
时,系统可按单节点系统操作;当有多个从机设备时,系统
则按多节点系统操作。
2 DHT11的主要特点及引脚说明
广州奥松电子有限公司新近推出的DH T11数字温
湿度传感器,是一款含有已校准数字信号输出的温湿度复
合传感器。它应用专用的数字模块采集技术和温湿度传
感技术,具有很高的可靠性与稳定性。DH T11传感器包
括1个电阻式感湿元件和1个NT C测温元件,并与1个
高性能8位单片机相连接。单线制串行接口,使系统连接
可以更简洁。功耗极低,信号传输距离可达20m以上。
APPLICAT ION NOT ES 应用天地
作为一种新型的单总线数字温湿度传感器,DH T11具有体积小、功耗低、响应速度快、抗干扰能力强、控制简单、性价比高等优点,能够广泛应用于各个领域。其基本指标如下:
温湿度复合传感器;
全量程标定校准,单线数字输出; 湿度测量范围为20%~90%RH; 温度测量范围为0~+50!; 湿度测量精度为∀5.0%RH; 温度测量精度为∀1.0!; 响应时间<5s;图 2
低功耗;
超长的信号传输距离; 出色的长期稳定性;
超小体积。
DH T 11采用4针单排引脚封装,电路连接方便,引脚说明如表1所列。
表1
DH T11引脚说明
引脚号名称
注 释
1VDD 供电3~5.5V DC 2DAT A 串行数据,单总线3NC 空脚,悬空4
GND
接地,电源负极
DA T A 是用于微处理器与DHT 11之间的通信和同步的串行双向接口,采用单总线数据格式。每次通信都是以高位先出的顺序传输40位数据,用时约为4ms 。数据格式为:
8位湿度整数数据+8位湿度小数数据+8位温度整数数据+8位温度小数数据+8位校验和数据
图 3
数据分小数部分和整数部分,当前小数部分用于以后扩展,现读出为零。
数据传送正确时,校验和数据等于#8位湿度整数数据+8位湿度小数数据+8位温度整数数据+8位温度小数数据∃所得结果的末8位。
3典型应用电路
DH T 11与微处理器的电路连接非常简单,典型
应用电路如图1所示。
图 1
数据线长度短于20m 时可以使用5k 上拉电阻,大于20m 时可根据实际情况使用合适的上拉电阻。
MCU 发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT 11发送响应信
号,送出40位的测量数据,并触发一次信号采集,用户可选择读取部分数据。DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT 11不会主动进行温湿度采集。采集数据后转换到低速模式。
4时序说明
通信过程非常简单,如图2所示(图2~图5中实线为
主机信号,虚线为DHT 信号)。首先主机(微处理器)在数据线上发出开始信号,DH T 11在检测到此信号后回复响应信号,并拉高数据线电平,开始向主机发送测量得到的数据。数据发送完毕后,释放总线。
详细时序如图3所示。总线空闲状态为高电平。需
要读取DH T 11的测量数据时,主机先把总线拉低18ms 以上的低电平,这就是主机发出的开始信号。当DHT 11检测到总线上的开始信号时,在主机开始信号结束后发送80 s 低电平的响应信号。主机发送完开始信号,延时等待20~40 s 后,从总线读取DH T11的响应信号。如果读取响应信号为高电平,说明DHT 11没有响应,请检查线路是否连接正常。如果总线为低电平,说明DHT 11正常发送了响应信号。
DHT 11发送完响应信号后,将总线拉高80 s,准备
发送数据。每一位数据都以50 s 低电平时隙开始,以高电平的时长来区分数据位是0或1,26~28 s 的高电平表示0,70 s 的高电平表示1(具体格式见图4和图5)。当最后一位数据传送完毕后,DHT 11拉低总线50 s,随后总线由上拉电阻拉高进入空闲状态。
数字0信号表示方法如图4所示,数字1信号表示方法如图5所示。
温湿度读取子程序如下:
void RH (void){
//主机将DHT11数据线拉低18ms DHT 11data=0;
Delay_1ms(18);
应用天地 APPLICAT ION NOT ES
图 4
图 5
DHT11data=1;
//数据线由上拉电阻拉高,主机延时30 s
Delay_1us(30);
//主机设为输入,判断从机响应信号
DHT11data=1;
//判断从机是否有低电平响应信号,如不响应则跳出,响应
//则继续运行
if(!DH T11dat a){
FLAG=2;
//判断从机是否发出80 s的低电平,响应信号是否结束
w hile((!DH T11data)&&FLAG++);
FLAG=2;
//判断从机是否发出80 s的高电平,如发出则进入数
//据接收状态
w hile((DH T11data)&&FLAG++);
//数据接收。每次接收8位数据,分别是湿度整数数据、
//湿度小数数据、温度整数数据、温度小数数据、校验和
ReadDH T11();
RH_data_H_temp=U8comdata;
ReadDH T11();
RH_data_L_temp=U8com data;
ReadDH T11();
T_data_H_temp=U8comdat a;
ReadDH T11();
T_data_L_temp=U8comdata;
ReadDH T11();
checkdata_temp=U8comdat a;
DH T11data=1;
//数据校验。如果校验和正确,则进行显示或其他操作
U8temp=(T_dat a_H_temp+T_dat a_L_temp+RH_
data_H_temp+RH_data_L_t emp);
if(U8t emp==checkdata_tem p)
display();
}
}
5基于DHT11的仓库温湿度测控系统
应用实例
DH T11已被成功地应用到了仓库管理控制系统中。
如图6所示,采用ST CC52RC处理器实现对DHT11的
控制,按照DHT11的时序在数据线上发送起始信号,再
从数据线读取DHT11的测量数据。将这些数据进行分
析处理,一路送至数码管显示,另一路通过RS232口送至
计算机。也可以将测量数据存入单片机内的Flash中,以
备查阅。如果测量数据显示当前库内的温湿度超出了仓
库设定温湿度范围,则单片机ST CC52RC将产生报警
信号。将该报警信号一路接入报警装置中触发报警,另一
路控制继电器打开抽湿机和空调的电源来调节库内温度
和湿度。这样便有效地实现了DHT11对仓库温湿度的
控制,完善了对仓库的管理。
图 6
结语
淘宝网上DH T11单片价格仅7.8元。作者对
DHT11与DS18B20及一些水银温湿度测量器的测量数
据进行了比较,验证了DHT11测量数据的准确性和稳定
性。低廉的价格、小巧的体积、准确稳定的测量数据、简单
的单总线控制方式、简洁的电路连接,这些将使DHT11
拥有良好的应用前景。
编者注:DH T11在温湿度测控系统中应用的代码见
本刊网站ww w.mesnet.com.cn。
参考文献
[1]陈志英,李光辉.单总线(1Wire Bus)技术及其应用[J].国外
电子元器件,2003(8):47.
[2]徐敏,诸葛振荣,宋加仁.基于1Wire技术的数字温度仪[J].
机电工程,2007,24(4):26 29.
倪天龙(工程师),主要研究领域为嵌入式系统设计与应用。
(收修改稿日期:2010 01 31)下载本文