基于单片机的智能温湿度采集器.docx
- 文档编号:28152900
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:30
- 大小:845.11KB
基于单片机的智能温湿度采集器.docx
《基于单片机的智能温湿度采集器.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能温湿度采集器.docx(30页珍藏版)》请在冰豆网上搜索。
基于单片机的智能温湿度采集器
摘要:
温度和湿度采集已成为当今流行的社会研究项目,是工业和农业的生产过程中必须考虑的因素,它广泛应用于实验室、温室、花园、粮仓,甚至土壤和其他领域。
与传统的采集技术相比,利用单片机对温度和湿度的采集,精度高、功能强、体积小、价格低、操作简单灵活,能很好地满足工艺要求。
本文通过AT89S52单片机、DHT11传感器模块、1602液晶显示和报警模块,简单地设计了温湿度采集器。
DHT11数字温湿度传感器把采集到的温湿度数据传给单片机,经过单片机的处理,准确地显示在LCD屏幕上,并通过LED灯对温度和湿度进行阈值报警。
关键词:
单片机AT89S52,DHT11传感器,1602液晶显示屏,报警
Abstract:
Temperatureandhumidityacquisitionhasbecomepopularsocialresearchprojects,thefactorsthatmustbeconsideredintheprocessofindustrialandagriculturalproduction,itiswidelyusedinlaboratories,greenhouses,garden,barn,andotherareas.Comparedwiththetraditionalacquisitiontechnology,theuseofsingle-chiptemperatureandhumidityacquisitionishighaccuracy,strongfunction,smallsize,lowprice,simpleandflexible,wellpositionedtomeettheprocessrequirements.Inthispaper,AT89S52microcontroller,theDHT11sensormodule1602LCDdisplayandalarmmodule,simpledesigntemperatureandhumiditylogger.DHT11digitaltemperatureandhumiditysensortemperatureandhumiditydatacollectedtothesingle-chipmicrocontrollerprocessingandaccuratelydisplayedontheLCDscreenandLEDwilllightifthetemperatureandhumidityisoutofrange.
Keywords:
SinglechipAT89S52,DHT11sensor,1602LCDscreen,Alar
目录
1引言4
1.1研究的背景和意义4
1.2研究的任务和要求4
2系统方案设计4
2.1总体方案设计4
2.2系统组成及框图5
3硬件设计5
3.1微处理器5
3.1.1AT89S52的介绍5
3.1.2AT89S52的主机模块6
3.2温湿度采集模块7
3.2.1DHT11的介绍7
3.2.2单总线的介绍7
3.2.3温湿度采集模块电路设计8
3.3显示模块9
3.3.1LCD1602的介绍9
3.3.2显示模块电路设计10
3.4按键模块11
3.5报警模块12
4软件设计12
4.1主程序流程图12
4.2温湿度采集模块程序设计13
4.3显示模块程序设计14
5硬件电路的调试15
结论17
参考文献18
致谢19
附录1系统整体设计图20
附录2主程序21
1引言
1.1研究的背景和意义
温度、湿度和人类的生产、生活密切相关,也是最常见和最基本的工业生产工艺参数,如机械、石油、化工、电子等行业的生产需要进行广泛的温湿度检测和控制。
随着人们的生活水平的提高,人们越来越关注自己的生活环境,空气温度和湿度的变化直接影响人体的舒适度和情感,因此对温度和湿度的检测和控制是非常必要的。
随着技术的飞速发展,高性能设备越来越多,各行各业对温度和湿度的要求也越来越高。
传统的温度和湿度检测模型是以人为基础,依靠人工轮流值班,人工巡回查看等方法来测量和记录环境条件。
在这种模式下,不仅效率低,不利于人力资源的充分利用,还缺乏科学性,很多重大事故都是由人为因素造成的。
智能温湿度采集系统,就可以解决这个浪费人力资源,缺乏科学性等问题。
因此,本设计具有重要意义。
8051是常用的控制芯片,在机电一体化、工业检测控制、智能仪器仪表等方面取得了令人瞩目的成就。
8051单片机简单易学,性价比高,而且能够实现自动控制温度和湿度。
使用8051单片机设计智能温湿度采集系统,可以即时准确地反映温度和湿度的变化,完成将温度升高至规定的温度,冷却到特定的温度,保持一个恒定的温度等功能,对湿度控制也是如此。
拿温室而言,应用这个系统无疑给植被的生长提供了一个更合适的环境,对于大棚种植和花圃、花卉栽培,必须安装温度和湿度的设备对其进行采集监控。
本系统可以及时、准确地反映温度和湿度的变化,能够满足温度和湿度的控制要求。
总之,智能温湿度的采集具有非常大的市场前景和实用价值。
1.2研究的任务和要求
1.能够实时、准确的显示温度值与湿度值。
2.温度值和湿度值的上下限可以由用户根据需要由键盘输入并通过显示器显示。
3.通过采集温度和湿度值,准确地判断标准值与当前值之间的差异,及时地启动报警装置进行报警。
2系统方案设计
2.1总体方案设计
AT89S52作为主控制器,主要是处理由DHT11温湿度传感器送来的数据,并将处理好的数据送入显示模块。
温湿度采集模块主要是用来采集周围的环境参数,并把采集到的数据送入单片机;按键模块主要是用来完成温湿度上下限的设定;报警模块是用LED显示灯来实现的,用来判断周围的温度或者湿度是否超出设定数值;显示模块主要用来显示当前的温湿度。
2.2系统组成及框图
本系统主要由温湿度采集模块、显示模块、报警模块和按键模块组成。
其原理框图如图2-1所示。
图2-1系统组成框图
3硬件设计
3.1微处理器
微处理器是控制系统的核心部件,具有控制功能强、体积小、功耗小等一系列优点,它在智能仪表、工业控制、通信系统、节能技术改造、信号处理及家用电器产品中都得到了广泛的应用。
本设计采用AT89S52作为微处理器。
3.1.1AT89S52的介绍
AT89S52是一种功耗低且性能很高的CMOS8位微控制器,它具有8K的系统可编程Flash存储器。
AT89S52具有以下几个标准功能:
8K字节的闪存,256字节的RAM,32位的I/O口线,看门狗定时器,两个数据指针,三个16位定时器/计数器,一个向量中断结构,全双工串行口,片上振荡器和时钟电路。
其实物如图3-1所示。
图3-1AT89S52实物图
AT89S52相关引脚说明:
P0端口:
P0端口是一个8位的漏极开路的双向I/O口。
P1、P2、P3端口:
P1、P2、P3端口是内部带有上拉电阻的8位双向I/O口。
RST:
复位输入。
EA/VPP:
访问外部程序存储器控制信号。
XTAL1:
振荡器反相放大器的输入端和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输入端。
3.1.2AT89S52的主机模块
单片机系统的扩展是以最小系统为基础的,所以应首先熟悉应用系统的结构。
单片机最小系统包括晶振电路和复位电路。
AT89S52的最小系统如图3-2所示。
图3-2AT89S52的主机模块
1.复位电路
RST引脚是微控制器的复位端,高电平有效。
在引脚上输入至少两个连续的单片机周期的高电平,单片机复位。
使用时,在RST引脚和GND引脚间接一个10KΩ的下拉电阻,与VCC引脚之间接一个10μF的电解电容,就可以保证上电复位。
2.晶振电路
该电路是由内部反相放大器通过引脚XTAL1和XTAL2与电容C1和C2构成,产生晶体振荡信号。
晶振在单片机电路中的作用非常大,单片机一切指令的执行都建立在晶振的基础上。
振荡器对单片机的应用影响很大,因此在设计印刷电路板的时候,应使晶体和电容尽可能地与单片机靠近,以保证其稳定可靠。
3.2温湿度采集模块
由于温度与湿度不论是从物理量本身还是在人们实际的生活中都有着密切的联系,所以温湿度一体的传感器就会相应产生。
温湿度传感器是指能将温度量和湿度量转换成容易被测量处理的电信号的设备或装置。
市场上温度和湿度传感器测量的一般是相对温度和相对湿度。
本设计采用DHT11温湿度传感器。
3.2.1DHT11的介绍
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用程序特定的数字采集模块和温湿度传感器技术,以确保产品的高可靠性和优异的长期稳定性。
该传感器包括一个电阻湿度传感元件和一个NTC温度测量元件,它使用的是单线串行接口,因此系统集成既快速又简单。
其实物图如图3-3所示。
图3-3DHT11实物图
DHT11具有以下几个特性:
相对湿度和温度测量;全部校准,数字输出;卓越的长期稳定性;无需额外部件;超长的信号传输距离;超低能耗;4引脚安装;完全互换。
表3-1DHT11引脚说明
引脚
名称
注释
1
VDD
供电3-5.5VDC
2
DATA
串行数据,单总线
3
NC
空脚,请悬空
4
GND
接地,电源负极
3.2.2单总线的介绍
近年来,美国的达拉斯半导体公司(DALLASSEMICONDUCTOR)推出了一项特有的单总线(1-WireBus)技术。
该技术与其它总线不同,它采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的,因而这种单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。
MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40位的测量数据,并触发一次信号采集,用户可选择读取部分数据。
DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集。
采集数据后转换到低速模式。
3.2.3温湿度采集模块电路设计
DHT11传感器与单片机的连接相对比较简单。
单片机的P1.0口用来收发串行数据,即数据口,连接传感器的Pin2(单总线,串行数据)。
由于P1.0口的负载能力较小,无法满足DHT11电流输入要求,因此在传感器的Pin2口与电源之间连接一个10KΩ的上拉电阻。
而传感器的电源端口Pin1和Pin4分别接VCC和GND端,传感器的第三脚悬浮放置。
DHT11传感器与单片机的连接如图3-4所示。
图3-4温湿度采集模块电路
DHT11数字湿温度传感器采用单总线数据格式。
即单个数据引脚端口完成输入输出双向传输。
其数据包由5Byte(40Bit)组成。
数据分小数部分和整数部分,一次完整的数据传输为40bit,高位先出。
DHT11的数据格式为:
8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和,其中校验和数据为前四个字节相加。
传感器数据输出的是未编码的二进制数据。
数据(湿度、温度、整数、小数)之间应该分开处理。
例如,某次从DHT11读到的数据如图3-5所示:
图3-5某次读取到DHT11的数据
由以上数据就可得到湿度和温度的值,计算方法:
湿度=byte4.byte3=45.0(%RH)
温度=byte2.byte1=28.0(℃)
校验=byte4+byte3+byte2+byte1=73(=湿度+温度)(校验正确)
3.3显示模块
3.3.1LCD1602的介绍
1602液晶,也被称为1602字符液晶,它是一个专门用于显示数字、字母、符号等的点阵型液晶模块。
它由若干个5X7或5X11等点阵字符位组成,每一个点阵字符位可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,因此它不能很好地显示图形(一个自定义的CGRAM,显示效果并不好)。
1602LCD显示内容为16X2,可同时显示两行,每行16个字符。
图3-6LCD1602实物图
LCD1602引脚说明:
第1脚:
VSS接地。
第2脚:
VDD接正极。
第3脚:
VO是液晶显示器的对比度调整端。
第4脚:
RS为寄存器选择。
第5脚:
R/W为读写信号。
第6脚:
E端为使能端。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
背光源负极。
3.3.2显示模块电路设计
LCD1602采用的是动态显示方式,向LCD输入的数据为ASCII码,需要通过扫描依次送到LCD显示。
图3-7为LCD1602内部RAM显示缓冲区地址的映射图,00~0F、40~4F分别对应LCD1602的上下两行的每一个字符,只要往对应的RAM地址写入要显示字符的ASCII代码,就可以显示出来。
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
……
27
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
……
67
图3-71602内部显示地址
本次设计中,用AT89S52的P0端口作为数据线,分别连接显示器的D0-D7,P2.5、P2.6、P2.7分别连接显示器的RS、R/W、E端。
其中V0引脚上加了一个10KΩ的滑动变阻器,这个变阻器是用来调节LCD1602的对比度的,通过调节滑动变阻器改变V0的电压值,从而使LCD1602显示在最清晰的状态,LCD1602与单片机的接口电路如图3-8所示。
图3-8显示模块电路
3.4按键模块
这个设计中,按键模块主要采用了四个键进行控制,S2为设置键,S3为增加键,S4为减少键,S5为确认键,分别连接到AT89S52的P3.2-P3.5,如图3-9所示。
其中,温度和湿度都可以设定上限和下限,第一次按S2键,就会出现温度上限的设置界面,按S3键可以设置上限温度的增加,按S4键可以设置上限温度的减少,再按S5键进行确认,就成功地设置了温度的上限。
继续按S2键,就会出现温度下限的设置界面,
设置方法同温度上限的设置,湿度的上下限设置也是如此。
这样,温度和湿度的上下限就可以确定了。
图3-9按键模块电路
3.5报警模块
本设计中,报警模块采用了LED灯进行报警,系统中共用了5个LED灯,D1为正常工作指示灯,D2为温度上限指示灯,D3为温度下限指示灯,D4为湿度上限指示灯,D5为湿度下限指示灯。
D1-D5分别与单片机的P1.0-P1.5连接,单片机中的P1.1、P1.2脚分别为温度高于和低于上下限的控制脚,P1.3、P1.4脚分别为湿度高于和低于上下限的控制脚。
系统正常工作的情况下,D1灯亮;如果所测温度高于温度上限的话,D2灯亮;如果所测温度低于温度下限的话,D3灯亮;如果所测湿度高于湿度上限的话,D4灯亮;如果所测湿度低于湿度下限的话,D5灯亮。
图3-10报警模块电路
4软件设计
软件设计是本次设计中不可缺少的环节,贯穿了整个毕业设计,是本次设计能够完成的最重要的环节之一。
4.1主程序流程图
主程序的主要功能是负责读出并处理DHT11测量的温度和湿度值,并将温度及湿度值进行实时显示,并进行阈值报警。
其框图如图4-1所示。
主程序中,先对温湿度传感器DHT11和LCD液晶显示器进行初始化设置,然后经过一定的延时之后,由DHT11采集环境的温湿度,然后将采集到的参数送到单片机进行处理再在LCD上显示出来,最后判断温湿度是否超过阈值,如果超过,就启动报警装置(即LED灯亮)。
图4-1主程序流程图
4.2温湿度采集模块程序设计
图4-2温湿度采集模块流程图
温湿度采集部分的程序流程为:
先对DHT11进行初始化设置,然后写入数据,经过其内部转换装置进行温湿度转换,最后将转换的结果送入单片机。
4.3显示模块程序设计
图4-3显示模块流程图
5硬件电路的调试
根据系统的设计,将该系统的各个组成部分连接好。
根据实验手册了解的各个组成部分的工作原理。
调试DHT11芯片。
运行,观察现象;如果现象正确,表明DHT11工作正常,可以使用。
调试LCD1602芯片。
调用测试程序,运行,观察现象;如果现象正确,表明LCD1602液晶显示工作正常,可以使用。
调试键盘,编写键盘按键值确定程序,运行,观察现象;如果现象正确,表明键盘扫描正常,可以使用。
焊接完成后检查电路板的焊接情况,用万用表检查电路是否有短路、虚焊。
检查完毕后,在确认没有问题的情况下进行加电测试。
用户温度和湿度输入数据时上限和下限分别在LCD1602显示。
读按键存储的过程是循环程序,可以循环等待到用户输入正确并确认为止。
(1)Proteus仿真图
本设计采用的温湿度传感器DHT11,由于proteus里没有DHT11,我找了SHT11进行代替,所以部分功能未能实现。
图5-1proteus仿真图
图5-2温湿度上下限设置界面
(2)实物图
图5-3实物图
结论
在大学的学习中,毕业设计是一个非常重要的环节,是我们步入社会和参与社会实践的一个很好的锻炼,从最初的选题、构思、绘图、编程、仿真直到完成设计,我查找资料,经过老师指导与同学交流,编写程序,直至仿真调试以及硬件焊接,每一个过程都是一次成长和对自己的一次检验。
本设计是基于单片机的温湿度采集器,包括硬件和软件两部分。
起初我对于单片机的应用并不是很了解,本科学习中初步接触过C语言,由于本次设计需要硬件和软件两部分,因此我是从软件部分先开始的,然后才开始硬件电路的设计,由于软件的不完美影响了硬件电路设计不是很美观。
在软件设计过程中,我基本是一步步开始学起的,在学习中遇到很多问题,经过戴老师的指点和同学的讨论,我学到了很多编程技巧,同时也掌握了一些编程思想。
由于原器件的局限性,硬件电路不是很美观,在画原理图的过程中我又进一步掌握了protel99se和proteus的基本应用,并有了较为深入的了解。
由于电路设计比较简单,所以并没有涉及PCB板,直接手动焊接完成电路。
通过本次设计,我对于主要芯片AT89S52有了基本的了解,基本掌握了该芯片的基本功能。
经过软件在硬件电路的调试后,基本功能均能实现,如果把手放在传感器上面,温度和湿度会立即发生变化。
参考文献
[1]张剑平.智能化检测系统及仪器.北京:
国防工业出版社,2005.
[2]刘畅生.传感器简明手册及应用电路—温度传感器分册(上册).西安:
西安电子科技大学出版社,2005.
[3]孙育才.MCS-51系列单片微型计算机及其应用[M].南京:
东南大学出版社,2004:
231-236.
[4]公孙茂,马宝匍,孙晨.单片机入口接口实例集[M].北京:
北京航空航天出版社,2002:
120.
[5]张靖,刘少强等.检测技术与系统分析.北京:
中国电力出版社出版,2002.
[6]李军,李赋海等.检测技术及仪表.北京:
中国轻工业出版社,2006.
[7]胡辉,王晓,戴永成.单片机原理及应用设计[M].北京:
中国水利水电出版社,2005:
6-16.
[8]蔡菲娜.单片微型计算机原理和应用[M].杭州:
浙江大学出版社,2003.
[9]徐爱钧.智能化测量控制仪表原理与设计[M].北京:
北京航空航天大学出版社,2007:
114-126.
[10]刘仲娥,张维新,宋文洋.敏感元器件与应用[M].青岛:
青岛海洋大学出版社,2006:
46-125.
致谢
此次毕业设计是在我的导师戴金桥老师的精心指导及全力支持下完成的。
该系统的设计成功与戴老师的帮助有着千丝万缕的联系,再加上自己的努力才能成功地完成预期目标。
整个论文写作过程中,他给予了我耐心的指导和帮助并提出严格的要求,引导我开阔思维,帮我解答疑惑,鼓励我要大胆创新,这让我在大学最后的生活时光中,不仅增长了知识,开阔了眼界,锻炼了头脑,还培养了自己的钻研精神。
他严谨的学术作风,一丝不苟的工作态度,将指导我今后的工作和学习,在此,我向戴老师表示最诚挚的谢意!
同时我还要感谢我的同学和朋友,他们给了我很多有用的意见和建议,还在论文布局过程中提供了热情的帮助。
最后,我还要感谢本文引用的所有的文献学者们,如果没有研究学者的帮助和启发,我将很难完成这篇论文的写作。
附录1系统总体设计图
附录2主程序
#include
#include"define.h"
uchari,key_flag;
charset_temp_H=20;//设定温度的变量
charset_temp_L=03;//设定温度的变量
charset_humi_H=60;//设置湿度的变量
charset_humi_L=40;//设置湿度的变量
sbittemp_led_H=P1^1;//温度上限指示灯
sbittemp_led_L=P1^2;//温度下限指示灯
sbithumi_led_H=P1^3;//湿度上限指示灯
sbithumi_led_L=P1^4;//湿度下限指示灯
sbittemp_JDQ_OUT=P2^0;
sbithumi_JDQ_OUT=P2^1;
sbitk1=P3^2;//定义按键K1
sbitk2=P3^3;//定义按键K2
sbitk3=P3^4;//定义按键K3
sbitk4=P3^5;//定义按键K4
/////////////////////////延时函数/////////////////////////////
voiddelay(ucharx)
{
uchara,b;
for(a=0;a<20;a++)
{for(b=x;b>0;b--);}
}
/////////////////////////显示温度和湿度//////////////////////////
voiddisp_t_h(void)
{
write_cmd(0x8c);
write_dat(U8Temp_zheng/10+0X30);//显示温度十位,加0x30是转换成ASCII码
write_cmd(0x8d);
write_dat(U8Temp_zheng%10+0X30);//显示温度个位,加0x30是转换成ASCII码
write_cmd(0xcc);
write_dat(U8Humi_zheng/10+0X30);//显示湿度十位,加0x30是转换成ASCII码
write_cmd(0xcd);
write_dat(U8Humi_zheng%10+0X30);//显示湿度个位,加0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 智能 温湿度 采集