1、实验五 温湿数据采集实验一、实验目的1了解智能传感器 DHT11 的原理与应用2掌握智能传感器 DHT11 的编程与操作方法3理解微处理器与湿度传感器 DHT11 之间的通讯二、实验材料1具有 USB 串口通讯的 PC 机 1 台2ADS1.2 集成开发软件 1 套3J-Link-ARM 仿真器及软件 1 套4NXP LPC2378 实验节点板 1 个5LCD 显示实验板 1 个6温湿度传感器模块 1 个三、实验原理振动传感器实验环境由 PC 机(安装有 Windows XP 操作系统、 ADS1.2 集成开发环境和 J-Link-ARM-V410i 仿真器) 、J-Link-ARM 仿真器、
2、NXP LPC2378 实验节点板、温湿度传感器、实验模块和 LCD 显示实验模块组成,如图 4.5.1 所示。图 4.5.1 传感器实验环境A 型接口 B 型接口USB 连接线J-Link-ARM仿真器实验节点板通讯模块接口传感模块接口显示模块接口20 针JTAG连接线PC 机1温湿度传感器简介(1)温度、湿度的相关概念由于温度与湿度不管是从由于温度与湿度不管是从物理量本身还是在实际人们的生活中都有着密切的关系,所以温湿度一体的传感器就会相应产生。温湿度传感器是指能将温度量和湿度量转换成容易被测量处理的电信号的设备或装置。市场上的温湿度传感器一般是测量温度量和相对湿度量。温度:度量物体冷热的
3、物理量,是国际单位制中7个基本物理量之一。在生产和科学研究中,许多物理现象和化学过程都是在一定的温度下进行的,人们的生活也和他密切相关。湿度:湿度很久以前就与生活存在着密切的关系,但用数量来进行表示较为困难。日常生活中最常用的表示湿度的物理量是空气的相对湿度。用%RH表示。在物理量的导出上相对湿度与温度有着密切的关系。一定体积的密闭气体,其温度越高相对湿度越低,温度越低,其相对湿度越高。其中涉及到复杂的热力工程学知识。有关湿度的一些定义:相对湿度:在计量法中规定,湿度定义为“物象状态的量”。日常生活中所指的湿度为相对湿度,用RH%表示。总之,即气体中(通常为空气中)所含水蒸气量(水蒸气压)与其
4、空气相同情况下饱和水蒸气量(饱和水蒸汽压)的百分比。绝对湿度:指单位容积的空气里实际所含的水汽量,一般以克为单位。温度对绝对湿度有着直接影响,一般情况下,温度越高,水蒸气发得越多,绝对湿度就越大;相反,绝对湿度就小。饱和湿度:在一定温度下,单位容积,空气中所能容纳的水汽量的最大限度。如果超过这个限度,多余的水蒸气就会凝结,变成水滴,此时的空气湿度变称为饱和湿度。空气的饱和湿度不是固定不变的,它随着温度的变化而变化。温度越高,单位容积空气中能容纳的水蒸气就越多,饱和湿度就越大。露点:指含有一定量水蒸气(绝对湿度)的空气,当温度下降到一定程度时所含的水蒸气就会达到饱和状态(饱和湿度)并开始液化成水
5、,这种现象叫做凝露。水蒸气开始液化成水时的温度叫做“露点温度”简称“ 露点”。如果温度继续下降到露点以下,空气中超饱和的水蒸气就会在物体表面上凝结成水滴。此外,风与空气中的温湿度有密切关系,也是影响空气温湿度变化的重要因素之一。(2)温度、湿度的测量方法湿度测量传感器常见的几个测量方法湿度测量技术来由已久。随着电子技术的发展,近代测量技术也有了飞速的发展。湿度测量从原理上划分二、三十种之多。对湿度的表示方法有绝对湿度、相对湿度、露点、湿气与干气的比值(重量或体积)等等。但湿度测量始终是世界计量领域中最著名的难题之一。一个看似简单的量值,深究起来,涉及相当复杂的物理化学理论分析和计算,初涉者可能
6、会忽略在湿度测量中必需注意的许多因素,因而影响2的合理使用。常见的湿度测量方法有:动态法(双压法、双温法、分流法) ,静态法(饱和盐法、硫酸法) ,露点法、干湿球法和形形色色的电子式传感器法。这里双压法、双温法是基于热力学P、V、T平衡原理,平衡时间较长,分流法是基于绝对湿气和绝对干空气的精确混合。由于采用了现代测控手段,这些设备可以做得相当精密,却因设备复杂,昂贵,运作费时费工,主要作为标准计量之用,其测量精度可达2%RH -1.5%RH。静态法中的饱和盐法,是湿度测量中最常见的方法,简单易行。但饱和盐法对液、气两相的平衡要求很严,对环境温度的稳定要求较高。用起来要求等很长时间去平衡,低湿点
7、要求更长。特别在室内湿度和瓶内湿度差值较大时,每次开启都需要平衡68小时。露点法是测量湿空气达到饱和时的温度,是热力学的直接结果,准确度高,测量范围宽。计量用的精密露点仪准确度可达0.2甚至更高。但用现代光电原理的冷镜式露点仪价格昂贵,常和标准湿度发生器配套使用。干湿球法,这是18世纪就发明的测湿方法。历史悠久,使用最普遍。干湿球法是一种间接方法,它用干湿球方程换算出湿度值,而此方程是有条件的:即在湿球附近的风速必需达到2.5m/s 以上。普通用的干湿球温度计将此条件简化了,所以其准确度只有57%RH,明显低于电子湿度传感器。显然干湿球也不属于静态法,不要简单地认为只要提高两支温度计的测量精度
8、就等于提高了湿度计的测量精度。需要强调两点:第一,由于湿度是温度的函数,温度的变化决定性地影响着湿度的测量结果。无论那种方法,精确地测量和控制温度是第一位的。须知即使是一个隔热良好的恒温恒湿箱,其工作室内的温度也存在一定的梯度。所以此空间内的湿度也难以完全均匀一致。第二,由于原理和方法差异较大,各种测量方法之间难以直接校准和认定,大多只能用间接办法比对。所以在两种测湿方法之间相互校对全湿程(相对湿度0100%RH)的测量结果,或者要在所有温度范围内校准各点的测量结果,是十分困难的事。例如通风干湿球湿度计要求有规定风速的流动空气,而饱和盐法则要求严格密封,两者无法比对。最好的办法还是按国家对湿度
9、计量器具检定系统(标准)规定的传递方式和检定规程去逐级认定。2数字温湿度传感器 DHT11(1)DHT11 简介DHT11数字温湿度传感器是广州奥松电子有限公司生产的一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存(一次性可编程只读存储器,One Time Program
10、mable Read Only Memory, OTPROM,简称OTP)中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选择。产品为 4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。图 4.5.2 DHT11 产品实物图(2)DHT11 的应用领域DHT11广泛应用在一下几个 方面 :暖通、空调、测试及检测设备、汽车数据记录器、消费品自动控制、气象站、家电、湿度调节器、医疗、除湿器(3)DHT11 的产品特点 相对湿度和温度测量 全部
11、校准,数字输出 卓越的长期稳定性 无需额外部件 超长的信号传输距离 超低能耗 4引脚安装 完全互换(4)DHT11 的外形尺寸图 4.5.3 DHT11 的外形尺寸图(5)产品参数DATANCVDDGNDDHT112314 VCCR125K图 4.5.4 DHT11 引脚图表 4.5.1 DHT11 引脚说明Pin 名称 注释1 VDD 供电 35.5VDC2 DATA 串行数据,单总线3 NC 空脚,请悬空4 GND 接地,电源负极表 4.5.2 DHT11 特性表参数 条件 Min Typ Max 单位湿度1 1 1 %RH分辨率8 Bit重复性 1 %RH25 4 %RH精度050 5
12、%RH互换性 可完全互换0 30 90 %RH25 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表 4.5.3 DHT11 电气特性参数 条件 min type max 单位供电 DC 3 5 5.5 V测量 0.5 2.5 mA平均 0.2 1 mA供电电流待机 100 150 uA采样周期 秒 1 次注: VDD=5V,T = 25,除非特殊标注
13、。采样周期间隔不得低于 1秒钟。(6)典型电路 典型应用1建议连接线长度短于20米时用5K 上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。示意图见图4.5.6。GNDVCCDATA 2Pin1Pin4PinMCU DHT11VDD5K图 4.5.6 DHT11 典型应用 1 典型应用2微处理器与 DHT11 的连接典型应用电路如图 4.5.7所示, DATA上拉后与微处理器的 I/O 端口相连。典型应用电路中建议连接线长度短于20米时用5.1K 上拉电阻,大于20m时根据实际情况降低上拉电阻的阻值。使用 3.5V 电压供电时连接线长度不得大于20cm。否则线路压降会导致传感器供电不足,
14、造成测量偏差。每次读出的温湿度数值是上一次测量的结果,欲获取实时数据,需连续读取两次,但不建议连续多次读取传感器,每次读取传感器间隔大于5秒即可获得准确的数据。图 4.5.7 DHT11 典型应用 2(7)串行通信说明(单线双向) 单总线说明DHT11 器件采用简化的单总线通信。单总线即只有一根数据线,系统中的数据交换、控制均由单总线 完成。设备(主机或从机)通过一个漏枀开路或三态端口连至该数据线,以允许设备在不发送数据时能够 释放总线,而让其它设备使用总线;单总线通常要求外接一个约 5.1k 的上拉电阻,这样,当总线闲置时, 其状态为高电平。由于它们是主从结极,只有主机呼叫从机时,从机才能应
15、答,因此主机访问器件都必须 严格遵循单总线序列,如果出现序列混乱,器件将不响应主机。 单总线传送及数据位定义DATA 用于微处理器与 DHT11 之间的通讯和同步,采用单总线数据格式,一次传送 40 位数据,高位先出。数据格式:8bit 湿度整数数据 + 8bit 湿度小数数据+8bit 温度整数数据 + 8bit 温度小数数据+8bit 校验位。 校验位数据定义8bit 湿度整数数据 + 8bit 湿度小数数据+8bit 温度整数数据 + 8bit 温度小数数据8bit校验位等于所得结果的末8位。示例一:接收到的 40 位数据为:0011 0101 0000 0000 0001 1000 0
16、000 0000 0100 1101湿度高 8 位 湿度低 8 位 温度高 8 位 温度低 8 位 校验位计算:0011 0101+0000 0000+0001 1000+0000 0000= 0100 1101接收数据正确:湿度:0011 0101=35H=53%RH 温度:0001 1000=18H=24示例二:接收到的 40 位数据为:0011 0101 0000 0000 0001 1000 0000 0000 0100 1001湿度高 8 位 湿度低 8 位 温度高 8 位 温度低 8 位 校验位计算:0011 0101+0000 0000+0001 1000+0000 0000 0
17、100 110101001101 不等于 0100 1001本次接收的数据不正确,放弃,重新接收数据。(8)数据时序图 VCCGND单 总 线主 机 发 送开 始 信 号拉 高 延 时准 备 输 出拉 高 并 延时 等 待数 据 0DHT响 应 输 出信 号 说 明 :主 机 信 号 DHT信 号图4.5.8 数据时序图总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11 能检测到起始信号。 DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号。主机发送开始信号结束后,延时等待20-40us后,读取DHT11的
18、响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可,总线由上拉电阻拉高。总线为低电平,说明DHT11 发送响应信号, DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是 0还是1。如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常。当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。VCCGND单 总 线信 号 说 明 :主 机 信 号 DHT信 号主 机 至 少 拉 低 18ms主 机 拉 高20-40usDHT响 应 信 号80usD
19、HT拉 高80us开 始 传 送 数 据图4.5.9 主机发送起始信号及从机响应信号数字0信号表示方法如图4.5.10所示。VCCGND单 总 线信 号 说 明 :主 机 信 号 DHT信 号1bit开 始50us DHT响 应 信 号80us下 一 bit开 始26us-28us表 示 0图4.5.10 数字0信号表示方法数字1信号表示方法如图4.5.11所示。VCCGND单 总 线信 号 说 明 :主 机 信 号 DHT信 号1bit开 始50us DHT响 应 信 号80us下 一 bit开 始70us表 示 1图4.5.11 数字0信号表示方法(9)应用信息 工作与贮存条件超出建议的工
20、作范围可能导致高达3%RH 的临时性漂移信号。返回正常工作条后,传感器会缓慢地向校准状态恢复。在非正常工作条件下长时间使用会加速产品的老化过程。 暴露在化学物质中电阻式湿度传感器的感应层会受到化学蒸汽的干扰,化学物质在感应层中的扩散可能导致测量值漂移和灵敏度下降。在一个纯净的环境中,污染物质会缓慢地释放出去。下文所述的恢复处理将加速实现这一过程。高浓度的化学污染会导致传感器感应层的彻底损坏。 恢复处理置于极限工作条件下或化学蒸汽中的传感器,通过如下处理程序,可使其恢复到校准时的状态。在50-60和70%RH的湿度条件下保持 5小时以上。 温度影响气体的相对湿度,在很大程度上依赖于温度。因此在测
21、量湿度时,应尽可能保证湿度传感器在同一温度下工作。如果与释放热量的电子元件共用一个印刷线路板,在安装时应尽可能将DHT11 远离电子元件,并安装在热源下方,同时保持外壳的良好通风。为降低热传导,DHT11与印刷电路板的其它部分的铜镀层应尽可能最小,并在两者之间留出一道缝隙。 光线长时间暴露在太阳光下或强烈的紫外线辐射中,会使性能降低。 配线注意事项DATA信号线材质量会影响通讯距离和通讯质量,推荐使用高质量屏蔽线。3DHT11 获取温湿度关键程序unsigned char U8FLAG,k;unsigned char U8count,U8temp;unsigned char U8T_data_
22、H;unsigned char U8T_data_L;unsigned char U8RH_data_H;unsigned char U8RH_data_L;unsigned char U8checkdata;unsigned char U8T_data_H_temp;unsigned char U8T_data_L_temp;unsigned char U8RH_data_H_temp;unsigned char U8RH_data_L_temp;unsigned char U8checkdata_temp;unsigned char U8comdata;unsigned char coun
23、t, count_r=0;unsigned int U16temp1;unsigned int U16temp2;void RH_com()/命令函数unsigned char i;unsigned int count;U8comdata=0; for(i=0;i180)U8comdata=(U8comdata=10)sndBuf0=U8T_data_H/10+0;sndBuf1=U8T_data_H%10+0;sndBuf2=.;sndBuf3=U8T_data_L/10+0;DispAscStr(xpos,ypos,sndBuf,4,DispChnStr(xpos,ypos,“度“,1,e
24、lsesndBuf0=U8T_data_H%10+0;sndBuf1=.;sndBuf2=U8T_data_L/10+0;DispAscStr(xpos,ypos,sndBuf,3,DispChnStr(xpos,ypos,“度“,1,DispChnStr(0,100,“湿度“,2,if(U8RH_data_H=10)sndBuf0=:;sndBuf1=U8RH_data_H/10+0;sndBuf2=U8RH_data_H%10+0;sndBuf3=.;sndBuf4=U8RH_data_L/10+0;sndBuf5=%;sndBuf6=R;sndBuf7=H;DispAscStr(xpos
25、,ypos,sndBuf,8,elsesndBuf0=:;sndBuf1=U8RH_data_H%10+0;sndBuf2=.;sndBuf3=U8RH_data_L/10+0;sndBuf4=%;sndBuf5=R;sndBuf6=H;DispAscStr(xpos,ypos,sndBuf,7,Delay_1us(500000);/*/return 0;3自动晾衣架实验本实验测量空气中的湿度,当湿度达到临界值时,通知开始回收,防止阴雨天气淋湿衣物。修改 Main.c 中的代码如下:while(1) RH_read();/晾衣架提示if(U8RH_data_H50)DispAscStr(0,4
26、0,“Get the laundry!“,16,elseDispAscStr(0,40,“In the air. “,16,DispChnStr(0,100,“温度“,2,DispAscStr(xpos,ypos,“:+“,1,if(U8T_data_H=10)sndBuf0=U8T_data_H/10+0;sndBuf1=U8T_data_H%10+0;sndBuf2=.;sndBuf3=U8T_data_L/10+0;DispAscStr(xpos,ypos,sndBuf,4,DispChnStr(xpos,ypos,“度“,1,elsesndBuf0=U8T_data_H%10+0;sn
27、dBuf1=.;sndBuf2=U8T_data_L/10+0;DispAscStr(xpos,ypos,sndBuf,3,DispChnStr(xpos,ypos,“度“,1,DispChnStr(0,120,“湿度“,2,if(U8RH_data_H=10)sndBuf0=:;sndBuf1=U8RH_data_H/10+0;sndBuf2=U8RH_data_H%10+0;sndBuf3=.;sndBuf4=U8RH_data_L/10+0;sndBuf5=%;sndBuf6=R;sndBuf7=H;DispAscStr(xpos,ypos,sndBuf,8,elsesndBuf0=:;
28、sndBuf1=U8RH_data_H%10+0;sndBuf2=.;sndBuf3=U8RH_data_L/10+0;sndBuf4=%;sndBuf5=R;sndBuf6=H;DispAscStr(xpos,ypos,sndBuf,7,Delay_1us(500000);4室内温湿度监控本实模拟检测实验室内的温度和湿度,当温度和湿度不在其上下限范围内时,提示开启相应设备进行调节。修改 Main.c 中的代码如下:while(1) RH_read();/室内温湿度监控/温度提示 if(U8T_data_H25)DispAscStr(0,40,“Too hot! “,12,else if (U
29、8T_data_H50) DispAscStr(0,60,“Too wet! “,13,elseDispAscStr(0,60,“Dry and loose“,13,DispChnStr(0,100,“温度“,2,DispAscStr(xpos,ypos,“:+“,1,if(U8T_data_H=10)sndBuf0=U8T_data_H/10+0;sndBuf1=U8T_data_H%10+0;sndBuf2=.;sndBuf3=U8T_data_L/10+0;DispAscStr(xpos,ypos,sndBuf,4,DispChnStr(xpos,ypos,“度“,1,elsesndBu
30、f0=U8T_data_H%10+0;sndBuf1=.;sndBuf2=U8T_data_L/10+0;DispAscStr(xpos,ypos,sndBuf,3,DispChnStr(xpos,ypos,“度“,1,DispChnStr(0,120,“湿度“,2,if(U8RH_data_H=10)sndBuf0=:;sndBuf1=U8RH_data_H/10+0;sndBuf2=U8RH_data_H%10+0;sndBuf3=.;sndBuf4=U8RH_data_L/10+0;sndBuf5=%;sndBuf6=R;sndBuf7=H;DispAscStr(xpos,ypos,sndBuf,8,elsesndBuf0=:;sndBuf1=U8RH_data_H%10+0;sndBuf2=.;sndBuf3=U8RH_data_L/10+0;sndBuf4=%;sndBuf5=R;sndBuf6=H;DispAscStr(xpos,ypos,sndBuf,7,Delay_1us(500000);五、实验思考1画出 DHT11 获取温湿度关键程序的流程图。2列出你身边的含有温湿度传感器的电器。3调研 10 种以上其他温湿度传感器的信息。