实验五温湿度数据采集实验.docx
- 文档编号:27240822
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:28
- 大小:549.56KB
实验五温湿度数据采集实验.docx
《实验五温湿度数据采集实验.docx》由会员分享,可在线阅读,更多相关《实验五温湿度数据采集实验.docx(28页珍藏版)》请在冰豆网上搜索。
实验五温湿度数据采集实验
实验五温湿数据采集实验
一、实验目的
1.了解智能传感器DHT11的原理与应用
2.掌握智能传感器DHT11的编程与操作方法
3.理解微处理器与湿度传感器DHT11之间的通讯
二、实验材料
1.具有USB串口通讯的PC机1台
2.ADS1.2集成开发软件1套
3.J-Link-ARM仿真器与软件1套
4.NXPLPC2378实验节点板1个
5.LCD显示实验板1个
6.温湿度传感器模块1个
三、实验原理
振动传感器实验环境由PC机〔安装有WindowsXP操作系统、ADS1.2集成开发环境和J-Link-ARM-V410i仿真器〕、J-Link-ARM仿真器、NXPLPC2378实验节点板、温湿度传感器、实验模块和LCD显示实验模块组成,如图4.5.1所示。
图4.5.1传感器实验环境
A型接口
B型接口
USB连接线
J-Link-ARM
仿真器
实验节点板
通讯
模块
接口
传感
模块
接口
显示
模块
接口
20针
JTAG
连接线
PC机
1.温湿度传感器简介
〔1〕温度、湿度的相关概念
由于温度与湿度不管是从由于温度与湿度不管是从物理量本身还是在实际人们的生活中都有着密切的关系,所以温湿度一体的传感器就会相应产生。
温湿度传感器是指能将温度量和湿度量转换成容易被测量处理的电信号的设备或装置。
市场上的温湿度传感器一般是测量温度量和相对湿度量。
温度:
度量物体冷热的物理量,是国际单位制中7个根本物理量之一。
在生产和科学研究中,许多物理现象和化学过程都是在一定的温度下进行的,人们的生活也和他密切相关。
湿度:
湿度很久以前就与生活存在着密切的关系,但用数量来进行表示较为困难。
日常生活中最常用的表示湿度的物理量是空气的相对湿度。
用%RH表示。
在物理量的导出上相对湿度与温度有着密切的关系。
一定体积的密闭气体,其温度越高相对湿度越低,温度越低,其相对湿度越高。
其中涉与到复杂的热力工程学知识。
有关湿度的一些定义:
相对湿度:
在计量法中规定,湿度定义为“物象状态的量〞。
日常生活中所指的湿度为相对湿度,用RH%表示。
总之,即气体中〔通常为空气中〕所含水蒸气量〔水蒸气压〕与其空气相同情况下饱和水蒸气量〔饱和水蒸汽压〕的百分比。
绝对湿度:
指单位容积的空气里实际所含的水汽量,一般以克为单位。
温度对绝对湿度有着直接影响,一般情况下,温度越高,水蒸气发得越多,绝对湿度就越大;相反,绝对湿度就小。
饱和湿度:
在一定温度下,单位容积,空气中所能容纳的水汽量的最大限度。
如果超过这个限度,多余的水蒸气就会凝结,变成水滴,此时的空气湿度变称为饱和湿度。
空气的饱和湿度不是固定不变的,它随着温度的变化而变化。
温度越高,单位容积空气中能容纳的水蒸气就越多,饱和湿度就越大。
露点:
指含有一定量水蒸气〔绝对湿度〕的空气,当温度下降到一定程度时所含的水蒸气就会到达饱和状态〔饱和湿度〕并开始液化成水,这种现象叫做凝露。
水蒸气开始液化成水时的温度叫做“露点温度〞简称“露点〞。
如果温度继续下降到露点以下,空气中超饱和的水蒸气就会在物体外表上凝结成水滴。
此外,风与空气中的温湿度有密切关系,也是影响空气温湿度变化的重要因素之一。
〔2〕温度、湿度的测量方法
①湿度测量传感器常见的几个测量方法
湿度测量技术来由已久。
随着电子技术的开展,近代测量技术也有了飞速的开展。
湿度测量从原理上划分二、三十种之多。
对湿度的表示方法有绝对湿度、相对湿度、露点、湿气与干气的比值〔重量或体积〕等等。
但湿度测量始终是世界计量领域中最著名的难题之一。
一个看似简单的量值,深究起来,涉与相当复杂的物理—化学理论分析和计算,初涉者可能会忽略在湿度测量中必需注意的许多因素,因而影响[2]的合理使用。
常见的湿度测量方法有:
动态法〔双压法、双温法、分流法〕,静态法〔饱和盐法、硫酸法〕,露点法、干湿球法和形形色色的电子式传感器法。
这里双压法、双温法是基于热力学P、V、T平衡原理,平衡时间较长,分流法是基于绝对湿气和绝对干空气的精确混合。
由于采用了现代测控手段,这些设备可以做得相当精密,却因设备复杂,昂贵,运作费时费工,主要作为标准计量之用,其测量精度可达±2%RH-±1.5%RH。
静态法中的饱和盐法,是湿度测量中最常见的方法,简单易行。
但饱和盐法对液、气两相的平衡要求很严,对环境温度的稳定要求较高。
用起来要求等很长时间去平衡,低湿点要求更长。
特别在室内湿度和瓶内湿度差值较大时,每次开启都需要平衡6~8小时。
℃甚至更高。
但用现代光—电原理的冷镜式露点仪价格昂贵,常和标准湿度发生器配套使用。
干湿球法,这是18世纪就创造的测湿方法。
历史悠久,使用最普遍。
干湿球法是一种间接方法,它用干湿球方程换算出湿度值,而此方程是有条件的:
即在湿球附近的风速必需到达2.5m/s以上。
普通用的干湿球温度计将此条件简化了,所以其准确度只有5~7%RH,明显低于电子湿度传感器。
显然干湿球也不属于静态法,不要简单地认为只要提高两支温度计的测量精度就等于提高了湿度计的测量精度。
需要强调两点:
第一,由于湿度是温度的函数,温度的变化决定性地影响着湿度的测量结果。
无论那种方法,精确地测量和控制温度是第一位的。
须知即使是一个隔热良好的恒温恒湿箱,其工作室内的温度也存在一定的梯度。
所以此空间内的湿度也难以完全均匀一致。
第二,由于原理和方法差异较大,各种测量方法之间难以直接校准和认定,大多只能用间接方法比对。
所以在两种测湿方法之间相互校对全湿程〔相对湿度0~100%RH〕的测量结果,或者要在所有温度范围内校准各点的测量结果,是十分困难的事。
例如通风干湿球湿度计要求有规定风速的流动空气,而饱和盐法那么要求严格密封,两者无法比对。
最好的方法还是按国家对湿度计量器具检定系统〔标准〕规定的传递方式和检定规程去逐级认定。
2.数字温湿度传感器DHT11
〔1〕DHT11简介
DHT11数字温湿度传感器是广州奥松电子生产的一款含有已校准数字信号输出的温湿度复合传感器。
它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。
传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。
每个DHT11传感器都在极为精确的湿度校验室中进行校准。
校准系数以程序的形式储存在OTP内存〔一次性可编程只读存储器,OneTimeProgrammableReadOnlyMemory,OTPROM,简称OTP〕中,传感器内部在检测信号的处理过程中要调用这些校准系数。
单线制串行接口,使系统集成变得简易快捷。
超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最正确选择。
产品为4针单排引脚封装。
连接方便,特殊封装形式可根据用户需求而提供。
图4.5.2DHT11产品实物图
〔2〕DHT11的应用领域
DHT11广泛应用在一下几个方面:
暖通、空调、测试与检测设备、汽车数据记录器、消费品自动控制、气象站、家电、湿度调节器、医疗、除湿器
〔3〕DHT11的产品特点
●相对湿度和温度测量
●全部校准,数字输出
●卓越的长期稳定性
●无需额外部件
●超长的信号传输距离
●超低能耗
●4引脚安装
●完全互换
〔4〕DHT11的外形尺寸
DHT11的外形尺寸图
〔5〕产品参数
图4.5.4DHT11引脚图
表4.5.1DHT11引脚说明
Pin
名称
注释
1
VDD
2
DATA
串行数据,单总线
3
NC
空脚,请悬空
4
GND
接地,电源负极
表4.5.2DHT11特性表
参数
条件
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
表4.5.3DHT11电气特性
参数
条件
min
type
max
单位
供电
DC
3
5
V
供电电流
测量
mA
平均
1
mA
待机
100
150
uA
采样周期
秒
1
次
注:
VDD=5V,T=25,除非特殊标注。
采样周期间隔不得低于1秒钟。
〔6〕典型电路
●典型应用1
建议连接线长度短于20米时用5KΩ上拉电阻,。
图4.5.6DHT11典型应用1
●典型应用2
Ω上拉电阻,大于20m时根据实际情况降低上拉电阻的阻值。
使用3.5V电压供电时连接线长度不得大于20cm。
否那么线路压降会导致传感器供电缺乏,造成测量偏差。
每次读出的温湿度数值是上一次测量的结果,欲获取实时数据,需连续读取两次,但不建议连续屡次读取传感器,每次读取传感器间隔大于5秒即可获得准确的数据。
图4.5.7DHT11典型应用2
〔7〕串行通信说明〔单线双向〕
●单总线说明
DHT11器件采用简化的单总线通信。
单总线即只有一根数据线,系统中的数据交换、控制均由单总线完成。
设备〔主机或从机〕通过一个漏枀开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线;单总线通常要求外接一个约5.1kΩ的上拉电阻,这样,当总线闲置时,其状态为高电平。
由于它们是主从结极,只有主机呼叫从机时,从机才能应答,因此主机访问器件都必须严格遵循单总线序列,如果出现序列混乱,器件将不响应主机。
●单总线传送与数据位定义
DATA用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次传送40位数据,高位先出。
数据格式:
8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验位。
●校验位数据定义
8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据8bit校验位等于所得结果的末8位。
例如一:
接收到的40位数据为:
0011010100000000000110000000000001001101
湿度高8位湿度低8位温度高8位温度低8位校验位
计算:
00110101+00000000+00011000+00000000=01001101
接收数据正确:
湿度:
00110101=35H=53%RH温度:
00011000=18H=24℃
例如二:
接收到的40位数据为:
0011010100000000000110000000000001001001
湿度高8位湿度低8位温度高8位温度低8位校验位
计算:
00110101+00000000+00011000+00000000=01001101
01001101不等于01001001
本次接收的数据不正确,放弃,重新接收数据。
〔8〕数据时序图
图4.5.8数据时序图
总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。
DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号。
主机发送开始信号结束后,延时等待20-40us后,读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可,总线由上拉电阻拉高。
总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1。
如果读取响应信号为高电平,那么DHT11没有响应,请检查线路是否连接正常。
当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。
图4.5.9主机发送起始信号与从机响应信号
数字0信号表示方法如下图。
图4.5.10数字0信号表示方法
。
图4.5.11数字0信号表示方法
〔9〕应用信息
●工作与贮存条件
超出建议的工作范围可能导致高达3%RH的临时性漂移信号。
返回正常工作条后,传感器会缓慢地向校准状态恢复。
在非正常工作条件下长时间使用会加速产品的老化过程。
●暴露在化学物质中
电阻式湿度传感器的感应层会受到化学蒸汽的干扰,化学物质在感应层中的扩散可能导致测量值漂移和灵敏度下降。
在一个纯洁的环境中,污染物质会缓慢地释放出去。
下文所述的恢复处理将加速实现这一过程。
高浓度的化学污染会导致传感器感应层的彻底损坏。
●恢复处理
置于极限工作条件下或化学蒸汽中的传感器,通过如下处理程序,可使其恢复到校准时的状态。
在50-60℃和<10%RH的湿度条件下保持2小时〔烘干〕;随后在20-30℃和>70%RH的湿度条件下保持5小时以上。
●温度影响
气体的相对湿度,在很大程度上依赖于温度。
因此在测量湿度时,应尽可能保证湿度传感器在同一温度下工作。
如果与释放热量的电子元件共用一个印刷线路板,在安装时应尽可能将DHT11远离电子元件,并安装在热源下方,同时保持外壳的良好通风。
为降低热传导,DHT11与印刷电路板的其它局部的铜镀层应尽可能最小,并在两者之间留出一道缝隙。
●光线
长时间暴露在太阳光下或强烈的紫外线辐射中,会使性能降低。
●配线考前须知
DATA信号线材质量会影响通讯距离和通讯质量,推荐使用高质量屏蔽线。
3.DHT11获取温湿度关键程序
unsignedcharU8FLAG,k;
unsignedcharU8count,U8temp;
unsignedcharU8T_data_H;
unsignedcharU8T_data_L;
unsignedcharU8RH_data_H;
unsignedcharU8RH_data_L;
unsignedcharU8checkdata;
unsignedcharU8T_data_H_temp;
unsignedcharU8T_data_L_temp;
unsignedcharU8RH_data_H_temp;
unsignedcharU8RH_data_L_temp;
unsignedcharU8checkdata_temp;
unsignedcharU8comdata;
unsignedcharcount,count_r=0;
unsignedintU16temp1;
unsignedintU16temp2;
voidRH_com()//命令函数
{
unsignedchari;
unsignedintcount;
U8comdata=0;
for(i=0;i<8;i++)
{
//低电平时隙50us
count=2;
while(((FIO3PIN&0x00000002)!
=0x00000002)&&count++);//test4
//数据位,26us~28us为数据0,70us为数据1
U8temp=0;
if((FIO3PIN&0x00000002)==0x00000002)
{
U8temp=1;
}
count=2;
while(((FIO3PIN&0x00000002)==0x00000002)&&count++);//test4
if(count>180)
U8comdata=(U8comdata<<1)+1;
else
U8comdata=U8comdata<<1;
}//rof
}
voidRH_read()//获取温湿度值并校验
{
unsignedintcount;
//主机IO3.1口输出模式,主机拉低至少18ms
FIO3DIR|=(1<<1);
FIO3PIN&=~(1<<1);
Delay_1us(1000*18);//count);
//总线由上拉电阻拉高20-40us
FIO3SET|=(1<<1);
Delay_1us(30);
//将主机IO口置为输入
FIO3DIR&=~(1<<1);
//判断从机是否有低电平响应信号如不响应那么跳出,响应那么向下运行
if((FIO3PIN&0x00000002)!
=0x00000002)//T!
{
//判断从机是否发出80us的低电平响应信号是否结束
count=2;
while(((FIO3PIN&0x00000002)!
=0x00000002)&&(count++));
//判断从机是否发出80us的高电平,如发出那么进入数据接收状态
count=2;
while(((FIO3PIN&0x00000002)==0x00000002)&&(count++));
//数据接收状态
RH_com();//湿度的整数局部
U8RH_data_H_temp=U8comdata;
RH_com();//湿度的小数局部
U8RH_data_L_temp=U8comdata;
RH_com();//温度的整数局部
U8T_data_H_temp=U8comdata;
RH_com();//温度的小数局部
U8T_data_L_temp=U8comdata;
RH_com();//校验和
U8checkdata_temp=U8comdata;
//数据校验
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;
}
}
}
四、实验内容
1.实验器材连线
本实验所使用的DHT112所示。
2DHT11模块实物图
3所示。
3实验电路连接图
2.温湿度测量实验
本实验通过DHT11实验模块测量实验室室内的温湿度,并通过LCD显示在屏幕上,模拟万年历上的温度和湿度功能。
翻开工程TemHum,修改Main.c中的main()函数内容如下。
intmain()
{
intxpos,ypos;
uint8sndBuf[20];
//传感板IO控制引脚设置
FIO3DIR=0;//初始设置引脚为输入
if((IO1PIN&(1<<16))==(1<<16))
{
PINSEL6=PINSEL6&0xFFFFFFF3;//温湿模块,使用IO_2口作GPIO
FIO3DIR=FIO3DIR|0x00000002;
//温湿模块,设置IO_2连接的引脚为输出
}
//设置LCD屏幕引脚
PINSEL3=PINSEL3&0x00000000;
IO1DIR=IO1DIR|0x05700000;
//屏幕初始化
RESET0;//复位
delay(50);
RESET1;
delay(100);
lcd_init();
delay(20);
LCD_Frame();
DispAscStr(0,12,"",1,&xpos,&ypos);
DispChnStr(xpos,ypos,"温湿度模块测试",7,&xpos,&ypos);
/*************************温湿度采集******************************/
U8T_data_H=0;
U8T_data_L=0;
U8RH_data_H=0;
U8RH_data_L=0;
PINSEL6&=~(3<<2);//P3.1引脚0xFFFFFFF3;//温湿模块,使用IO_2口作GPIO
PINMODE6&=~(3<<2);//使用内部上拉电阻
FIO3DIR|=(1<<1);
FIO3PIN|=(1<<1);
while
(1)
{
RH_read();
DispChnStr(0,40,"温度",2,&xpos,&ypos);
DispAscStr(xpos,ypos,":
+",1,&xpos,&ypos);
if(U8T_data_H>=10)
{
sndBuf[0]=U8T_data_H/10+'0';
sndBuf[1]=U8T_data_H%10+'0';
sndBuf[2]='.';
sndBuf[3]=U8T_data_L/10+'0';
DispAscStr(xpos,ypos,sndBuf,4,&xpos,&ypos);
DispChnStr(xpos,ypos,"度",1,&xpos,&ypos);
}
else
{
sndBuf[0]=U8T_data_H%10+'0';
sndBuf[1]='.';
sndBuf[2]=U8T_data_L/10+'0';
DispAscStr(xpos,ypos,sndBuf,3,&xpos,&ypos);
DispChnStr(xpos,ypos,"度",1,&xpos,&ypos);
}
DispChnStr(0,100,"湿度",2,&xpos,&ypos);
if(U8RH_data_H>=10)
{
sndBuf[0]=':
';
sndBuf[1]=U8RH_data_H/10+'0';
sndBuf[2]=U8RH_data_H%10+'0';
sndBuf[3]='.';
sndBuf[4]=U8RH_data_L/10+'0';
s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 温湿度 数据 采集