数字温湿度传感器DHT11详解及例程利用串口显示

更新时间:2023-11-16 09:13:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数字温湿度传感器DHT11

1、概述

DHTxx 系列数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式测湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此,该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHTxx传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在 OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行输出接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。本产品为 4 针单排引脚封装,特殊封装形式可根据用户需求而提供。

2、产品特性

??湿温度传感器的一体化结构能相对的同时对相对湿度和温度进行测量 。 ??数字信号输出,从而减少用户信号的预处理负担。 ??单总线结构输出有效的节省用户控制器的I/O口资源。并且,不需要额外电器元件。 ??独特的单总数据传输线协议使得读取传感器的数据更加便捷。 ??全部校准。编码方式为8位二进制数。 ??40bit 二进制数据输出。其中湿度整数部分占1Byte,小数部分1Byte;温度整数部分1Byte,小数部分1Byte。其中,湿度为高16位。最后1Byte为校验和。 ??卓越的长期稳定性,超低功耗。 ??4引脚安装,超小尺寸。 ??各型号管脚完全可以互换。 ??测量湿度范围从20%RH到90%RH;测量温度范围从0℃到50℃。 ??适用范围包括恒湿控制,消费家电类产品,温湿度计等领域。

3、外型与引脚排列

引脚说明: Vcc 正电源 Dout 输出 NC 空脚 GND 地 - 1 -

图3.0 DHT外型及管脚

4、详细引脚说明:

传感器管脚方向识别:正面(有通气孔的一面)看过去,从左到右依次为1、2、3、4脚。

表4.0:引脚说明 引脚号引脚名称1 VCC 2 Dout 3 NC 4 GND 类型引脚说明

电源正电源输入,3V-5.5V DC 输出单总线。数据输入/输出引脚空 空脚。扩展未用 地 电源地

电源引脚,DHTxx的供电电压为 3.5~5.5V。传感器上电后,要等待 1s 以越过

不稳定状态在此期间不要发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。

5、订货信息

型号 测量范围 测湿精度 ±5%RH 测温精分辨度 力 ±2℃ 1 封装 4针单排直插 DHT11 20-90%RH 0-50℃

6、传感器性能说明 参数 湿度 分辨率 重复性 精度 互换性 量程范围 条件 1 8 Min Typ Max 单位 1 1 %RH %RH %RH Bit ±1 25℃ ±4 0-50℃ ±5 %RH 可完全互换 0℃ 30 90 %RH 25℃ 50℃ 20 90 %RH 20 80 %RH 6 10 15 S 响应时间 1/e(63%)25℃,1m/s 空气 迟滞 长期稳定性 温度 分辨率 重复性 精度 量程范围 响应时间 ±1 %RH 典型值 ±1 %RH/yr 1 8 1 1 ℃ 8 8 Bit ℃ ±1 ℃ ±1 ±2 ℃ 0 50 1/e(63%) 6 30 S 7、连接接口说明

DHTxx数字湿温度传感器连接电路简单,只需要占用控制器一个I/O口即可完成上下位的连接。典型应用电路如下图所示。另外,建议连接线长度短于20时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻,如图5.0所示。

图5.0 典型电路连接

8、数据格式及处理 8.1、格式

数字湿温度传感器采用单总线数据格式。即,单个数据引脚端口完成输入输出双向传输。其数据包由5Byte(40Bit)组成。一次通讯时间最大3ms,数据分小数部分和整数部分,具体格式在下面说明。

DATA 用于微处理器与 DHTxx之间的通讯和同步,采用单总线数据格式, 当前小数部分用于以后扩展,现读出为0。操作流程如下:

一次完整的数据传输为40bit,高位先出。

数据格式:8bit湿度整数数据+8bit湿度小数数据

+8bit温度整数数据+8bit温度小数数据

+8bit校验和

校验和数据为前四个字节相加。 具体见表6.1:

湿度整数 小数 8Bit 8Bit 温度校验 8Bit整数 小数8Bit 8Bit

8.2、数据编码及处理

传感器数据输出的是未编码的二进制数据。数据(湿度、温度、整数、小数)之间应该分开处理。如果,某次从传感器中读取如下5Byte数据:

byte4 byte3 byte2 byte1 byte0

00101101 00000000 00011100 00000000 01001001 整数 小数 整数 小数 校验和 湿度 温度 校验和

由以上数据就可得到湿度和温度的值,计算方法:

humi (湿度)= byte4 . byte3=45.0 (%RH) temp (温度)= byte2 . byte1=28.0 ( ℃)

jiaoyan(校验)= byte4+ byte3+ byte2+ byte1=73

9、时序

DHTxx传感器是通过奥松电子有限公司开发的单总线协议和上位机(控制器)进行数据通信。DHTxx传感器需要严格的读写协议来确保数据的完整性。整个读写分为,上位机发送起始信号,上位机接收下位机发来的握手响应信号,读?0?,和读?1?四个步骤。所有的信号除主机启动复位信号外,全部都由DHTxx产生。 通过单总线访问DHTxx顺序归纳如下:

??主机发开始信号 ??主机等待接收DHTxx响应信号 ??主机连续接收40Bit的数据和校验和 ??数据处理

9.1、主机复位信号和DHT响应信号

图7.1 DHT复位时序

用户主机发送一次开始信号(低电平)DHT从低速模式转换到高速模式,等待主机开始信号结束(拉高)后,DHT发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据。注意:总线线空闲状态为高电平,主机把总线线拉低等待DHT响应,主机把总线线拉低必须大于18毫秒,保证DHT能检测到起始信号。

