无线温湿度毕业设计.docx
《无线温湿度毕业设计.docx》由会员分享,可在线阅读,更多相关《无线温湿度毕业设计.docx(25页珍藏版)》请在冰豆网上搜索。
![无线温湿度毕业设计.docx](https://file1.bdocx.com/fileroot1/2023-1/29/5cd98515-f4a9-4b38-a8a9-6da5ac3e3582/5cd98515-f4a9-4b38-a8a9-6da5ac3e35821.gif)
无线温湿度毕业设计
本科生毕业论文
无线温湿度测量系统的研究
TheResearchofWirelessTemperatureandHumidity
MeasureSystem
学生姓名
陈**
所在专业
电子信息工程
所在班级
电子1101
申请学位
工学学士
指导教师
王立臣
职称
讲师
副指导教师
职称
答辩时间
2014年06月07日
摘要
本系统研究的是基于51单片机的无线温湿度测量系统。
该系统选择了温湿度传感器DHT11对温湿度数据进行采集,并且由单片机STC89C52对采集到的温湿度数据进行处理,然后通过无线传输到主机方,主机端同样采用STC89C52单片机对接收到的数据进行相应处理,然后在LCD1602上显示出来,主机端可以对温湿度上下限进行相应的设定,当采集到的温湿度数据不在预先设定的区间时,蜂鸣器会做出警报。
经过实验论证,本系统的灵敏度较高,经济效益好,并可及时进行报警,实用性较好。
关键词:
无线温湿度;传感器;单片机
abstract
Thissystemisawirelesshumidityandtemperaturemeasuringsystembasedon51singlechipmicrocomputer.ThesystemselectsDHT11whichisatemperatureandhumiditysensortocollecttemperatureandhumiditydata,andthedatacollectedwillbeprocessedbysingle-chipmicrocomputerandtransmittedtothehostthroughwireless.ThehostalsoadoptedSTC89C52processortoprocessthereceiveddata,andthendisplaythedataontheLCD1602,thehostcanmakeacorrespondingsetoftemperatureandhumidityupperlimit.Whenthetemperatureandhumiditycollectedmorethanorlessthanthepreset,thebuzzerwillmakealarm.
Theexperimentdemonstratesthatthesystemhashighprecision,goodeconomicefficiency,anditcanalarmtimely.Thesystemhasgoodpracticability.
KEYWORDS:
Wirelesstemperatureandhumidity;Sensor;Singlechipmicrocomputer
无线温度湿度测量系统的研究
电子信息工程,201011611105,陈马生
指导老师:
王立臣
1绪论
在人们的现实生活中,温度和湿度扮演着极其重要的角色。
温湿度直接影响到了人类的生活以及工业生产,这些都与温湿度密切相关,因此温湿度是我们需要特别关注的。
1.1无线温湿度测量系统的研究背景
温湿度是工业控制中非常重要的需要被重视的参数,而数据的传输大部分都是通过有线电缆来实现的。
现如今无线通信技术越来越高级,数据传输速度也就越来越快,抗干扰能力也更强。
因此,该项技术被运用到了很多地方。
现如今电子技术飞速发展,同时数字设备以其具有的抗干扰、功耗低、便于微处理器控制等特点,渐渐变成了测量和控制等应用中最常使用的方式。
温度与湿度测量,采用的比较多的还是热敏电阻和湿敏电阻等传感器,这些器件收集到的数据需要经过AD转换才可以送给数字设备使用,这样就导致难以适合那些对精度要求比较高或者系统的外围电路要求相对简单的领域。
温、湿度检测和控制技术已被广泛地应用在了人们的日常生产生活当中,传感器无疑就是测量与控制系统中非常重要的组成部分。
但是伴随着传感器而来的是大量的数据线缆。
这些众多的线缆不仅使得布线变得复杂,而且容易存在短路以及断线隐患,使对系统的调试和维护变得困难。
正因为如此,我们需要去寻求一种简单高效的无线通信技术,用以解除线缆搭接困扰,成为一个亟需解决的问题[1]。
与有线通信技术相比,无线通信技术有很多的有点,成本比较低以及搭建网络比较简单等。
当处于有线通信方式不适合的情况下,使用无线通信技术对数据进行采集以及传输就显得更加的实用和快捷。
1.2课题研究的目的与意义
温湿度的准确测量可以提供给我们很多非常有用的信息,这些信息可以帮助我们及时关注容易被温湿度变化带来影响的东西,避免不必要的损失,生活生产的方方面面都与温湿度相关。
在众多的行业,可以说大部分的工业部门都不得不考虑着温湿度的因素[2]。
本系统以单片机为控制中心,温湿度传感器作为温湿度测量元件,其数据通过无线进行传输,并且可以让我们通过一些后续的措施进行温湿度调整;无论应用于生活还是生产,都可以提供很强大的便利。
1.3课题研究的任务和要求
本次课题的主要研究内容是:
使用合适的单片机,研究一个无线温湿度测量系统,选择合适的温湿度采集传感元件,能够实时监测到温湿度,并通过无线传输,最后用LCD1602显示出来;该系统可手动调节温湿度上下限,并跟据预先设定的温湿度上下限系统做出警报,为日常生活提供便利。
任务要求:
(1)合适的温度湿度测量范围;
(2)选择合适的芯片作为温度和湿度传感器;
(3)推荐使用单片机实现系统的整体功能,当然也鼓励用更好的方案实现;
(4)要求选择该课题的学生,单片机知识基础扎实,实践能力强。
2总体方案的研究与分析
本系统的目的旨在使用户可以方便地及时的知晓某些不容易直接到达的地方,从而防止可能因为温湿度的巨变带来的隐患等。
2.1系统方案说明
对温湿度传感器的选择以及合理的使用是本系统研究的关键。
传统的方法是温湿度检测使用模拟传感器,这样一来温湿度数据是要通过模拟元件、放大电路、模数转换电路之后才能够得到,需要注意的细节也就较多,电路的干扰量也就相应的增多。
因此,如果能够将被测的温湿度这一非电模拟量转换为数字信号,并将其处理的过程都集成在一个单片的IC器件里面,这将是解决传统的温湿度测量方式弊端的理想途径。
对于系统处理核心的问题,最初考虑选用性能更优的AVR单片机,但是该单片机价格较51单片机要贵,并且配套的开发工具完善程度不够好,本系统需要用到的单片机资源不是很多,会造成资源的浪费。
最终决定选用51单片机来完成。
不仅使得整个成本降低,而且开发更加简便,也方便后期的调试和维护。
还有一个重要的模块就是无限传输模块,在决定方案的初期查阅了很多的资料,考虑过使用红外等方式,但是为了系统的稳定性考虑,还有成本的控制,决定选用NRF24L01这款无限传输模块。
其可传输的距离比较理想,且处理速度较好。
基于以上研究,本系统整体方案为:
系统分为两个主要部分,分别是主机和从机,实物制作时各为一块电路板。
主机负责对远程温湿度数据的接收,然后显示,同时主机方设有对温湿度上下限的控制,一旦所测得的温湿度不在这个区间内,主机这边就会产生警报,给人提示。
从机主要负责通过温湿度传感器对温湿度进行监控,并通过无线模块将其所测得的数据量发送给主机方。
从机可以置于无线模块通信规定的范围内,人类不容易或者说是不方便经常到达的地方,但又需要随时对该地方的温湿度进行监控等。
2.2系统原理及电路研究框图
系统主机主要负责温湿度数据的接收、显示以及警报的相关控制,从机则负责对温湿度数据的采集和发送。
2.2.1主机电路框图
主机端的无线收发模块接收从机方无线模块发来的数据,然后主机端的单片机芯片对该温湿度数据进行简单处理,显示模块可以按照温湿度数据预先设定好的显示模式加以显示,同时把该结果与系统设定好的温湿度上下限进行比较,若处理结果不在该范围之内,则单片机需要发出指令,蜂鸣器警示模块开始工作。
温湿度上下限可以通过按键模块进行设定。
图2-1为主机系统框图:
图2-1系统主机示意图
2.2.2从机电路框图
从机端的温湿度传感器把采集到的温湿度模拟量转换成数字信号,然后通过单片机处理该数字信号,最后控制无线模块将处理结果发往主机方。
从机端是否对数据进行发送以及发送的快慢是可以通过按键加以控制的,数据的发送还可以通过从机端的led指示灯的亮暗来指示。
图2-2为从机系统框图:
图2-2系统从机示意图
3器件选用及系统的硬件结构
3.1单片机控制系统
单片机控制电路是整个研究的中心处理电路,对本研究的方案选型起到了决定性的作用。
3.1.1单片机的选型
现如今单片机在电子产品等领域被越来越广泛的应用,是因为单片机的功能比较完善,并且配套的开发工具也很多,拥有比较多的可共享的资源[3]。
而且单片机功耗较低、体积较小、重量轻、抗干扰能力比较强、对环境要求不高、价格较为低廉、可靠性高、灵活性好,非常适合便携式等产品的研究。
本研究决定选用深圳宏晶科技的STC89C52RC作为主控单片机芯片。
STC单片机使用了高密度非易失性储存器技术制造,并且它的指令以及引脚等与工业上的80C51系列单片机相兼容,这样一来,很多的嵌入式控制类应用就选择该单片机作为首选的方案。
对于STC89C52,主要特性如下:
(摘录自STC单片机官方数据手册)
(1)STC单片机性能与8051单片机的性能比较:
速度快:
在一个时钟/机器周期内,其平均速度可以达到1MIPS/MHz
宽电压:
3.3V~5.5V。
宽温限:
-40℃~85℃。
高抗静电:
ESD保护,可轻松过4KV快速脉冲干扰(EFT测试)。
低功耗:
有空闲模式(工作电流小于1.3mA)、掉电模式(可以由外部中断唤醒,工作电流小于0.1uA)、正常模式(工作电流2.7~7mA)。
工作频率:
0到48MHz,相当于传统的8051主频0~576MHz。
时钟:
可以选择外部晶体或内部RC振荡器。
(2)STC89C52单片机的内部资源:
拥有8K字节的片内Flash程序存储器[4],可进行至少10万次的擦写;
拥有512个字节的片内RAM数据存储器;
拥有2K+字节的片内E2PROM;
ISP/IAP,不需要使用专用的编程器;
总共有3个16位的定时器/计数器;
拥有4路外部中断;
硬件看门狗(WDT);
通用异步串行口(UART);
通用I/O口(共32个):
P0/P1/P2/P3。
3.1.2STC89C52单片机的工作模式
三种工作模式分别为:
正常工作模式。
可以由外部中断唤醒的掉电模式。
以及空闲模式。
3.1.3STC89C52引脚图
图3-1STC89C52引脚图
3.1.4STC89C52复位电路
单片机系统的复位方式有两种:
手动按钮复位和上电复位。
本研究采用的复位电路可以实现上电复位以及手动按钮复位,如图3-2所示。
图3-2复位电路
本复位电路中,电阻两端的电压是一个时间的函数:
u(t)=VCC+exp(-t/RC),其中VCC是电源电压,RC为RC电路的时间常数。
上电瞬间,5V的电压经过电容C5(此时电容的作用是隔直通交,瞬时的电压变化使得C3可视为理想的短路状态),过R9然后到地,RST引脚瞬间为高电平,CPU开始进入复位状态,根据上述公式可知当电容C5冲饱和后,C5两端压降为5V,此时RST引脚变为低电平,C5的充电时间大于单片机所需的复位时间,单片机复位成功。
单片机在短暂的掉电然后又上电的时候,二极管D1可以使电容C5迅速放电,然后可以使单片机成功复位。
如果没有这个二极管,电容就不会迅速放电,从而有可能导致再次上电是单片机复位失败。
3.1.5STC89C52振荡电路
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用[5]。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
在XTAL1和XTAL2两端跨接晶体或者陶瓷谐振器就构成稳定的自激振荡器,其发出的脉冲会直接送入内部时钟电路。
当振荡电路连接晶振时,C6和C7值可选15~45pf。
在制作印制板的时候,晶体或者陶瓷谐振器和电容应该尽可能的安装在单片机芯片的附近,以减少寄生电容,保证振荡器的稳定和可靠地工作,C6、C7对频率有微调的作用,振荡频率范围是1.2~12MHz[6]。
本研究晶振频率为11.0592MHz,选用的电容为30pF,连接如图3-3所示:
图3-3振荡电路
3.2温湿度采集模块
温湿度采集模块由温湿度传感器DHT11组成,该模块的原理图如图3-4所示:
图3-4温湿度采集模块
3.2.1DHT11的简介
数字温湿度传感器DHT11是一款应用了专用的数字模块采集技术以及温湿度传感技术的,并且含有已校准数字信号输出的温湿度复合传感器,以确保产品具有极高的可靠性和卓越的长期稳定性[7]。
该传感器与一个高性能的8位单片机相连,并且内部包括一个电阻式感湿元件和一个NTC测温元件。
该产品就具有超快响应、品质卓越、性价比极高、抗干扰能力强等优点,使它成为了给类应用甚至是最为苛刻的应用场合的最佳选择。
DHT11温度测量范围是0~50℃,湿度测量范围是20-90%RH,工作电压范围是3.3~5.5VDC。
3.2.2DHT11的接线图
图3-5DHT11接线图
电源引脚:
DHT11的供电电压为3-5.5V。
串行接口:
DATA采用了单总线的数据格式,传输的数据分为小数部分和整数部分,当前的小数部分读出为零。
完整的一次数据传输为40bit,前16位是测得的湿度数据,其中前8位是整数数据,后8位是小数数据,紧接着的16位是测得的温度数据,与湿度数据相同,分为整数部分和小数部分,最后的8位是前面数据的校验和。
当数据传送正确时校验和数据等于前面湿度数据和温度数据的和的末8位。
3.2.3DHT11的工作时序
用户通过MCU发送DHT11的开始信号之后,DHT11发送响应信号之前,MCU需要在合适的时间段停止DHT11的开始信号。
DHT11响应之后,会送出40位的数据,同时触发一次信号采集。
此处需要强调的是,DHT11只有接收到其开始信号之后才会进行温湿度数据的采集工作。
否则DHT11是不会主动进行温湿度采集的。
通讯过程如图3-6所示。
图3-6主机与DHT11通讯过程图示1
具体步骤大致如下,总线空闲时应为高,然后主机将总线拉低,时间大约是18ms以上,这样做是为了保证DHT11可以检测到该信号,然后将该信号置高以结束开始信号,紧接着延时大约20-40us,读取DHT11的响应信号。
DHT11检测到主机的开始信号也即主机拉低的电平之后,一旦该信号变为高,会发送响应信号,该响应信号是80us的低电平。
图3-7主机与DHT11通讯过程图示2
如图3-7,主机发送开始信号之后DHT11做出了响应,然后DHT11再把总线拉高大约80us,准备发送数据。
数据格式为先是大约50us的低电平,然后是根据需要发送的数据从而长度不一样的高电平。
所有数据发送完成,总线会变为高电平进入空闲状态,这之前需要DHT11把总线拉低大约50us。
图3-8表示发送的数据为‘0’:
图3-8DHT11发送数据‘0’
图3-9表示发送的数据为‘1’:
图3-9DHT11发送数据‘1’
3.3显示模块
期初考虑选用数码管作为系统的显示模块,因为数码管的显示更加直观,容易被人的眼睛轻松接收。
但是考虑主机方按键模块需要对温湿度做上下限的调整,调整的同时需要给用户以显示当前温湿度上下限的具体数值,如果此时采用的是数码管,那么就需要额外的数码管用以达到要求,这样一来,数码管的数量翻倍,一方面增加了系统的成本,另一方面对PCB板的布局产生了影响。
而当采用液晶显示则避免了上述的问题,而且容易通过更改代码以改善显示。
本系统选用LCD1602作为系统的显示模块。
液晶屏具有使用方便、精度高、低功耗、显示直观、寿命长等优点,另外其显示字符数量以及灵活性都要比七段数码管LED(LightEmittingDiode)强,因此系统的显示模块选择由LCD1602来组成。
第一行显示当前温度以及设定的最高温和最低温,第二行显示当前湿度以及设定的最大湿度好最小湿度。
本研究采用LCD1602液晶。
其电路图如图3-10所示:
图3-10显示模块
3.3.1LCD1602简介
1602液晶(如图3-11所示)有若干个5X7或5X11等点阵字符位组成,是一种用来显示字母、数字、符号等的点阵型的液晶模块。
图3-11LCD1602实物图
LCD1602可以显示两行,每行为16个字符液晶模块。
本研究采用的是16个引脚的LCD。
其中D0-D7为数据引脚,操作过程中的数据和指令都通过数据引脚进行传送。
E是使能信号引脚。
RS为0表示传送的是指令码,为1表示传送的数据。
R/W为0表示写,为0表示读。
3.3.2LCD1602的指令操作
液晶进行读操作时的各引脚状态:
读状态:
RS=0,R/W=1,E=1。
读数据:
RS=1,R/W=1,E=1。
液晶进行写操作时的各引脚状态:
写指令:
RS=0,R/W=0,E=下降沿脉冲,DB0~DB7=指令码。
写数据:
RS=1,R/W=0,E=下降沿脉冲,DB0~DB7=数据。
3.4按键模块
主机以及从机按键模块均采用独立式的按键,即一个按键占用一个IO口。
按键一端接地,一端接单片机IO口[8]。
程序中采用键盘扫描的方式查询哪一个按键被按下,当某个按键所接的单片机IO口电平为低时表示此按键被按下,为防止按键抖动带来的影响,可适当地进行一个延时然后再查询IO口是否是低电平,若为低,则表示按键确实被按下。
此时可处理该按键所对应的响应程序段。
3.4.1主机按键模块
按键模块相对较为简单,如图3-12所示,用户可通过B3按键进行选择所需调节的项,分别为温度下限、温度上限、湿度下限、湿度上限,四项通过循环模式进行选择,即每按一次B3按键可以定位到下一个项。
选择好需要调节的项之后,用户可通过按键B1对其进行加操作,长按该键将导致改变项不断加一,若按下时间较短,则每按一次该值加一,依旧采用循环方式,到达系统设定的上限后会自动变为系统设定的下限。
同理,用户可通过按键B4对其进行减操作,长按该键将导致改变项不断减一,若按下时间较短,则每按一次该值减一,采用循环方式,到达系统设定的下限后会自动变为系统设定的上限。
所以,用户可以很方便地设定所想要的温湿度区间。
图3-12主机按键模块
3.4.2从机按键模块
图3-13从机按键模块
从机按键模块如上图3-13所示,B1是为了调试或者排障方便,按下可停止对温湿度数据的发送,转而发送一组固定的数据。
B3则可以使系统对温湿度的监测以及发送频率变慢,视具体场合可以进行选择。
3.5蜂鸣器警示模块
图3-14警示模块
如上图3-14所示,该蜂鸣器警示模块是通过单片机I/O口的电平来控制蜂鸣器工作的。
S8550为PNP型三极管,用来驱动蜂鸣器。
本系统蜂鸣器采用5V的电磁式蜂鸣器。
该模块作为警示模块,是当所测得的温湿度数据不在系统所设定的区间内时,蜂鸣器发出警报声[9],此时给单片机P2.0口写0,三极管导通,蜂鸣器就会发出声音;而当所测得的温湿度数据在系统预先设定好的温湿度区间时,给单片机P2.0口写1,三极管截止,蜂鸣器停止工作。
3.6无线收发模块
图3-15无线模块
无线模块电路如图3-15所示,该模块是由挪威(Nordic)公司生产的nRF24L01然后再给以具体的外围电路所组成的。
nRF24L01的工作电压为1.9~3.6V。
可以以最高可以达到10Mbit/s的速度通过SPI写入数据,数据传输速率最快可以达到2Mbit/s,同时该模块还具有自动应答以及自动再发射功能。
3.6.1nRF24L01概述
nRF24L01工作于2.4GHz~2.5GHzISM频段,是一款新型的单片射频收发器件[10]。
融合了增强型的ShockBurst技术,并且还内置频率合成器、晶体振荡器、功率放大器、调制器等功能模块,其输出功率和通信频道可以通过程序进行配置。
3.6.2nRF24L01的引脚排列
nRF24L01的封装以及引脚排列[11]如图3-16所示。
图3-16nRF24L01封装图
3.6.3nRF24L01的工作模式
通过配置寄存器可以将nRF24L01配置为发射、接收、空闲以及掉电四种工作模式,如表3.1所示。
表3.1nRF24L01工作模式
模式
PWR_UP
PRIM_RX
CE
FIFO寄存器状态
接收模式
1
1
1
-
发射模式
1
0
1
数据在TX FIFO 寄存器中
发射模式
1
0
1→0
停留在发送模式,直至数据发送完
待机模式2
1
0
1
TX_FIFO为空
待机模式1
1
-
0
无数据传输
掉电
0
-
-
-
待机模式1下晶体振荡器仍然是工作着的,该模式主要是用于降低电流损耗;待机模式2是在当FIFO寄存器为空且CE=1时进入此模式。
掉电模式下nRF24L01停止工作,但其所有的配置寄存器的值仍然保留。
3.6.4nRF24L01的工作原理
要发射数据时,首先需将nRF24L01配置为发射模式,接着把有效数据TX_PLD和接收节点的地址TX_ADDR写入nRF24L01的缓存区,TX_ADDR在发射的时候写入一次即可,TX_PLD必须在当CSN为低时连续写入。
然后将CE置高电平并保持至少10μs,延迟130μs之后发射数据;如果此时自动应答开启,那么nRF24L01在发射数据后会立即进入接收模式,接收应答信号。
如果收到了应答,则认为此次通信成功,TX_PLD从TX FIFO中清除,TX_DS被置高;若没有收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT被置高,TX FIFO中数据保留以便再次重发;TX_DS或MAX_RT置高时,使得IRQ变低,产生中断。
最后发射成功时,nRF24L01在CE为低时会进入空闲模式1;若发送堆栈中有数据并且CE为高,则进入下一次发射;若CE为高且发送堆栈中无数据,则进入空闲模式2。
接收数据时,需要首先将nRF24L01配置为接收模式,接着延迟130μs进入接收状态。
当接收方检测到了有效的CRC和地址时,就将数据包存储在RX FIFO中,同时中断标志位RX_DR被置高,IRQ变低,产生中断,使MCU知道数据已经接收成功。
若此时自动应答开启,会使接收方进入发射状态回传应答信号[12]。
最后接收成功时,nRF24L01在CE为低时会进入空闲模式1。
在写寄存器之前一定要进入待机模式或掉电模式。
3.6.5nRF24L01的配置字
SPI口最大传输速率为10Mb/s,为同步的串行通信接口,先传送低位字节,再传送高位字节。
针对单个的字节而言,是要先传送高位再传送低位的。
与SPI相关的8条指令是由nRF24L01的MOSI