数字温湿度传感器DHT11详解及例程利用串口显示(已经测试)
数字温湿度传感器DHT11详解及例程利用串口显示
数字温湿度传感器DHT111、概述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脚。
电源引脚,DHTxx的供电电压为 3.5~5.5V。
传感器上电后,要等待1s 以越过不稳定状态在此期间不要发送任何指令。
dht11使用手册
dht11使用手册DHT11是一款常用的温湿度传感器,它能够测量并监测环境中的温度和湿度。
以下是关于DHT11的使用手册,希望能够帮助您更好地使用这款传感器。
一、简介DHT11是一款由AM2301温湿度传感器和数字模块构成的测温湿度模块。
它采用单总线通信方式,能够同时测量环境中的温度和湿度,具有测量精度高、稳定性好等优点。
DHT11的使用非常方便,只需将其连接到单片机的某个I/O口即可。
二、使用步骤1.硬件连接将DHT11的VCC引脚连接到单片机或开发板的+5V电源,GND引脚连接到地线,OUT引脚连接到单片机的I/O口(推荐使用GPIO)。
2.初始化在开始数据读取之前,需要先对DHT11进行初始化。
将I/O 口初始化为输出模式,然后输出低电平(0)至少18ms,再输出高电平(1)并保持60-400us。
此时DHT11会响应并开始工作。
3.数据读取初始化完成后,DHT11会自动开始测量环境中的温度和湿度。
等待40ms后,DHT11会自动将测量到的数据通过I/O口发送给单片机或开发板。
单片机或开发板可以通过读取I/O口的状态来获取数据。
4.数据解析从DHT11读取的数据是一个8位的湿度数据和一个8位的温度数据,需要对其进行解析才能得到实际的湿度和温度值。
根据DHT11的通信协议,我们可以使用以下公式来计算湿度和温度值:湿度值= (湿度数据×10) % 100 温度值= (温度数据/10) + 25三、注意事项在使用DHT11时,需要注意以下几点:1.DHT11的VCC引脚电压应保持在4.5-5.5V之间。
2.在读取数据时,需要等待一定的时间以保证数据传输的稳定。
通常情况下,建议等待大约80-200ms。
3.如果连续读取几次数据都失败,可能需要重新初始化DHT11。
4.在连接DHT11时,需要保证OUT引脚处于低电平状态。
如果OUT引脚处于高电平状态,可能会导致DHT11无法正常工作。
5.DHT11的工作环境温度应保持在0-50℃之间,如果环境温度过高或过低,可能会导致测量值不准确。
dht11使用手册
dht11使用手册摘要:1.DHT11 传感器简介2.DHT11 传感器的应用领域3.DHT11 传感器的工作原理4.DHT11 传感器的接线方式与注意事项5.DHT11 传感器的数据解析与处理6.DHT11 传感器的优缺点分析7.DHT11 传感器的使用与维护正文:DHT11 传感器是一款由我国生产的温湿度传感器,广泛应用于智能家居、农业、工业生产、医疗保健等多个领域。
它具有准确测量温湿度、响应速度快、抗干扰能力强等特点,可以满足各种环境监测需求。
一、DHT11 传感器简介DHT11 传感器是基于湿敏电阻原理,采用单片机技术设计而成的一款温湿度传感器。
它的主要功能是测量环境中的温度和湿度,并将测量结果通过数字信号输出。
DHT11 传感器具有体积小巧、安装简便、成本低廉等优点,可以方便地集成到各种智能设备中。
二、DHT11 传感器的应用领域DHT11 传感器广泛应用于以下领域:1.智能家居:用于监控室内温湿度,调节空调、加湿器等设备的工作状态;2.农业:用于监测温室、大棚等农业生产环境的温湿度,指导农业生产;3.工业生产:用于监测生产线、仓库等工业环境的温湿度,保证产品质量;4.医疗保健:用于监测医院病房、手术室等医疗环境的温湿度,为患者创造舒适的治疗环境。
三、DHT11 传感器的工作原理DHT11 传感器的工作原理主要是基于湿敏电阻。
传感器内部有一对热敏电阻和湿敏电阻,分别用于测量温度和湿度。
当环境中的温湿度发生变化时,热敏电阻和湿敏电阻的电阻值也会随之改变。
传感器内部单片机通过测量这两个电阻值的变化,计算出当前环境的温度和湿度。
四、DHT11 传感器的接线方式与注意事项DHT11 传感器的接线方式分为三线制和两线制。
三线制接线方式为:VCC(电源正极)、GND(电源负极)和DAT(数据输出)。
两线制接线方式为:VCC(电源正极)和DAT(数据输出)。
在接线时,需要注意以下几点:1.接线时,请确保电源电压与传感器的工作电压相匹配;2.接线时,请使用屏蔽线,以减小外部干扰;3.接线时,请保持接线牢固可靠,避免松动。
dht11使用手册
dht11使用手册
(原创版)
目录
1.DHT11 简介
2.DHT11 的功能
3.DHT11 的使用方法
4.DHT11 的优点和局限性
5.DHT11 的应用领域
正文
一、DHT11 简介
DHT11 是一款基于单片机技术的温湿度传感器,具有体积小、精度高、响应速度快等特点。
它可以实时监测环境温度和湿度,并将检测到的数据通过数字信号输出,便于后端处理。
二、DHT11 的功能
1.实时监测环境温度:DHT11 可以实时测量环境温度,并将温度值以数字信号输出。
2.实时监测环境湿度:DHT11 可以实时测量环境湿度,并将湿度值以数字信号输出。
3.数字信号输出:DHT11 采用数字信号输出,方便后端处理和分析数据。
三、DHT11 的使用方法
1.连接电路:根据电路图连接 DHT11 的 VCC、GND、DATA 等引脚。
2.上传程序:将编写好的程序上传至单片机,启动 DHT11 的温湿度检测功能。
3.数据接收与处理:通过单片机接收 DHT11 输出的数字信号,并进行数据处理和分析。
四、DHT11 的优点和局限性
1.优点:体积小、精度高、响应速度快、使用简便、成本低。
2.局限性:抗干扰能力较弱,受环境影响较大,不能应用于高温高湿环境。
五、DHT11 的应用领域
1.智能家居:实时监测室内温湿度,调节空调、加湿器等设备。
2.农业生产:监测温室大棚内温湿度,调节通风、灌溉等措施。
3.医疗保健:监测病房、手术室等场所的温湿度,为患者提供舒适的环境。
数字温湿度传感器DHT11技术手册
数字温湿度传感器DHT11技术手册数字温湿度传感器DHT11技术手册1、简介1.1 产品概述1.2 技术特点1.3 应用领域2、基本原理2.1 温湿度检测原理2.2 信号传输原理3、产品规格3.1 电气特性3.2 温度测量范围3.3 湿度测量范围3.4 响应时间3.5 电源要求4、接口定义4.1 电路连接4.2 数据传输5、使用方法5.1 初始化传感器5.2 读取温度和湿度值5.3 温湿度校准6、示例代码6.1 Arduino示例代码6.2 Raspberry Pi示例代码7、常见问题解答7.1 读取温湿度数据错误7.2 传感器故障排除附件:数据手册、电路连接图、示例代码法律名词及注释:1、版权:指对作品享有复制、发行、展览、表演、放映、广播、信息网络传播、摄制、改编、翻译、汇编、修订、衍生利用及其复合利用等权利的控制。
2、商标:指为区别商品或者服务的来源而使用、在商品或者服务上使用的商号、标识、商标、服务标志。
3、专利:指在发明、实用新型和外观设计等技术领域,为了公开技术内容,推动技术进步,保护创造者的创造成果,授予创造者在一定时期内对其发明、实用新型和外观设计在特定范围内享有一定的专有权利。
本文档涉及附件:数据手册:详细描述了数字温湿度传感器DHT11的技术参数、使用方法等信息。
电路连接图:展示了数字温湿度传感器DHT11与主控设备的连接方式。
示例代码:提供了Arduino和Raspberry Pi的示例代码,帮助用户快速上手使用数字温湿度传感器DHT11:本文所涉及的法律名词及注释:1、版权:根据《著作权法》,版权是著作权人对其作品享有的权利。
2、商标:商标是产品或服务的标识,用于区别其来源并建立品牌形象。
3、专利:专利是发明人对其发明的技术所获得的独有权利,以鼓励创新和保护创新成果。
温湿度传感器DHT11C程序详解
#include<at89x52.h>#include<intrins.h>//加上这句下面的_nop_();就能用bit xianshiqiehuan;sbit dht11_dat=P1^6;unsigned char c,count, dht11temp,dht11dat;unsigned char dht11value[5];unsigned int x,y,z;unsigned char code dat[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,};delay(){unsigned char a;for(a=200;a>0;a--);}display(unsigned char x){P0=dat[(x%100)/10];//十位P1_2=0;delay();P1_2=1;P0=dat[(x%100)%10];//个位P1_3=0;delay();P1_3=1;}delay_1s(){unsigned int i=50000;while(i--);}delay_10us() //10us{_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}void delayms(unsigned char x) //1ms单位延时程序{unsigned char j;while(x--){for(j=0;j<123;j++){;}}}read_dht11(){ unsigned char i;dht11_dat=1; _nop_(); //起始dht11_dat=0;//拉低总线delayms(18);//手册要求大于18msdht11_dat=1;//拉高总线等待dht11回应while(dht11_dat); // 等待dht11回应若有回应dht11_dat=0;往下执行while(!dht11_dat);//回应后dht11将总线拉低80us,过后又将总线拉高,进入下一步while(dht11_dat); //拉高80us 又变低,往下执行进入50us延时for(i=0;i<24;i++){while(!dht11_dat);//50us过后...... dht11_dat=1;往下执行delay_10us();delay_10us();delay_10us();//延时30us,查看总线是高是低,dht11temp=0; //先默认为0处理if(dht11_dat) dht11temp=1; //1处理dht11dat=dht11dat<<1; //必须先移动再或若先或再移本次数据就移动了dht11dat=dht11dat|dht11temp;dht11value[i/8]=dht11dat;while(dht11_dat);//如果处理的是1,30us过后总线还是1,那就在此等待总线变为0进入下一个50us低电平,不然会重复进行0处理}}main(){delay_1s(); //要求上电等1秒,让dht11稳定EA=1;//开放中断TMOD=0x01;//设T0 为16位计数方式ET0=1;//定时0中断允许TR0=1;//开启TR0while(1){if(!xianshiqiehuan) //显示温度display(dht11value[2]) ;else{display(dht11value[0]) ; //显示湿度P0=0x92&0x7f; //千位显S 代表湿度P1_0=0;delay();P1_0=1;}}}dingshi() interrupt 1 //定时器0服务程序{TH0=0;TL0=0;count++;if(count==55){count=0;read_dht11();xianshiqiehuan=~xianshiqiehuan; } //在切换显示时采集,以防中断采样带来的显示闪烁}。
DHT11 温湿度传感器说明书
DHT11说明书温湿度传感器●具有抗冲击性及电气性能优良●完全标定●数字输出,单总线通讯●优异的长期稳定性●响应迅速、恢复时间快、抗干扰能力强产品简述DHT11是一款含有已校准数字信号输出的温湿度复合传感器,采用了自主研发的集成式数字温湿度元件,应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。
DHT11传感器内包含一个温湿度测量元件和一个高性能MCU。
应用范围DHT11温湿度传感器可以应用于农业、家电、汽车、气象、医疗等领域,如暖通空调、除湿机、冷链仓储、测试及检测设备、数据记录仪、湿度调节系统、医疗等。
图1.DHT11温湿度传感器1.传感器性能1.1相对湿度表1.湿度特性表参数测试条件最小典型最大单位量程范围附加说明15-95%RH精度2--±5%RH重复性--±1-%RH互换性-完全互换响应时间3τ(63%)-<6-s迟滞--±0.3-%RH漂移4典型值-<0.5-%RH/yr 1.2电气特性表2.电气特性表符号参数测试条件最小典型最大单位VCC供电电压- 3.35 5.5VI平均电流5休眠-60-µA 测量-1000-µAV OL低电平输出电压I L6=5mA0-300mVV OH高电平输出电压Rp<25kΩ0.9*VCC-VCC VV IL低电平输入电压下降0-0.3VV IH高电平输入电压上升0.7-VCC VRp上拉电阻7VCC=5V1 4.7100kΩT S采样周期-2--s实际使用中的一些特性如功耗、输入和输出的高、低电平电压等都取决于供电电压。
在使用传感器时,要使系统获得鲁棒性,请确保各参数在表2所给出的范围内。
1正常工作范围:8~85%RH,超出此范围,传感器读数会有偏差(在90%RH湿度下60小时后,漂移>3%RH)。
工作范围进一步限定在-20~60℃。
2此精度为传感器出厂检验时,在25℃、VCC=5V条件下的测试精度。
dht11中文说明书(1)
数字温湿度传感器DHT11►相对湿度和温度测量►全部校准,数字输出►卓越的长期稳定性►无需额外部件►超长的信号传输距离►超低能耗► 4 引脚安装►完全互换DHT11产品概述DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。
它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。
传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。
每个DHT11传感器都在极为精确的湿度校验室中进行校准。
校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。
单线制串行接口,使系统集成变得简易快捷。
超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。
产品为 4 针单排引脚封装。
连接方便,特殊封装形式可根据用户需求而提供。
应用领域►暖通空调►测试及检测设备►汽车►数据记录器►消费品►自动控制►气象站►家电►湿度调节器►医疗►除湿器型号测量范围测湿精度测温精度分辨力封装DH T1120-90%RH 0-50℃±5%RH±2℃14针单排直插1、传感器性能说明参数条件Min Typ Max单位湿度分辨率111%RH16Bit 重复性±1%RH 精度25℃±4%RH 0-50℃±5%RH 互换性可完全互换量程范围0℃3090%RH 25℃2090%RH 50℃2080%RH响应时间1/e(63%)25℃,1m/s 空气61015S迟滞±1%RH长期稳定性典型值±1%RH/yr温度分辨率111℃161616Bit 重复性±1℃精度±1±2℃量程范围050℃响应时间1/e(63%)630S建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻3、电源引脚DHT11的供电电压为3-。
温湿度检测器DHT11程序及显示程序
附录1:#include <regx52.h>#include <intrins.h>#include "DHT11.H"#include "DHT11.C"unsigned char range[4]={55,75,10,30}; //温湿度上下限初值unsigned char Humi_Temp_Tab[8]={6,9,0,0,7,8,0,0}; //数码管显示初值unsigned char numt1=0; //T1中断计数标志unsigned char numt0=0;unsigned char codeTab_Seg[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数码管段码 0-9unsigned char code Tab_Dig[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//位选第一位到第八位unsigned char code units[4]={0x39,0x71,0x77,0x76}; //单位C/F/RH/**********************************************//* 温湿度采集函数 *//**********************************************/void getdata(){if(start_DHT11()){read_DHT11();}if(check_sum()){Humi_Temp_Tab[0]=DHT_data.DH_H/10;Humi_Temp_Tab[1]=DHT_data.DH_H%10;Humi_Temp_Tab[2]=DHT_data.DH_L/10; //存储湿度数据if(flag == 0){Humi_Temp_Tab[4]=DHT_data.T_H/10;Humi_Temp_Tab[5]=DHT_data.T_H%10;Humi_Temp_Tab[6]=DHT_data.T_L/10;//存储摄氏温度数据}else{Humi_Temp_Tab[4]=(9*DHT_data.T_H/5+32)/10;Humi_Temp_Tab[5]=(9*DHT_data.T_H/5+32)%10;Humi_Temp_Tab[6]=(18*DHT_data.T_H+320)%100%10;//存储华氏温度数据}}}/**********************************************//* 主函数 *//**********************************************/void main(){delay_ms(500); //先进行延时等待进入稳定状态P0 = 0;P1 = 0x0C; //初始化P1口EA = 0;TR1 = 0;TR0 = 0;TMOD = 0x11; //设置定时器 T0和T1,且工作方式都为方式1TH1 = (65536-5000)/256;TL1 = (65536-5000)%256;TH0 = (65536-2000)/256;TL0 = (65536-2000)%256; //设定初值2msTR1 = 1;TR0 = 1;EA = 1;ET0 = 1;ET1 = 1; //打开中断定时器T0和T1PT1 = 0;PT0 = 1; //强制设置优先级delay_ms(1000);while(1){if(DHT_data.DH_H<range[0]) //湿度小于下限{bee = 0;delay_ms(100);bee = 1;delay_ms(100);}if(DHT_data.DH_H>range[1]) //湿度大于上限{bee = 0;delay_ms(100);bee = 1;delay_ms(100);}if(DHT_data.T_H<range[2]) //温度小于下限{bee = 0;delay_ms(10);bee = 1;delay_ms(10);}if(DHT_data.T_H>range[3]) //温度大于上限{bee = 0;delay_ms(10);bee = 1;delay_ms(10);}}}/**********************************************//* 定时器T0中断 *//**********************************************/void T0_timer() interrupt 1{unsigned char KData = 0x00;TR0 = 0; //进入T0后将T0中断关闭TH0 = (65536-2000)/256;TL0 = (65536-2000)%256;switch(numt0){case 0: P0 = 0; Seg_ce = 1; Seg_ce = 0; //段选开关if(flag2 == 1)P0 = Tab_Seg[range[0]/10];//显示湿度下限的十位elseP0 = Tab_Seg[Humi_Temp_Tab[0]];//显示读取的湿度的十位Seg_ce = 1; Seg_ce = 0;.P0 = Tab_Dig[0]; //位选第一位Dig_ce = 1; Dig_ce = 0;numt0++;break;case 1: P0 = 0; Seg_ce = 1; Seg_ce = 0;if(flag2 == 1)P0 = Tab_Seg[range[0]%10];//显示湿度下限的个位elseP0 = Tab_Seg[Humi_Temp_Tab[1]];//显示读取的湿度的个位Seg_ce = 1; Seg_ce = 0;P0 = Tab_Dig[1]; //位选第二位Dig_ce = 1; Dig_ce = 0;numt0++;break;case 2: P0 = 0; Seg_ce = 1; Seg_ce = 0;if(flag2 == 1)P0 = Tab_Seg[range[1]/10];//显示湿度上限的十位elseP0 = units[2];//显示单位RSeg_ce = 1; Seg_ce = 0;P0 = Tab_Dig[2]; //位选第三位Dig_ce = 1; Dig_ce = 0;numt0++;break;case 3: P0 = 0; Seg_ce = 1; Seg_ce = 0;if(flag2 == 1)P0 = Tab_Seg[range[1]%10];//显示湿度上限的个位elseP0 = units[3]; //显示单位H Seg_ce = 1; Seg_ce = 0;P0 = Tab_Dig[3]; //位选第四位Dig_ce = 1; Dig_ce = 0;numt0++;break;case 4: P0 = 0; Seg_ce = 1; Seg_ce = 0;P0 = Tab_Dig[4];//位选第五位,且同时拉低键盘第四行Dig_ce = 1; Dig_ce = 0;Key_ce = 0;KData = P0; //扫描键盘第四行switch(KData){case 0xfe:case 0xfd:case 0xfb:case 0xf7:default:break;}while(KData != 0xff){KData = P0;}Key_ce = 1;if(flag2 == 1)P0 = Tab_Seg[range[2]/10];//显示温度下限的十位elseP0 = Tab_Seg[Humi_Temp_Tab[4]];//显示读取的温度的十位Seg_ce = 1; Seg_ce = 0;numt0++;break;case 5: P0 = 0; Seg_ce = 1; Seg_ce = 0;P0 = Tab_Dig[5];//位选第六位,且同时拉低键盘第三行Dig_ce = 1; Dig_ce = 0;Key_ce = 0;KData = P0;//扫描键盘第三行switch(KData){case 0xfe:if(range[0]<range[1]&&flag2==1)range[0]++;break; //湿度下限加case 0xfd:if(range[1]<90&&flag2==1)range[1]++;break; //湿度上限加case 0xfb:if(range[2]<range[3]&&flag2==1range[2]++;break; //温度下限加case 0xf7:if(range[3]<50&&flag2==1)range[3]++;break; //温度上限加default:break;}while(KData != 0xff){KData = P0;}Key_ce = 1;if(flag2 == 1)P0 = Tab_Seg[range[2]%10];//显示温度下限的个位elseP0 = Tab_Seg[Humi_Temp_Tab[5]]-0x80; //显示读取温度的个位(带小数点的)Seg_ce = 1; Seg_ce = 0;numt0++;break;case 6: P0 = 0; Seg_ce = 1; Seg_ce = 0;P0 = Tab_Dig[6];//位选第七位,且同时拉低键盘第二行Dig_ce = 1; Dig_ce = 0;Key_ce = 0;KData = P0; //扫描键盘第二行switch(KData){case 0xfe:if(range[0]>20&&flag2==1)range[0]--;break; //湿度下限减case 0xfd:if(range[0]<range[1]&&flag2==1)range[1]--;break; //湿度上限减case 0xfb:if(range[2]>0&&flag2==1)range[2]--;break; //温度下限减case 0xf7:if(range[2]<range[3]&&flag2==1)range[3]--;break; //温度上限减default:break;}while(KData != 0xff){KData = P0;}Key_ce = 1;if(flag2 == 1)P0 = Tab_Seg[range[3]/10];//显示温度上限的十位elseP0 = Tab_Seg[Humi_Temp_Tab[6]];//显示读取温度的小数位的十位Seg_ce = 1; Seg_ce = 0;numt0++;break;case 7: P0 = 0; Seg_ce = 1; Seg_ce = 0;P0 = Tab_Dig[7];//位选第八位,且同时拉低键盘第一行Dig_ce = 1; Dig_ce = 0;Key_ce = 0;KData = P0; //扫描键盘第一行switch(KData){case 0xfe:flag2 = ~flag2;TR1 = ~TR1;break;//进入和退出限制调整模式case 0xfd:flag = ~flag;break;//进行华氏摄氏温度的转换设置case 0xfb:case 0xf7:default:break;}while(KData != 0xff){KData = P0;}Key_ce = 1;if(flag == 0&&flag2 == 0)P0 = units[0]; //显示单位Celse if(flag == 1&&flag2 == 0)P0 = units[1]; //显示单位Felse if(flag2 == 1)P0 = Tab_Seg[range[3]%10];//显示温度上限的个位Seg_ce = 1; Seg_ce = 0;numt0 = 0;break;default:numt0 = 0;break;}TR0 = 1; //打开T0}/**********************************************//* 定时器T1中断 *//**********************************************/void T1_timer() interrupt 3{TR1 = 0; //关闭T0TH1 = (65536-50000)/256;TL1 = (65536-50000)%256;if(numt1 == 25){getdata(); //采集数据numt1 = 0;}elsenumt1++;TR1 = 1; //打开T0}#ifndef __DHT11_h__#define __DHT11_h__#include <REGX52.H>/**********************************************//* 引脚定义 *//**********************************************/sbit DHT_bus = P2^0 ; //DHT11数据传输口sbit Key_ce=P1^3; //按键输出使能sbit Seg_ce=P1^0; //段选位sbit Dig_ce=P1^1; //位选位sbit bee = P2^1; //蜂鸣器控制口/**********************************************//* 函数声明 *//**********************************************/bit start_DHT11(void); //开始void read_DHT11(void); //读取void delay_20us(void); //20us延时void delay_ms(unsigned char m); //N ms延时bit check_sum(void); //和校验/**********************************************//* 宏定义 *//**********************************************/#define HIGH 1#define LOW 0/**********************************************//* 变量定义 *//**********************************************/#define DHT_timeover 5 //高电平维持时间,用于识别“数据0”和“数据1”bit flag2 = 0; //设置调节上下限模式转换标志bit flag=0; //设置摄氏和华氏温度模式转换标志/**********************************************//* 结构体 *//**********************************************/struct DHT_data{unsigned char DH_H; //湿度整数unsigned char DH_L; //湿度小数unsigned char T_H; //温度整数unsigned char T_L; //温度小数unsigned char Checksum; //校验和}DHT_data;#endif#include "DHT11.h"#include <intrins.h>/**********************************************//* 开始 DHT11 温湿度计 *//* 输入:无 *//* 输出:应答标志 0:应答失败 1:应答成功 *//**********************************************/bit start_DHT11(void){bit DHT_start;DHT_start = 0;DHT_bus = HIGH;DHT_bus = LOW; //拉低18ms以上delay_ms(18);TR0 = 0;DHT_bus = HIGH;delay_20us();delay_20us(); //拉高20~40uswhile(!DHT_bus){DHT_start = 1;} //DHT应答,DHT拉低80us后拉高80us,然后开始传输数据//数据(40bit)=8bit湿度整数+8bit湿度小数+8bit温度整数+8bit 温度小数+8bit校验和while(DHT_bus){};return(DHT_start); //应答成功返回1}/**********************************************//* 读取 DHT11 温湿度计 *//* 读取结果存在DHT_data结构体内 *//* 输入:无输出:无 *//**********************************************/void read_DHT11(void){unsigned char m,n,timer_dht;unsigned char *p;p=&DHT_data.DH_H; //数据放在DHT_date的结构体中for(m=0;m<5;m++){for(n=0;n<8;n++){while(~DHT_bus); //DHT拉低12-14us表示1bit数据开始timer_dht=0x00;while(DHT_bus) //随后DHT拉高总线,单片机通过高电平维持的时间判断“数据0”还是“数据1”{ //数据0维持26~28us高电平,数据1维持116~118us高电平timer_dht++; //由于此处对延时时间的长度要求很高,所以采用另一种办法判断}if(timer_dht>DHT_timeover){*p<<=1;*p|=0x01;}else{*p<<=1;*p&=0xfe;}}p++;}TR0 = 1;}/**********************************************//* 20us 精确延时 *//* 51用在12Mhz晶振下 *//* 调用函数使用LCALL和RET指令,共花费4个周期 *//* 因此只有16个NOP *//**********************************************/.void delay_20us(void){_nop_ ();_nop_ ();_nop_ ();_nop_ ();_nop_ ();_nop_ ();_nop_ ();_nop_ ();_nop_ ();_nop_ ();_nop_ ();_nop_ ();_nop_ ();_nop_ ();_nop_ ();_nop_ ();}/**********************************************//* N ms 延时 *//* while()额外占用约5周期 *//* 因此内层while(40--)20us 大约1ms *//* Nms延时函数(未测试) *//**********************************************/void delay_ms(unsigned char m){unsigned char n = 38;while(m--){while(n--){delay_20us();}}}/**********************************************//* 校验和判断 *//* 校验位 = 湿度整数位+湿度小数位+温度整数位+温度小数位之和 *//* 校验正确返回:1 失败返回:0 *//**********************************************/bit check_sum(void){if(DHT_data.Checksum==(DHT_data.DH_H+DHT_data.DH_L+DHT_data.T _H+DHT_data.T_L))return(1); //校验正确elsereturn(0); //校验失败}Word 资料。
dht11模块测量温湿度的流程
DHT11模块测量温湿度的流程概述本文将介绍D HT11模块的使用方法,包括连接电路、读取数据的流程以及温湿度的计算方法。
连接电路首先,我们需要将DH T11模块与单片机进行连接。
需要使用3个引脚:V C C、GN D和数据引脚。
具体的连接方式如下:-将DH T11模块的VC C引脚连接到单片机的3.3V或5V电源引脚上。
-将DH T11模块的GN D引脚连接到单片机的地(GN D)引脚上。
-将DH T11模块的数据引脚连接到单片机的任意可用的数字引脚上。
连接完成后,我们可以开始测量温湿度了。
测量温湿度的流程1.初始化在开始测量之前,我们需要对DH T11模块进行初始化。
初始化的步骤包括向D HT11发送一个低电平的信号,并延时至少18毫秒。
这个低电平信号将引导D HT11进入测量模式。
2.接收数据初始化完成后,D HT11模块会将测量到的温湿度数据以串行的形式发送回来。
我们需要准备好接收数据的缓冲区,并准备接收数据的引脚。
3.解析数据接收到数据后,我们需要对它进行解析。
D H T11模块发送的数据包括温度和湿度的整数部分和小数部分。
我们需要按照一定的规则将这些数据进行解析,得到最终的温度和湿度数值。
4.计算温湿度解析完数据后,我们可以根据DH T11模块的计算公式来得到真实的温度和湿度数值。
这个公式在D HT11模块的数据手册中有详细的说明。
5.显示结果最后,我们可以将测量得到的温湿度数据显示在单片机的L CD屏幕上,或者通过串口进行输出。
以上就是使用DH T11模块测量温湿度的完整流程。
通过连接电路、初始化、接收数据、解析数据和计算温湿度,我们可以准确地测量环境中的温度和湿度,为后续的应用提供数据支持。
小结本文介绍了使用D HT11模块测量温湿度的流程。
通过连接电路、初始化、接收数据、解析数据和计算温湿度,我们可以轻松地获取环境的温湿度数据。
这对于许多物联网和环境监测应用来说是非常重要的。
希望通过本文的介绍,你能够更好地理解和应用DH T11模块。
DHT11说明
用户单片机发送一次开始信号后,DHT11 从低功耗模式转换到高速模式,待主机开始信号结束后,DHT11 发送响应信号,送出 40bit 的数据,并触发一次信采集。
信号发送如图所示。
数据时序图注:主机从 DHT11 读取的温湿度数据总是前一次的测量值,如两次测间隔时间很长,请连续读两次以第二次获得的值为实时温湿度值。
外设读取步骤步骤一:DHT11 上电后(DHT11 上电后要等待 1S 以越过不稳定状态在此期间不能发送任何指令),测试环境温湿度数据,并记录数据,同时 DHT11 的 DATA 数据线由上拉电阻拉高一直保持高电平;此时DHT11 的DATA 引脚处于输入状态,时刻检测外部信号。
步骤二:单片机的 I/O 设置输出低电平,且低电平保持时间不能小于18ms,然后单片机的 I/O置高电位,为输入状态,等待 DHT11 作出回答信号,发送信号如图所示:步骤三:DHT11 的 DATA 引脚检测到外部信号有低电平时,等待外部信号低电平结束,延迟后 DHT11 的 DATA引脚处于输出状态,输出 80 微秒的低电平作为应答信号,紧接着输出 80 微秒的高电平通知外设准备接收数据,单片机的 I/O 检测到有低电平(DHT11 回应信号)后,等待 80 微秒的高电平后的数据接收,发送信号如图所示:步骤四:由 DHT11 的 DATA 引脚输出 40 位数据,微处理器根据 I/O 电平的变化接收 40 位数据。
“0”的格式为: 50 微秒的低电平和 26-28 微秒的高电平,“1”的格式为: 50 微秒的低电平加 70微秒的高电平。
“0”、“1”格式信号如图所示:结束信号:DHT11 的 DATA 引脚输出 40 位数据后,继续输出低电平 50 微秒后转为输入状态,由于上拉电阻随之变为高电平。
自动测量数据重装,等待外部信号的到来。
自我理解:单片机响应部分:开始—》18ms的低电平——》置高电平(等待信号)——》检测到被拉低80us ——》紧接是高电平80us——》 40数据位——》最后50us低电平——》结束8位湿整+ 8位湿小+8位温整+ 8位温小+8位校验码。
DHT11中文资料及C例程
while(dht11 == 0 && count++ < NUMBER); if(count >= NUMBER) { status = ERROR; //设定错误标志 return 0; //函数执行过程发生错误就退出函数 } //26-28us 的高电平表示该位是 0,为 70us 高电平表该位 1 DHT11_Delay_10us(); DHT11_Delay_10us(); DHT11_Delay_10us(); //延时 30us 后检测数据线是否还是高电平 if(dht11 != 0) { //进入这里表示该位是 1 value++; //等待剩余(约 40us)的高电平结束 while(dht11 != 0 && count++ < NUMBER) { dht11 = 1; } if(count >= NUMBER) { status = ERROR; //设定错误标志 return 0; } } } return (value); }
#define NUMBER
20
#define SIZE 5 static unsigned char status; //存放五字节数据的数组 static unsigned char value_array[SIZE]; /*可在其他的文件引用温湿度值,实际是温度的整数的 10 倍 如 dht11 读回的温度是 26,则 temp_value = 260, 湿度同理*/ int temp_value, humi_value;
1/e(63%)25℃, 1m/s 空气
Max 1
单位 %RH Bit %RH %RH %RH %RH %RH %RH S %RH %RH/yr
利用DHT11测温度湿度实验报告
微电子工艺实验题目气压温度测量系统学生姓名洪强学号***********学院电子与信息工程学院专业电子科学与技术指导教师曹鸿霞二O一五年十一月二十二日目录目录................................................ 错误!未定义书签。
1 系统描述.......................................... 错误!未定义书签。
1.1 课程设计题目 (2)1.2 系统设计方案介绍 (2)1.3 方案论证 (3)2 硬件电路设计 (3)2.1 LCD1602液晶显示模块 (3)2.1.1 LCD1602原理图及引脚说明 (4)2.1.2 LCD1602操作时序 (5)2.2 AT89C52单片机 (6)2.3 DHT11传感器模块 (7)2.3.1 DHT11原理图及引脚说明 (7)2.3.2 DHT11数据帧 (8)2.3.3 DHT11电气特性 (8)2.3.4 DHT11操作时序 (9)2.4 蜂鸣器模块 (10)2.5 DHT11温湿度检测设计图 (11)3 软件程序设计 (11)3.1 程序流程图 (11)3.2程序设计 (12)3.2.1主程序 (12)3.2.2 LCD显示程序 (13)3.2.3蜂鸣器程序 (20)4 实验结果 (21)5 实验总结 (22)参考文献 (22)测量气压温度测量系统洪强南京信息工程大学电子科学与技术,南京 210044摘要本实验基于使用STC89C52单片机、DHT11传感器模块、1602液晶显示屏模块以及报警模块。
简单明了的实现的可提要求。
DHT11数字温湿度传感器把采集到的温湿度数据传给单片机。
经过单片机的处理。
准确的显示到液晶屏上。
并对温湿度设置上下限。
越限报警。
)关键词:单片机DHT11传感器1602液晶显示屏STC89C52 报警1 系统描述1.1 课程设计题目温度测量及显示要求:①基于52系列单片机平台和DHT11温湿度传感器完成温湿度的测量;②温度测量数据的显示,可以用LCD1602显示;③对温湿度设置上下限,超过限度报警1.2 系统设计方案介绍电路总体上分为温湿度采集部分、中央处理器、显示模块以及报警模块部分。
dht11使用手册
dht11使用手册摘要:一、产品简介二、功能特点三、使用方法四、注意事项五、故障处理六、售后服务正文:一、产品简介DHT11是一款具有高精度、低功耗的温湿度传感器。
它广泛应用于家庭、办公室、实验室等场所,可以帮助用户实时了解环境温湿度,为舒适生活提供科学依据。
本产品具有小巧的体积、简单的接口和稳定的性能,易于集成到各种智能设备中。
二、功能特点1.测量范围:温度-40℃~+70℃,湿度0%~100%2.精度:温度±0.5℃,湿度±5%3.响应时间:1秒4.低功耗:小于1μA5.抗干扰能力强:能适应各种恶劣环境6.自带校准功能:确保测量数据的准确性三、使用方法1.连接电路:将DHT11的VCC、GND和DATA引脚分别连接到电源、地和数据处理模块。
2.数据读取:通过I2C或SPI接口从DHT11读取温湿度数据。
3.数据处理:对读取到的数据进行处理,得到实际温湿度值。
4.显示和应用:将处理后的数据显示在相关设备上,或根据需求进行应用。
四、注意事项1.避免暴力拆卸和损坏传感器元件。
2.连接线路时,确保接头牢固可靠,防止松动。
3.传感器应安装在通风、避免阳光直射的地方。
4.定期检查传感器连接和电路,确保正常工作。
五、故障处理1.若传感器无法正常工作,首先检查电路连接是否正确。
2.若连接正常,检查电源电压是否稳定。
3.若电源电压正常,尝试重新校准传感器。
4.若仍无法正常工作,请联系售后服务。
六、售后服务本公司为您提供完善的售后服务,如有任何疑问或需求,请随时联系。
我们将尽快解决您的问题,确保您的权益。
总之,DHT11是一款性能优越的温湿度传感器,通过本文的介绍,相信您已经了解了它的功能特点和使用方法。
在实际应用中,请注意相关事项,确保传感器稳定工作。
如遇到故障,可参照本文进行处理。
DHT11中文说明书
D H T11中文说明书-CAL-FENGHAI.-(YICAI)-Company One1数字温湿度传感器DHT11►相对湿度和温度测量►全部校准,数字输出►卓越的长期稳定性►无需额外部件►超长的信号传输距离►超低能耗►4 引脚安装►完全互换DHT11产品概述DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。
它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。
传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。
每个DHT11传感器都在极为精确的湿度校验室中进行校准。
校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。
单线制串行接口,使系统集成变得简易快捷。
超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。
产品为 4 针单排引脚封装。
连接方便,特殊封装形式可根据用户需求而提供。
应用领域►暖通空调►测试及检测设备►汽车►数据记录器►消费品►自动控制►气象站►家电►湿度调节器►医疗►除湿器型号测量范围测湿精度测温精度分辨力封装DHT1120-90%RH 0-50℃±5%RH±2℃14针单排直插1、传感器性能说明参数条件Min Typ Max单位湿度分辨率111%RH16Bit重复性±1%RH精度25℃±4%RH0-50℃±5%RH互换性可完全互换量程范围0℃3090%RH25℃2090%RH50℃2080%RH61015S响应时间1/e(63%)25℃,1m/s 空气迟滞±1%RH长期稳定性典型值±1%RH/yr 温度分辨率111℃161616Bit重复性±1℃精度±1±2℃量程范围050℃响应时间1/e(63%)630S建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻3、电源引脚DHT11的供电电压为3-。
dht11使用手册
dht11使用手册摘要:1.引言2.DHT11传感器简介3.DHT11传感器参数4.DHT11传感器接线方式5.DHT11传感器使用方法6.DHT11传感器数据处理7.DHT11传感器常见问题及解决方法8.总结正文:【引言】DHT11是一款非常实用的温湿度传感器,广泛应用于各种智能设备中。
本文将详细介绍DHT11传感器的使用手册,帮助用户更好地了解和使用该传感器。
【DHT11传感器简介】DHT11是一款由Dallas公司生产的温湿度传感器,具有准确、灵敏、稳定等特点。
它可以通过简单的接口与各种微控制器或单片机相连接,实现对环境温湿度的测量。
【DHT11传感器参数】DHT11的主要参数包括:- 工作电压:3.3V或5V- 工作电流:1.5mA- 测量范围:温度-40℃~+80℃,湿度0%~100%- 测量精度:温度±0.5℃,湿度±5%【DHT11传感器接线方式】DHT11传感器有四根引脚,分别为VCC(电源正极)、GND(电源负极)、DHT1(数据输出)和DHT2(数据输出)。
通常情况下,VCC接3.3V或5V电源,GND接电源负极,DHT1接单片机的数据输入脚,DHT2接单片机的数据输入脚。
【DHT11传感器使用方法】1.连接电路:将DHT11传感器的VCC接3.3V或5V电源,GND接电源负极,DHT1接单片机的数据输入脚,DHT2接单片机的数据输入脚。
2.初始化:配置单片机的相关寄存器,使能DHT11数据输出口的串行通信功能。
3.读取数据:通过单片机的串行通信功能,读取DHT11传感器输出的温湿度数据。
4.数据处理:将读取到的温湿度数据进行解析,并转换为实际温湿度值。
【DHT11传感器数据处理】DHT11传感器输出的数据为两个字节,其中高字节表示湿度值,低字节表示温度值。
湿度值范围为0%~100%,温度值范围为-40℃~+80℃。
解析数据时,需要将两个字节的高四位和低四位分别进行处理,得到湿度值和温度值。
2.温湿度传感器DHT11
一:在裸机上完成对 DHT11 的驱动。
打开配套程序下裸机文件夹—温湿度传感器 DHT11 下的工程文件,看到主
函数如下:(代码取用模块化编程,其他函数请看工程文件)
/**************************************/
/*
WeBee 团队
*/
/*
Zigbee 学习例程
*/
首先理清一下思路,我们要实验的功能是终端设备读取 DHT11 温湿度信息, 通过点播方式发送到协调器,协调器通过通常打印出来。在串口调试助手上面 显示。这就实现了无线温度采集。(使用点播的原因是终端设备有针对性地发 送数据给指定设备,不像广播和组播可能会造成数据冗余,关于点播内容请参 考《zigbee 实战演练》点播章节,这里不再累赘。)
T_H[2]=shidu_shi+48; T_H[3]=shidu_ge%10+48;
if ( AF_DataRequest( &Point_To_Point_DstAddr, &SampleApp_epDesc, SAMPLEAPP_POINT_TO_POINT_CLUSTERID, 4, T_H,
3. #include "UART.H"
4. #include "DHT11.H"
5. /***************************
主函数
6. ***************************/
7. void main(void)
8. {
9. Delay_ms(1000); //让设备稳定
13
10. InitUart();
//串口初始化
11. while(1)
dht11使用手册
dht11使用手册(原创实用版)目录1.DHT11 简介2.DHT11 的功能与特点3.DHT11 的使用方法4.DHT11 的安装与连接5.DHT11 的注意事项6.DHT11 的故障排除正文【DHT11 简介】DHT11 是一款数字温湿度传感器,它可以实时测量环境内的温度和湿度,并将数据通过数字信号传输到相关的设备中。
DHT11 具有测量精度高、响应速度快、可靠性强等特点,广泛应用于智能家居、农业生产、实验室环境监测等领域。
【DHT11 的功能与特点】DHT11 的主要功能是测量环境内的温度和湿度,并将数据以数字信号的形式输出。
其主要特点如下:1.测量精度高:DHT11 的温度测量范围为 -40℃至 +85℃,湿度测量范围为 0% 至 100%,测量精度分别为±0.5℃和±5%。
2.响应速度快:DHT11 的响应速度非常快,可以在短时间内输出准确的测量数据。
3.可靠性强:DHT11 采用数字化信号输出,具有较强的抗干扰能力,能够在恶劣环境下正常工作。
4.接口简单:DHT11 采用单线制串行通信接口,便于与各种微控制器、计算机等设备相连。
【DHT11 的使用方法】在使用 DHT11 时,需要将其与相关的微控制器、计算机等设备相连。
以下是 DHT11 与 Arduino 连接的示例:1.将 DHT11 的数据线连接到 Arduino 的数字接口,如 D2 和 D3。
2.将 DHT11 的 VCC 连接到 Arduino 的 5V 接口。
3.将 DHT11 的 GND 连接到 Arduino 的 GND 接口。
4.上传相关代码到 Arduino,以实现对 DHT11 的控制和数据读取。
【DHT11 的安装与连接】DHT11 的安装与连接较为简单,以下是一般步骤:1.根据实际需求选择合适的安装位置,如墙壁、天花板等。
2.使用螺丝钉将 DHT11 固定在安装位置上。
3.将 DHT11 的数据线、VCC 线和 GND 线分别连接到相应的设备接口上。
01_ZigBee组网实验说明-温湿度DHT11
01_ZigBee传感器组网——温湿度传感器DHT11实验现象:使用DHT11温湿度传感器判断当前温湿度;终端节点采集温湿度数据,通过自身串口输出并可与协调器组网,发送采集的数据给协调器,协调器接收后串口打印输出。
传感器介绍:DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。
传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。
每个DHT11传感器都在即为精确的湿度校验室中进行校准。
校准系数以程序的形式存在OTP内存中,传感器内部在检测型号的处理过程中要调用这些校准系数。
单线制串行接口,使系统集成变得简易快捷。
超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为给类应用甚至最为苛刻的应用场合的最佳选择。
产品为4针单排引脚封装,连接方便。
实现平台:ZigBee传感器节点DHT11硬件电路图硬件说明:DHT11是单总线的传感器,模块上电后有上电指示灯指示,CMD和DATA都是同一根线的。
实验过程:分三个步骤,如下:一:下载EndDerviceEB至ZigBee节点二:下载CoordinatorEB至ZigBee节点三:终端节点与协调器组网一:下载EndDerviceEB至ZigBee节点打开例程,下载器连接好ZigBee传感器节点,下载EndDerivceEB至终端节点。
运行程序,ZigBee节点通过USB连接到电脑,打开电脑串口,串口设置如下:波特率:115200,数据位:8位,停止位:1位,无奇偶校验位。
注意:和协调器组网成功后,Enddevice的串口才能打印出传感器的信息。
二:下载CoordinatorEB至ZigBee节点打开例程,下载器连接好ZigBee传感器节点,下载CoordinatorEB程序作为协调器节点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
typedef unsigned long U32; /* defined for unsigned 32-bits integer variable无符号32位整型变量*/
//----------------------------------------------//
//----------------IO口定义区--------------------//
//----------------------------------------------//
sbit P2_0 = P2^0 ;
DHT接收到主机的开始信号后,等待主机开始信号结束,然后发送低电平响应信号。主机发送开始信号结束后,延时等待20-40us后,读取DHT的回应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可,总线线由上拉电阻拉高。
9.2、DHT开始发送数据流程
图7.2读DHT数据流程
主机发送开始信号后,延时等待20us-40us后读取DHT的回应信号,读取总线为低电平,说明DHT发送响应信号,DHT发送响应信号后,再把总线拉高,准备发送数据,每一bit数据都以低电平开始,格式见下面图示。如果读取响应信号为高电平,则DHT没有响应,请检查线路是否连接正常。
2、产品特性
湿温度传感器的一体化结构能相对的同时对相对湿度和温度进行测量 。
数字信号输出,从而减少用户信号的预处理负担。
单总线结构输出有效的节省用户控制器的I/O口资源。并且,不需要额外电器元件。
独特的单总数据传输线协议使得读取传感器的数据更加便捷。
全部校准。编码方式为8位二进制数。
40bit二进制数据输出。其中湿度整数部分占1Byte,小数部分1Byte;温度整数部分1Byte,小数部分1Byte。其中,湿度为高16位。最后1Byte为校验和。
5、订货信息
型号
测量范围
测湿精度
测温精度
分辨力
封装
DHT11
20-90%RH 0-50℃
±5%RH
±2℃
1
4针单排直插
6、传感器性能说明
参数
条件
Min
Typ
Max
单位
湿度
分辨率
1
1
1
%RH
8
Bit
重复性
±1
%RH
精度
25℃
±4
%RH
0-50℃
±5
%RH
互换性
可完全互换
量程范围
0℃
30
90
%RH
25℃
12.1工作与贮存条件
超出建议的工作范围可能导致高达3%RH的临时性漂移信号。返回正常工作条后,传感器会缓慢地向校准状态恢复。要加速恢复进程/可参阅7.3小节的“恢复处理”。在非正常工作条件下长时间使用会加速产品的老化过程。12.2暴露在化学物质中
电阻式湿度传感器的感应层会受到化学蒸汽的干扰,化学物质在感应层中的扩散可能导致测量值漂移和灵敏度下降。在一个纯净的环境中,污染物质会缓慢地释放出去。下文所述的恢复处理将加速实现这一过程。高浓度的化学污染会导致传感器感应层的彻底损坏。
图5.0典型电路连接
8、数据格式及处理
8.1、格式
数字湿温度传感器采用单总线数据格式。即,单个数据引脚端口完成输入输出双向传输。其数据包由5Byte(40Bit)组成。一次通讯时间最大3ms,数据分小数部分和整数部分,具体格式在下面说明。
DATA用于微处理器与DHTxx之间的通讯和同步,采用单总线数据格式,当前小数部分用于以后扩展,现读出为0。操作流程如下:
12.5光线
长时间暴露在太阳光下或强烈的紫外线辐射中,会使性能降低。
12.6配线注意事项
DATA信号线材质量会影响通讯距离和通讯质量,推荐使用高质量屏蔽线。
13、封装信息
14、焊接信息
手动焊接,在最高260℃的温度条件下接触时间须少于10秒。
15、注意事项
(1)避免结露情况下使用。
(2)长期保存条件:温度10-40℃,湿度60%以下。
通过单总线访问DHTxx顺序归纳如下:
主机发开始信号
主机等待接收DHTxx响应信号
主机连续接收40Bit的数据和校验和
数据处理
9.1、主机复位信号和DHT响应信号
图7.1 DHT复位时序
用户主机发送一次开始信号(低电平)DHT从低速模式转换到高速模式,等待主机开始信号结束(拉高)后,DHT发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据。注意:总线线空闲状态为高电平,主机把总线线拉低等待DHT响应,主机把总线线拉低必须大于18毫秒,保证DHT能检测到起始信号。
sbit P2_1 = P2^1 ;
sbit P2_2 = P2^2 ;
sbit P2_3 = P2^3 ;
//----------------------------------------------//
//----------------定义区--------------------//
//----------------------------------------------//
typedef signed char S8; /* defined for signed 8-bits integer variable有符号8位整型变量*/
typedef unsigned int U16; /* defined for unsigned 16-bits integer variable无符号16位整型变量*/
byte4 byte3 byte2 byte1 byte0
00101101 00000000 00011100 00000000 01001001
整数小数整数小数校验和
湿度温度校验和
由以上数据就可得到湿度和温度的值,计算方法:
humi (湿度)= byte4 . byte3=45.0 (%RH)
temp (温度)= byte2 . byte1=28.0 (℃)
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
7、连接接口说明
DHTxx数字湿温度传感器连接电路简单,只需要占用控制器一个I/O口即可完成上下位的连接。典型应用电路如下图所示。另外,建议连接线长度短于20时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻,如图5.0所示。
一次完整的数据传输为40bit,高位先出。
数据格式:8bit湿度整数数据+8bit湿度小数数据
+8bit温度整数数据+8bit温度小数数据
+8bit校验和
校验和数据为前四个字节相加。
具体见表6.1:
湿度
温度
校验
整数
小数
整数
小数
8Bit
8Bit
8Bit
8Bit
8Bit
8.2、数据编码及处理
传感器数据输出的是未编码的二进制数据。数据(湿度、温度、整数、小数)之间应该分开处理。如果,某次从传感器中读取如下5Byte数据:
卓越的长期稳定性,超低功耗。
4引脚安装,超小尺寸。
各型号管脚完全可以互换。
测量湿度范围从20%RH到90%RH;测量温度范围从0℃到50℃。
适用范围包括恒湿控制,消费家电类产品,温湿度计等领域。
3、外型与引脚排列
引脚说明:
Vcc正电源
Dout输出
NC空脚
GND地- 1 -
图3.0 DHT外型及管脚
4、详细引脚说明:
数字温湿度传感器DHT11
1、概述
DHTxx系列数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式测湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此,该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHTxx传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行输出接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。本产品为4针单排引脚封装,特殊封装形式可根据用户需求而提供。
typedef double F64; /* double precision floating point variable (64bits)双精度浮点数(64位长度)*/
//
#define uchar unsigned char
#define uint unsigned int
#define Data_0_time 4
9.3、数字‘0’信号表示方法
图7.3信号‘0’时序图
数字‘0’表示方法为,首先DHT把总线拉低12-14us然后拉高,高电平保持时间在26-28us这个范围内。则此比特为‘0’电平。
9.4、数字‘1’信号表示方法