DHT接收到主机的开始信号后,等待主机开始信号结束,然后发送低电平响应信号。主机发送开始信号结束后,延时等待20-40us后, 读取DHT的回应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可,总线线由上拉电阻拉高。

9.2、DHT开始发送数据流程

图7.2 读DHT数据流程

主机发送开始信号后,延时等待20us-40us后读取DHT的回应信号,读取总线为低电平,说明DHT发送响应信号,DHT发送响应信号后,再把总线拉高,准备发送数据,每一bit数据都以低电平开始,格式见下面图示。如果读取响应信号为高电平,则DHT没有响应,请检查线路是否连接正常。

9.3、数字?0?信号表示方法

图7.3 信号?0?时序图

数字?0?表示方法为,首先DHT把总线拉低12-14us然后拉高,高电平保持时间在26-28us这个范围内。则此比特为?0?电平。

9.4、数字?1?信号表示方法

图7.4 信号?1?时序图

数字?1?表示方法为,首先DHT把总线拉低12-14us然后拉高,高电平保持时间在116-118us这个范围内。则此比特为?1?电平。

10、 测量分辨率

测量分辨率分别为 8bit(温度)、8bit(湿度)。

11、电气特性

VDD=5V,T = 25℃,除非特殊标注 参数 条件 min typ max 单位 供电 DC 3 5 5.5 V 供电电流 测量 0.5 2.5 mA 平均 0.2 0.5 mA 待机 100 150 uA 采样周期 秒 1 次

注:采样周期间隔不得低于1秒钟。

12、应用信息 12.1工作与贮存条件

超出建议的工作范围可能导致高达3%RH的临时性漂移信号。返回正常工作条后,传感器会缓慢地向校准状态恢复。要加速恢复进程/可参阅7.3小节的“恢复处理”。在非正常工作条件下长时间使用会加速产品的老化过程。 12.2暴露

在化学物质中

电阻式湿度传感器的感应层会受到化学蒸汽的干扰,化学物质在感应层中的扩散可能导致测量值漂移和灵敏度下降。在一个纯净的环境中,污染物质会缓慢地释放出去。下文所述的恢复处理将加速实现这一过程。高浓度的化学污染会导致传感器感应层的彻底损坏。

12.3恢复处理

置于极限工作条件下或化学蒸汽中的传感器,通过如下处理程序,可使其恢复到校准时的状态。在50-60℃和< 10%RH的湿度条件下保持2 小时(烘干);随后在20-30℃和>70%RH的湿度条件下保持 5小时以上。

12.4温度影响

气体的相对湿度,在很大程度上依赖于温度。因此在测量湿度时,应尽可能保证湿度传感器在同一温度下工作。如果与释放热量的电子元件共用一个印刷线路板,在安装时应尽可能将DHT11远离电子元件,并安装在热源下方,同时保持外壳的良好通风。为降低热传导,DHT11与印刷电路板其它部分的铜镀层应尽可能最小,并在两者之间留出一道缝隙。

12.5光线

长时间暴露在太阳光下或强烈的紫外线辐射中,会使性能降低。

12.6配线注意事项

DATA信号线材质量会影响通讯距离和通讯质量,推荐使用高质量屏蔽线。

13、封装信息

14、 焊接信息

手动焊接,在最高260℃的温度条件下接触时间须少于10秒。

15、注意事项

(1)避免结露情况下使用。

(2)长期保存条件:温度10-40℃,湿度60%以下。

例程:

//****************************************************************// // DHT21使用范例 //单片机 : AT89S52 或 STC89C52RC

// 功能 :串口发送温湿度数据 波特率 9600

//硬件连接: P2.0口为通讯口连接DHT11,DHT11的电源和地连接单片机的电源和地,单片机串口加MAX232连接电脑

//****************************************************************//

#include #include //

typedef unsigned char U8; /* defined for unsigned 8-bits integer variable 无符号8位整型变量 */

typedef signed char S8; /* defined for signed 8-bits integer variable 有符号8位整型变量 */

typedef unsigned int U16; /* defined for unsigned 16-bits integer variable 无符号16位整型变量 */

typedef signed int S16; /* defined for signed 16-bits integer variable 有符号16位整型变量 */

typedef unsigned long U32; /* defined for unsigned 32-bits integer variable 无符号32位整型变量 */

typedef signed long S32; /* defined for signed 32-bits integer variable 有符号32位整型变量 */

typedef float F32; /* single precision floating point variable (32bits) 单精度浮点数(32位长度) */

typedef double F64; /* double precision floating point variable (64bits) 双精度浮点数(64位长度) */ //

#define uchar unsigned char #define uint unsigned int

#define Data_0_time 4

//----------------------------------------------// //----------------IO口定义区--------------------// //----------------------------------------------// sbit P2_0 = P2^0 ; sbit P2_1 = P2^1 ; sbit P2_2 = P2^2 ; sbit P2_3 = P2^3 ;

//----------------------------------------------// //----------------定义区--------------------// //----------------------------------------------//

U8 U8FLAG,k;

U8 U8count,U8temp;

U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata; U8

U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;

U8 U8comdata;

U8 outdata[5]; //定义发送的字节数 U8 indata[5];

U8 count, count_r=0; U8 str[5]={\U16 U16temp1,U16temp2; SendData(U8 *a) { outdata[0] = a[0]; outdata[1] = a[1]; outdata[2] = a[2]; outdata[3] = a[3]; outdata[4] = a[4]; count = 1; SBUF=outdata[0]; }

void Delay(U16 j) { U8 i; for(;j>0;j--) { for(i=0;i<27;i++); } }

void Delay_10us(void) {

U8 i; i--; i--; i--; i--; i--; i--; }

void COM(void) {

本文来源:https://www.bwwdw.com/article/18hv.html

Top