基于单片机的室内立项环境监控系统设计.docx
- 文档编号:27647468
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:46
- 大小:1.48MB
基于单片机的室内立项环境监控系统设计.docx
《基于单片机的室内立项环境监控系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的室内立项环境监控系统设计.docx(46页珍藏版)》请在冰豆网上搜索。
基于单片机的室内立项环境监控系统设计
本科毕业设计(论文)
基于单片机的室内环境监控系统设计
学院名称:
电气信息工程学院
专业:
电气工程及其自动化
班级:
学号:
姓名:
指导教师姓名:
指导教师职称:
高级工程师
二〇一五年六月
基于单片机的室内环境监控系统设计
摘要:
温度与湿度是衡量环境的一个重要指标,在室内环境监测中,需要实时报告数据。
本设计以单片机为核心器件,由信号采集电路、单片机电路、显示电路、报警电路等组成智能温湿度监测报警系统,首先对需要检测温湿度的监控点采集信号,并将此信号传送给单片机进行处理,然后在LCD1602上实时显示室内环境温度和相对湿度。
此外,还可设置温湿度上下限,如测量值超过温湿度上下限,系统会自动报警。
如还需要检测其他环境指标,如PM2.5、CO2等,可通过增加有关传感器来实现。
经检测表明:
该系统工作稳定可靠,测量准确,具有一定的实用价值。
关键词:
温湿度;STC89C52;监控;报警
DesignofIndoorenvironmentmonitoringsystembasedonsinglechip
Abstract:
Temperatureandhumidityisanimportantindicatorofenvironment,intheindoorenvironmentalmonitoring,theneedtoreportdatainreal-time.Thedesignofsingle-chipmicrocomputerasthecoredevice,iscomposedofasignalacquisitioncircuit,MCUcircuit,displaycircuit,alarmcircuitcomposedofintelligenttemperatureandhumiditymonitoringalarmsystem,firstofallneedtodetecttemperatureandhumiditymonitoringsignalacquisition,andthesignalistransmittedtothemicrocontrollerforprocessingandintheLCD1602real-timedisplayindoortemperatureandrelativehumidity.Inaddition,thetemperatureandhumiditycanalsosetthelowerlimit,suchasthemeasurementvalueoftheupperandlowerlimitoftemperatureandhumidity,thesystemwillautomaticallyalarm.OtherenvironmentalindicatorssuchasCO2,PM2.5canbedetectedandcanbeachievedbyincreasingtherelevantsensor.Thetestshowsthat:
thesystemisstableandreliable,accuratemeasurement,hasacertainpracticalvalue.
Keywords:
Temperatureandhumidity;STC89C52;Intelligent;Warning
前言
在室内环境检测时,温度与湿度通常作为非常重要的测试指标。
在室内环境监测过程中,需要准确并快速的得到测量数据,以确保能及时进行调整。
在日常生活中,需要时常关心环境变化,只要能够把握住变化无常的环境,我们就可以能得到更好的发展。
例如在一些农业养殖场,只有很好的监测温度、湿度、采光等环境变化,及时进行调整,才能使产量得到最大化。
本次设计通过STC89C52单片机实现了对室内温湿度的检测与报警功能,通过LCD1602显示屏显示室内的实时温湿度。
系统采用了DHT11传感器,此传感器同时具有A/D转换器和温湿度传感器,通过STC89C52单片机处理并显示温湿度值,其它模块包括了时钟模块、复位模块、按键模块、显示模块、报警模块等。
本文详细介绍了基于STC89C52单片机的室内温湿度监测系统,其中包括硬件参数介绍和制作原理,软件的流程、编写以及软硬件调试。
系统简单易用,数据显示清晰明白,保证了测量准确度和便携性。
第1章绪论
1.1课题意义和目的
温度与湿度是衡量室内环境的一个重要指标,我们需要对这两个指标进行实时监控。
通过对温湿度的监控,我们可以及早发现一些问题并及时的处理,比如说在一些温室,花草的成长,和温湿度是离不开的,它们只有在适宜的环境下,在适宜的湿度和温度下,才能成长的更快,我们才能获得更大的效益。
我们需要一种造价低廉、使用方便且测量准确的温湿度测量仪,因此根据课题设计出了能够自动检测多个测点温湿度并根据设定值进行报警的系统。
1.2课题研究内容
本设计课题是基于单片机的室内环境监控系统,其主要研究内容为:
1、以单片机、温湿度传感器、LCD显示模块等为核心器件组成室内环境监控系统。
2、根据课题要求采购各种元器件并完成软硬件电路设计,完成焊接和调试工作。
3、完成该设计的程序设计,提交程序设计框图及源程序清单。
4、完成硬件与软件的综合调试,实现基本功能和主要技术指标。
1.3课题任务要求
设计制作一个利用单片机作为核心的室内环境监测报警系统,具体要求为:
1.设计一个利用温湿度传感器监测室内环境中的温湿度数据并根据设定的上下限值进行声光报警的系统。
2.该系统共有两个监测点,分别监测当前室内温湿度,要求系统可以分别清晰地显示两个测量点的温湿度值。
3.设计的系统可以通过按键调节温湿度上下限,当监测的温湿度超过设定的上下限时就会进行报警。
(例如当设置的温度上下限分别为40摄氏度和10摄氏度时,如监测到的温度超过40摄氏度或者低于10摄氏度,此时就会报警)
第2章系统方案设计
课题的目的以及需要实现的功能已经明确,接下来根据课题的具体要求制定设计方案,经过对各个模块的仔细分析最终选择可行的方案。
2.1系统方案构思
温湿度监控系统具有可以对数据进行采集和处理、显示采集到的数据、进行串口通信、输出控制信号等多种功能。
本系统由温湿度检测模块、LCD显示模块、单片机控制模块、按键模块、声光报警模块等6个主要模块电路组成。
该监测系统具有实时采集室内温湿度并对采集到的数据进行实时比较和分析,当超过设定要求的上下限时进行声光报警的功能。
(1)方案一:
系统原理图如图2-1所示。
本方案采用温湿度传感器采集温湿度信息经过A/D转换器将模拟信号转换成数字信号发送给FPGA中,再通过LED数码管显示出来。
按键电路是用来设置采集温湿度数据的上下限值。
当显示的温湿度数据超过设置的上限值或低于设置的下限值时,声光报警电路开始工作。
图2-1方案一电路原理框图
(2)方案二:
系统原理图如图2-2所示。
本方案使用温湿度传感器采集2个监测点的温湿度数据,并将采集到的数据发送到单片机中进行处理,处理完毕后再由LCD1602显示器显示。
按键电路是用来设置采集的温湿度的数据的上下限值。
当采集到的数据不在设置的上下限范围内时,监测系统开始报警。
图2-2方案二电路原理框图
2.2方案的选择与论证
2.2.1方案比较与论证
1.控制器选择
控制器主要有FPGA和单片机两种选择。
FPGA相对于单片机来说I/O口较多,扩展电路相对比较简单,而且FPGA的抗干扰性能和速度比单片机要好,但是单片机与FPGA相比价格较低,且功耗低,对于这种较简单的控制系统来说单片机的功能已经足够可以符合该系统的设计要求。
而且相比于FPGA,单片机只需4个端口中的2个就能满足系统的设计需要,并且可以用干电池供电,适合像本次设计一样的小型系统。
所以综合考虑,本系统选择单片机作为控制器。
2.传感器选择
传感器部分主要有模拟传感器和数字传感器两种选择。
模拟传感器采集的数据需要经过A/D转换器才能转换成数字信号,精度受到A/D转换器的影响,若选用精度较高的转换器费用方面就会提高,而数字传感器具有精度高,费用低的优点,所以选择数字模拟器(DHT11)。
3.显示器选择
显示器部分主要有LED数码管和LCD显示屏两种选择。
由于本次设计要求显示的数据较多,但是数码管显示出的数据并不容易观察,而LCD显示屏可以很直观的显示出收集到的数据,所以本次设计选择LCD显示屏。
综上所述,考虑到设计经费、电路功耗和硬件制作工序以及其他各方面的因素,本次设计选择方案二。
2.2.2系统结构框图
本次设计使用3节干电池作为电源,采用数字温湿度传感器将采集到的温湿度数据送入STC89C52单片机中,再用LCD1602液晶显示器显示出来。
按键电路是用来设置温湿度采集数据的上下限值。
当显示的数据超过设置的上限值或低于设置的下限值时,声光报警电路开始工作,对不在范围内的数据报警。
图2-3电路原理框图
第3章系统硬件电路设计
根据系统方案设计要求,进行多点温湿度监测,其主要电路包括以下七个模块:
温湿度测量模块、单片机控制模块、按键选择模块、显示模块、报警电路模块、时钟模块和复位模块。
3.1单片机简介
STC89C52单片机是一款功耗低、性能优秀、工作可靠的微处理器,此单片机的片内有4k字节的存储器,可以支持重复编程和快速擦除写入程序,能重复写入、擦除上千次。
本次设计采用STC89C52是因为这款单片机在执行指令方式和引脚上与51系列单片机几乎一致,而且相比51系列单片机,STC89C52具有更多的使用功能。
STC89C52可构成单片机最小应用系统,这样可以提升系统的稳定性,降低成本。
编程时可以使用5V的电压,不易对器件造成损坏,需要改写程序时也不用取下芯片,并且擦除时间仅需10毫秒,比51系列单片机快很多,适合很多嵌入式领域。
引脚介绍:
VCC:
供电电压
GND:
接地
P0口:
P0口是由P0.0—P0.7这8个双向I/O口组成的,每个引脚可以接收8个TTL门电流。
当对片内FLASH进行编程时,P0口作为接收命令的端口,而在检验程序时,P0口用来输出命令
P1口:
P1口既可以作为输入口又可以作为输出口,当它被内部上拉为高电平时为输入口,而当它被拉为低电平时作为输出口。
P2口:
P2口一般作为双向I/O端口使用或者作为高8位地址总线输出引脚
P3口:
P3口由8个引脚组成,能作为双向I/O端口使用但是一般会使用其第二功能
RST:
复位输入
ALE/PROG:
作为地址锁存允许信号输出引脚或编程脉冲输入引脚
PSEN:
片外ROM读选通信号输出引脚
XTAL1:
接入晶体振荡器的引脚
XTAL2:
另一个接入晶体振荡器的引脚
图3-1STC89C52单片机引脚示意图
3.2时钟电路
时钟电路能产生基准时钟信号,为单片机和整个硬件电路提供运行时钟,可控制PC机的工作节奏,如果没有时钟电路来产生时钟信号驱动单片机,单片机是无法工作的。
CPU完成各种不同的命令也需要有复杂的时序。
如时钟电路的输出为0或时钟频率超过单片机的工作频率,单片机也不能工作。
STC89C52的时钟信号产生方式有两种:
一种是利用芯片内部的震荡电路来产生时钟信号,另一种是从外部直接引入时钟信号。
图3-2时钟电路
3.3复位电路
复位电路的作用是初始化程序计数器(PC),它的作用除了可以使系统进入正常的初始化,还可以在系统发生错误锁死时起到重启系统的作用。
图3-3复位电路
3.4按键电路
用5个键来控制,Key1键是使界面返回到最初的的主界面,Key2键是用来由主界面切换到修改温湿度上下限界面,Key3键用来切换具体希望修改的某个温湿度上下限,Key4键用来增加温湿度上下限,Key5键是用来减小温湿度上下限。
图3-4按键电路
3.5温湿度检测电路
DHT11温湿度传感器是一款可以对信号进行自动校准输出的数字型传感器。
它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有测量精度高,稳定性强等特点。
因此DHT11具有稳定性高、抗干扰能力强、数据测量精确、产品价格低廉等优点。
每个DHT11传感器都经过实验室严格测试以确保其测量精度。
校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。
这些特性使DHT11成为了各类产品及设计中的首选。
产品为4针单排引脚封装。
DHT11的供电电压仅需3.3v到5.5v左右,完全可以用干电池供电,而能测量的湿度范围为百分之20到百分之90RH,能测量的温度范围为0摄氏度到50摄氏度。
对于像本设计一样的小型系统来说,DHT11的这些特性都极为适合。
从STC89C52单片机接受到开始信号后,DHT11传感器开始工作,在主机的开始信号结束后,DHT11发出响应信号并开始进行数据采集。
只有当DHT11传感器接收到由主机发送的开始指令时它才会开始采集数据,当没有接收到开始信号时DHT11传感器处于低速状态。
接收一次数据包含40bit,它分别由8bit的湿度整数数据加上8bit的湿度小数数据和8bit的温度整数数据和8bit的温度小数数据组成。
当数据正确接收时会显示4个数据之和的末八位。
图3-5温湿度检测电路
3.6显示电路
1602LCD的特性:
+3.3V电压,对比度可调,内含复位电路,可以提供各种控制命令,如:
清屏、字符闪烁、光标闪烁、显示移位等多种功能,有80字节显示数据存储器DDRAM,内建有192个5X7点阵的字型的字符发生器CGROM,8个可由用户自定义的5X7的字符发生器CGRAM,并且其功耗小、体积小、显示内容丰富、超薄轻巧,适合在一些小型仪器中使用。
图3-6显示电路
3.7报警电路
本电路使用四个报警指示灯,一个蜂鸣器和LCD1602液晶显示共同实现报警,四个灯的作用是可以清楚看出是哪个节点的报警,与蜂鸣器组成声光报警系统。
使用LCD1602可以清楚的观察测到的温湿度上下限。
当报警时,通过四个指示灯可以清楚地看出是哪个节点温度和湿度超限,如果想进一步知道是温度还是湿度报警,是超上限还是超下限报警,可以通过液晶清楚地看出来,因为在软件编程时,在液晶是适当的位置留了空位用来显示超上限还是超下限,设计电路时采用的思想是当温度超过上限时让液晶在适当的位置显示+,超下限时显示-,同样湿度也一样。
这样就可以清楚地看出是温度超限还是湿度超限。
图3-7报警电路
第4章系统软件设计
根据已设计好的硬件功能来编写相应的软件,C语言是我这四年主要学习的编程语言,所以在本次毕业设计中我选用C语言进行软件设计。
经过查阅资料分别完成子程序和主程序的设计,并在完成程序编写后进行测试,确保程序达到功能要求。
4.1软件设计总体思路
整个系统功能的实现需要软硬件之间相互的配合,当硬件功能确定时就应该着手编写可以实现这些功能的软件。
编写的软件包括主程序和主程序,主程序是所有程序中最重要的部分,编的时候需要格外留心,因为主程序主要负责调用各个子程序,如果主程序出错将会影响到整个程序的运行。
子程序主要用来实现各种功能,例如数据显示、数据通讯、数据测量等。
4.2主程序流程图设计
图4-1主程序流程图
4.3子程序流程图设计
4.3.1按键电路子程序流程图
用5个键来控制,Key1键是使界面返回到最初的的主界面,Key2键是用来由主界面切换到修改温湿度上下限界面,Key3键用来切换具体希望修改的某个温湿度上下限,Key4键用来增加温湿度上下限,Key5键是用来减小温湿度上下限。
图4-2按键电路子程序流程图
4.3.2温湿度测量子程序流程图
温湿度监测系统主要是采用DHT11传感器实现。
DHT11在执行命令时对时序的要求很高,所以必须按照DHT11要求的时序来编写程序这样才能达到任务要求。
DHT11会读进来12位高位在后低位在前的数,其中有7位整数、4位小数、一位符号。
具体的设计如下:
图4-3温湿度测量子程序流程图
4.3.3显示模块子程序流程图
本设计通过LCD1602显示实时的温湿度测量结果,LCD1602显示屏可以同时显示多组数据并且清晰直观,器件成品低,适合运用在本次设计上,具体软件设计如下:
图4-4显示模块子程序流程图
4.3.4报警模块子程序流程图
电路的具体报警用LED灯和蜂鸣器来指示,温湿度超过上下限,相应的指示灯会点亮,并且蜂鸣器响。
图4-5报警模块子程序流程图
第5章系统调试与数据分析
在完成了软硬件设计的基础上,根据任务书上的功能对整个监测系统进行整体调试及检查,并对发现的问题进行及时处理,完善整个系统的功能、稳定性和实用性。
5.1硬件电路调试
5.1.1硬件电路功能与测试
通电前先进行静态调试,因为本系统采用的电路板为PCB印制板,元器件大多使用贴片元器件,首先用万用表测量元器件焊接是否有短路、虚焊的情况。
确保各器件焊接正确后通电测量。
(1)单片机最小系统电路
在单片机外围接一个发光二极管,写一个简单的程序,把程序下载到单片机,看能否正常工作,如果可以说明单片机时钟电路没有问题。
在电路工作时按下复位电路的控制按键,通过观察发光二极管工作情况,可以看出复位电路是否正常工作。
由此来检查单片机最小系统是否工作正常。
(2)LCD1602显示电路
焊接好LCD1602电路模块后,将一个简单的显示测试程序下载到单片机中,观察LCD1602是否亮起,如果亮起说明显示模块电路焊接无误。
(3)温湿度测量电路
接上DHT11温湿度监测电路,严格按照DHT11的工作时序来编写程序,将编写好的程序下载到单片机STC89C52中,通过观察DHT11是否进行测量工作来确定电路是否正确。
(4)按键扫描电路
按键电路的检测主要是通过万用表进行测量。
(5)报警电路
报警电路由四个发光二极管,蜂鸣器和LCD1602显示电路构成,确保各个模块能正常工作的前提下,把编写好的程序下载到单片机里,使DHT11进行温湿度采集,当温湿度超过或低于预先设置好的上下限时,对应的发光二极管就会亮起,蜂鸣器响。
5.1.2存在问题及解决方法
(1)焊好后发现LCD1602不亮,初步猜想是可能存在虚焊或者各个端口与程序编写的不一致。
经过检查发现是LCD1602的A、K引脚未连接,连接好后LCD正常。
(2)键盘焊好后发现按下相应的键盘没有正常跳转,首先我用万用表依次检查每个按键是否都有效,将5个按键检测一下,看键盘接口与软件是否匹配。
结果发现是软件消抖不理想。
(3)整个系统焊接好后发现单片机不能正常工作,我依次检查了单片机各个引脚的接线,以及电源与地是否都接正确了。
最后发现是接触不良,重新调整单片机与卡座的连接,单片机可以正常工作了。
硬件调试后排除了那些硬件问题,硬件能正常工作了,达到室内环境监测系统的要求。
LCD1602屏幕上能显示当前温湿度,可以通过5个按键来进行温湿度上下限的调节,Key1键是使界面返回到最初的的主界面,Key2键是用来由主界面切换到修改温湿度上下限界面,Key3键用来切换具体希望修改的某个温湿度上下限,Key4键用来增加温湿度上下限,Key5键是用来减小温湿度上下限。
当温湿度超过按键设置的上下限,蜂鸣器响,且LED指示灯能指示出具体是哪一个温湿度传感器的哪个值不在上下限区间内。
5.2软件调试
由于已经进行了硬件调试,所以软件调试主要是软件的编译和功能的仿真。
在进行功能调试前必须用KEILC软件对所有程序进行编译,编译成功产生可执行的.hex文件后方可进行硬件仿真。
进行软件调试时不在PCB板上调试,而是用51单片机开发板,用LED灯模拟子程序是否工作正常。
5.2.1程序编写与测试
软件方面主要包括按键模块子程序编写、温湿度检测模块子程序编写、显示模块子程序编写、报警模块子程序编写等几个子程序设计,采取分模块设计,用KEIL软件进行程序编写,并分别将各个子程序在51单片机开发板上做软件调试。
(1)按键模块程序编写
在KEIL软件上编写按键模块子程序,按下按键,相应的指示灯亮起,以此来测试按键模块子程序是否正确。
(2)温湿度检测程序编写
在KEIL软件上编写温湿度检测子程序,采集温湿度传感器的接收信号,采集其中的一个温度参数显示在数码管上,为了测试程序是否正确,增加了当前温度,经过观察发现数码管上温度上升了,说明程序编写基本无误。
(3)显示模块程序编写
在KEIL软件上编写LCD1602显示子程序,先编写静态显示程序,显示一串字符串,显示正常后再将温湿度传感器检测到数据显示到LCD屏幕上,经过观察可以正确显示传感器检测到的数据。
(4)报警模块程序编写
在KEIL软件上编写一个小程序,让蜂鸣器响,指示灯依次点亮,以此来检测程序是否正确以及蜂鸣器是否能正常工作。
(5)上述子程序都成功后,将各个子程序整合,编写主程序,然后整体调试。
5.2.2存在问题及改进措施
由于本系统是模块化程序设计的,所以调试时要对各个模块的子程序进行调试。
调试从最简单的模块开始,一步一步的进行调试。
先进行显示模块的调试,调试LCD是否可以正常显示。
然后依次对数据处理、加操作、减操作等子程序进行调试,将键盘程序烧入进行调试。
然后将传感器部分接入,看是否和预想的一样,最后所有模块子程序都检验没有错误以后,编写主程序连接各个子程序进行整体的软硬件系统调试。
调试结果如下:
(1)按键按下不灵敏,这是软件上按键消抖的问题,本设计采用的是延时消抖,所以按下按键时需要长按。
(2)LCD显示会闪烁,经过对程序的检测发现这主要是显示中延时的长短设置问题,通过改变延时时间,可以让LCD屏幕在肉眼看的时候不闪烁。
(3)传感器接受信号反应慢,这个一方面是传感器本身的原因,另一方便是程序中需要改进,经过对程序的修改,发现缩短延时,精简语句可以解决传感器接受信号反应慢的问题。
5.3测试结果分析
本系统通过单片机能够完成实时室内环境的监测,能够接收命令和发送室内环境参数信息值传给单片机,单片机接收到数据后也可以进行处理并驱使显示模块进行数据显示以及触发报警。
硬件的制作已达到要求,软件也能达到任务书上的要求,但是整个系统还是存在一些不足之处的。
首先在LCD1602显示数据方面,一开始我采用4位显示,温湿度值不能同屏显示,不能达到直观显示结果的目的,而电路板上也没有足够的位置让我再加4位显示,于是我从软件下手,用T代表温度,H代表湿度,这样就能温湿度同屏显示了。
其次我发现了按键并不灵敏,有时按下有反应,有时则会失灵,通过查阅资料,我知道了这是由于按键自身构造的关系,由于按键中有弹簧,导致了按下的过程中电路不会马上接通而是产生一系列的信号而产生按键被按下多次的效果。
因为按键比较多所以我从软件出发,采用了软件消抖的方法,解决了这个问题。
室内环境监测系统测试结果如下:
LCD1602显示屏上能正常显示两个监测点的温湿度,能通过切换按键更改温湿度上下限。
当温湿度超过范围时,报警灯亮,蜂鸣器响,基本达到设计要求。
第6章总结与展望
本次我设计的是一个以STC89C52为核心的室内环
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 室内 立项 环境 监控 系统 设计