DHT11是一款有已校準数位讯号输出的温湿度感测器。 其精度湿度+-5%RH, 温度+-2℃,量程湿度20-90%RH, 温度0~50℃。
基本介绍
- 中文名温湿度感测器
- 外文名DHT11
- 供电电压3.3~5.5V DC
- 输 出单汇流排数位讯号
- 测量範围湿度20-90%RH, 温度0~50℃
- 测量精度湿度+-5%RH, 温度+-2℃
- 分 辨 率湿度1%RH, 温度1℃
- 互 换 性可完全互换
- 长期稳定性<±1%RH/年
基本信息
产品概述
DHT11数字温湿度感测器是一款含有已校準数位讯号输出的温湿度複合感测器,它套用专用的数字模组採集技术和温湿度感测技术,确保产品具有极高的可靠性和卓越的长期稳定性。感测器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连线。该产品具有品质卓越、超快回响、抗干扰能力强、性价比极高等优点。每个DHT11感测器都在极为精确的湿度校验室中进行校準。校準係数以程式的形式存在OTP记忆体中,感测器内部在检测信号的处理过程中要调用这些校準係数。单线制串列接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为该类套用中,在苛刻套用场合的最佳选择。产品为4针单排引脚封装,连线方便。
套用领域
暖通空调 测试及检测设备
汽车 数据记录器
消费品 自动控制
气象站 家电
湿度调节器 医疗
除湿器
特性
相对湿度和温度测量
全部校準,数字输出
卓越的长期稳定性
无需额外部件
超长的信号传输距离
超低能耗
4引脚安装
完全互换
接线图
具体示例
电气特性
VCC=5V,T = 25℃,除非特殊标注
参数 | 条件 | min | typ | max | 单位 |
供电 | DC | 3 | 5 | 5.5 | V |
供电电流 | 测量 | 0.5 | 2.5 | mA | |
平均 | 0.2 | 1 | mA | ||
待机 | 100 | 150 | uA | ||
採样周期 | 秒 | 1 | 次 |
引脚说明
pin | 名称 | 注释 |
1 | VDD | 供电 3-5.5VDC |
2 | DATA | 串列数据,单汇流排 |
3 | NC | 空脚,请悬空 |
4 | GND | 接地,电源负极 |
封装信息
图片说明
详细参数
参数 | 条件 | Min | Typ | Max | 单位 | ||
湿度 | |||||||
解析度 | 1 | 1 | 1 | %RH | |||
8 | Bit | ||||||
重複性 | ±1 | %RH | |||||
精度 | 25℃ | ±4 | %RH | ||||
0-50℃ | ±5 | %RH | |||||
互换性 | 可完全互换 | ||||||
量程範围 | 0℃ | 30 | 90 | %RH | |||
25℃ | 20 | 90 | %RH | ||||
50℃ | 20 | 80 | %RH | ||||
回响时间 | 1/e(63%)25℃,1m/s 空气 | 6 | 10 | 15 | S | ||
迟滞 | ±1 | %RH | |||||
长期稳定性 | 典型值 | ±1 | %RH/yr | ||||
温度 | |||||||
解析度 | 1 | 1 | 1 | ℃ | |||
8 | 8 | 8 | Bit | ||||
重複性 | ±1 | ℃ | |||||
精度 | ±1 | ±2 | ℃ | ||||
量程範围 | 0 | 50 | ℃ | ||||
回响时间 | 1/e(63%) | 6 | 30 | S |
套用信息
工作与贮存条件
超出建议的工作範围可能导致高达3%RH的临时性漂移信号。返回正常工作条件后,感测器会缓慢地向校準状态恢复。在非正常工作条件下长时间使用会加速产品的老化过程。
暴露在化学物质中电阻式湿度感测器的感应层会受到化学蒸汽的干扰,化学物质在感应层中的扩散可能导致测量值漂移和灵敏度下降。在一个纯净的环境中,污染物质会缓慢地释放出去。下文所述的恢复处理将加速实现这一过程。高浓度的化学污染会导致感测器感应层的彻底损坏。
恢复处理
置于极限工作条件下或化学蒸汽中的感测器,通过如下处理程式,可使其恢复到校準时的状态。在50-60℃和< 10%RH的湿度条件下保持2 小时(烘乾);随后在20-30℃和>70%RH的湿度条件下保持 5小时以上。
温度影响
气体的相对湿度,在很大程度上依赖于温度。在测量湿度时,应儘可能保证湿度感测器在同一温度下工作。如果与释放热量的电子元件共用一个印刷线路板,在安装时应儘可能将DHT11远离电子元件,并安装在热源下方,保持外壳的良好通风。为降低热传导,DHT11与印刷电路板其它部分的铜镀层应儘可能最小,并在两者之间留出一道缝隙。
光线
长时间暴露在太阳光下或强烈的紫外线辐射中,会使性能降低。
配线注意事项
DATA信号线材质量会影响通讯距离和通讯质量,推荐使用高质量禁止线。焊接信息手动焊接,在最高260℃的温度条件下接触时间须少于10秒。
注意事项
(1)避免结露情况下使用。
(2)长期保存条件温度10-40℃,湿度60%以下
实例程式
////// DHT11使用範例//单片机 AT89S52 或 STC89C52RC// 功能 串口传送温湿度数据 波特率 9600//硬体连线 P2.0口为通讯口连线DHT11,DHT11的电源和地连线单片机的电源和地,单片机串口加MAX232连线电脑#include <reg51.h>#include <intrins.h>//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 ;//DATAsbit 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]={"RS232"};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){U8 i;for(i=0;i<8;i++){U8FLAG=2;//----------------------P2_1=0 ; //TP2_1=1 ; //T//----------------------while((!P2_0)&&U8FLAG++);Delay_10us();Delay_10us();// Delay_10us();U8temp=0;if(P2_0)U8temp=1;U8FLAG=2;while((P2_0)&&U8FLAG++);//----------------------P2_1=0 ; //TP2_1=1 ; //T//----------------------//逾时则跳出for循环if(U8FLAG==1)break;//判断数据位是0还是1// 如果高电平高过预定0高电平值则数据位为 1U8comdata<<=1;U8comdata|=U8temp; //0}//rof}//------------ --------------------//-----湿度读取子程式 ------------//---------------------- ----------//----以下变数均为全局变数--------//----温度高8位== U8T_data_H------//----温度低8位== U8T_data_L------//----湿度高8位== U8RH_data_H-----//----湿度低8位== U8RH_data_L-----//----校验 8位 == U8checkdata-----//----调用相关子程式如下----------//---- Delay();, Delay_10us();COM();//--------------------- -----------void RH(void){//主机拉低18msP2_0=0;Delay(180);P2_0=1;//汇流排由上拉电阻拉高 主机延时20usDelay_10us();Delay_10us();Delay_10us();Delay_10us();//主机设为输入 判断从机回响信号P2_0=1;//判断从机是否有低电平回响信号 如不回响则跳出,回响则向下运行if(!P2_0) //T !{U8FLAG=2;//判断从机是否发出 80us 的低电平回响信号是否结束while((!P2_0)&&U8FLAG++);U8FLAG=2;//判断从机是否发出 80us 的高电平,如发出则进入数据接收状态while((P2_0)&&U8FLAG++);//数据接收状态COM();U8RH_data_H_temp=U8comdata;COM();U8RH_data_L_temp=U8comdata;COM();U8T_data_H_temp=U8comdata;COM();U8T_data_L_temp=U8comdata;COM();U8checkdata_temp=U8comdata;P2_0=1;//数据校验U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);if(U8temp==U8checkdata_temp){U8RH_data_H=U8RH_data_H_temp;U8RH_data_L=U8RH_data_L_temp;U8T_data_H=U8T_data_H_temp;U8T_data_L=U8T_data_L_temp;U8checkdata=U8checkdata_temp;}//fi}//fi}//---------------------------------------//main()功能描述: AT89C51 11.0592MHz 串口发//送温湿度数据,波特率 9600//----------------------------------------------void main(){U8 i,j;//uchar str[6]={"RS232"};/ 系统初始化 /TMOD = 0x20; //定时器T1使用工作方式2TH1 = 253; // 设定初值TL1 = 253;TR1 = 1; // 开始计时SCON = 0x50; //工作方式1,波特率9600bps,允许接收ES = 1;EA = 1; // 打开所以中断TI = 0;RI = 0;SendData(str) ; //传送到串口Delay(1); //延时100US(12M晶振)while(1){//------------------------//调用温湿度读取子程式RH();//串口显示程式//--------------------------str[0]=U8RH_data_H;str[1]=U8RH_data_L;str[2]=U8T_data_H;str[3]=U8T_data_L;str[4]=U8checkdata;SendData(str) ; //传送到串口//读取模组数据周期不易小于 2SDelay(20000);}//elihw}// mainvoid RSINTR() interrupt 4 using 2{U8 InPut3;if(TI==1) //传送中断{TI=0;if(count!=5) //传送完5位数据{SBUF= outdata[count];count++;}}if(RI==1) //接收中断{InPut3=SBUF;indata[count_r]=InPut3;count_r++;RI=0;if (count_r==5)//接收完4位数据{//数据接收完毕处理。count_r=0;str[0]=indata[0];str[1]=indata[1];str[2]=indata[2];str[3]=indata[3];str[4]=indata[4];P0=0;}}}