收藏 分销(赏)

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

上传人:天**** 文档编号:4350920 上传时间:2024-09-11 格式:DOC 页数:14 大小:909.50KB 下载积分:8 金币
下载 相关 举报
数字温湿度传感器DHT11详解及例程利用串口显示.doc_第1页
第1页 / 共14页
数字温湿度传感器DHT11详解及例程利用串口显示.doc_第2页
第2页 / 共14页


点击查看更多>>
资源描述
数字温湿度传感器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 电源 正电源输入,3V5、5V DC 2 Dout 输出 单总线。数据输入/输出引脚 3 NC 空 空脚。扩展未用 4 GND 地 电源地 电源引脚,DHTxx得供电电压为 3、5~5、5V。传感器上电后,要等待 1s 以越过不稳定状态在此期间不要发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF 得电容,用以去耦滤波。 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℃ 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所示。 图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 00000 00000 整数 小数 整数 小数 校验与 湿度 温度 校验与 由以上数据就可得到湿度与温度得值,计算方法: 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接收到主机得开始信号后,等待主机开始信号结束,然后发送低电平响应信号。主机发送开始信号结束后,延时等待2040us后, 读取DHT得回应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可,总线线由上拉电阻拉高。 9、2、DHT开始发送数据流程 图7、2 读DHT数据流程 主机发送开始信号后,延时等待20us40us后读取DHT得回应信号,读取总线为低电平,说明DHT发送响应信号,DHT发送响应信号后,再把总线拉高,准备发送数据,每一bit数据都以低电平开始,格式见下面图示。如果读取响应信号为高电平,则DHT没有响应,请检查线路就是否连接正常。 9、3、数字‘0’信号表示方法 图7、3 信号‘0’时序图 数字‘0’表示方法为,首先DHT把总线拉低1214us然后拉高,高电平保持时间在2628us这个范围内。则此比特为‘0’电平。 9、4、数字‘1’信号表示方法 图7、4 信号‘1’时序图 数字‘1’表示方法为,首先DHT把总线拉低1214us然后拉高,高电平保持时间在116118us这个范围内。则此比特为‘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恢复处理 置于极限工作条件下或化学蒸汽中得传感器,通过如下处理程序,可使其恢复到校准时得状态。在5060℃与< 10%RH得湿度条件下保持2 小时(烘干);随后在2030℃与>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 <reg51、h> #include <intrins、h> // typedef unsigned char U8; /* defined for unsigned 8bits integer variable 无符号8位整型变量 */ typedef signed char S8; /* defined for signed 8bits integer variable 有符号8位整型变量 */ typedef unsigned int U16; /* defined for unsigned 16bits integer variable 无符号16位整型变量 */ typedef signed int S16; /* defined for signed 16bits integer variable 有符号16位整型变量 */ typedef unsigned long U32; /* defined for unsigned 32bits integer variable 无符号32位整型变量 */ typedef signed long S32; /* defined for signed 32bits 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 U8data; 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 (void) { U8 i; for(i=0;i<8;i++) { U8FLAG=2; // P2_1=0 ; //T P2_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 ; //T P2_1=1 ; //T // //超时则跳出for循环 if(U8FLAG==1)break; //判断数据位就是0还就是1 // 如果高电平高过预定0高电平值则数据位为 1 U8data<<=1; U8data|=U8temp; //0 }//rof } // //湿度读取子程序 // //以下变量均为全局变量 //温度高8位== U8T_data_H //温度低8位== U8T_data_L //湿度高8位== U8RH_data_H //湿度低8位== U8RH_data_L //校验 8位 == U8checkdata //调用相关子程序如下 // Delay;, Delay_10us;,; // void RH(void) { //主机拉低18ms P2_0=0; Delay(180); P2_0=1; //总线由上拉电阻拉高 主机延时20us Delay_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++); //数据接收状态 ; U8RH_data_H_temp=U8data; ; U8RH_data_L_temp=U8data; ; U8T_data_H_temp=U8data; ; U8T_data_L_temp=U8data; ; U8checkdata_temp=U8data; 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使用工作方式2 TH1 = 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) ; //发送到串口 //读取模块数据周期不易小于 2S Delay(20000); }//elihw }// main void 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; } } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服