基于单片机的室内空气质量监测的设计与实现

摘 要

由于中国市场经济的蓬勃发展,以及民众日常生活技术水平的提升,中国民众对环保问题和卫生问题也越来越
关注,对环境的质量状况也引起了越来越多的重视。并且由于全国空气质量的下降,霾气候事件也出现了增加,社
会危害状况逐步增加,全国百姓的身体状况也遭受了很大的影响,因此全国许多地方都将霾气候事件纳入雾霾问
题,用作灾害性气象预警预报。
  本文所研究的室内空气质量监测器,以美国STC工公司的一个八位超低功耗单片机STC89C52为主控核心,可以完
成对室内环境温度,湿度,以及PM2.5的信息进行处理,并当超过阈值时报警的功能,采用LCD1602显示屏,显示清
晰准确。同时本设计耗电量少,操作简便,适宜广泛应用于家庭和社会中的医学及卫生保健,并能够实时检测环境
的质量。实现人们主动监测室内空气质量的功能。为室内空气质量问题做出预警,从而避免灾害的发生,保障人民
安全。
经过实验达到了在室内监测空气质量的效果,当室内温湿度,PM2.5和甲醛超过阈值是会报警提醒,保障人体健康。
关键词:STC89C52,温湿度,PM2.5,甲醛

第一章 引 言

1.1 研究背景
  随着人类对环境质量的了解程度的提高,和现代卫生保健知识的发展,室内环境空气品质的优劣也就日益关
键,人们对自身安全的关注也持续增加,人类不但想要了解是哪些污染在作怪,更想要了解污染的浓度水平怎样?
这些浓度会对身体产生哪些短期和长远损害?对已经存在的污染物又应当怎样控制与治理?
  所以在这个状况下,专门设计研制一种空气质量检测系统才是最具有现实意义的。而目前,对于空气质量检测
系统来说已经有很多种类型,尽管这些仪器成本都不是很高,而且检测速度也比较快,但绝大数产品都仅仅用于检
测,并不具有完全自动控制调节空气品质的能力。而事实上,单一的检测系统无法带来更具经济效益的空气品质[1]
调控措施[1],无法提供优秀的空气质量监测系统,因而唯有将控制系统作为检测的后备支撑,检测工作才能够更广
泛持续地进行下去。所以,本文提出可以带有自检功能[2]实时显示当温湿度和PM2.5的值的精确的空气质量监测系
统,测量精准,并可以做出更全面的环境评估,为人们营建了一个更健康的室内环境。
1.2 空气质量监测系统的现状与发展趋势
  气体传感器检测甲醛已成为近年来甲醛检测研发中的最新热点。早在1983年,压电型甲醛[3]感应器就已问世。
  这些传感器产品可能不要求对试样经过其他处理过程就能够检测。且易受水元素的直接危害而使晶体振荡频率出现
漂移,因此基本无实用价值。但为了满足室内甲醛实际检测的要求,目前已研发出了许多甲醛快速测定仪,此类仪
器设备可以在当当场直观测出甲醛含量,而且使用简便,既适用于居家和公共场合室内空气中甲醛含量的当场检
测,也适用于通过环境测试舱法测定木制品板材中的甲醛释放率。不过,此类仪器设备的工作机理、反应特性等都
不尽相同。
  在检测有害毒气方面,国外有如美国ESC[3]公司和英国PPM公司独占龙头,引领行业发展。而我国的江苏安普公
司[5][4]与北京绿创与国外相比也不入下风。
  在国外,空气质量监测系统发展迅速,且由来已久,早在上世纪30年代,国外就开始了研发空气质量检测系
统,起因是,外国空过空气质量严重下降,政府迫切需要一种仪器来监测调控空气,保障人们的身体安全,维护人
们的利益,空气质量监测系统随之而生。
  在国内,我国空气质量监测系统的发展较国外是比较慢的,但是随着我国空气质量的下降,我国在这方面也迅
速发展,发展至今,江苏安普和北京绿创脱颖而出。走在行业前端,他们制造的检测系统,功能繁多,价格适中,
深受大众的喜爱。
  这部分检测仪器可以完成对危险废气的监测工作,应用于专门监测场所及试验研究场所。准确检出甲醛、苯、
氨等有害气体的装置,价格较高昂(如英国PPM有限公司[6]出产的PPM400[7]甲醛仪约两万多元),且检测时间较长,
隔较长时间后还需要多次重复检测,需专门的技术人员加以操纵,因此较难连续测试;而目前国内销售产品的设计
差异,大多聚焦在检测传感器与测控单片机芯片的选择上,操控上较外国销售的产品操作界面更为简便,机能更为
完善。
  国内外相比,我国虽然起步区较晚,但是发展迅速,现在就气体传感器这一方面与外国还有较大的差距,但是
国内生产的产品更适合国内群众使用,操作相对国外更加简便好用,价格更加便宜。
1.3 本设计的研究内容
  本课题将重点研发设计基于量化监测的“空气质量监测器”管理系统,此管理系统通过开展对室内温度、湿
度、PM2.5的预警监测,可以达到更全面的空气质量结果。空气质量监测器使用STC89C52单片机[8]为核心的主控芯
片[9],使用LCD1602[8]液晶模块,使用DHT11[11]湿度感应器作为监测湿度的元件,使用GP2Y1010AU0F[12]作为监
测PM2.5的元件[13],本设计体积较小,耗电量少,使用简便,适宜广泛应用于家庭和社会的医疗健康保健,也可以
即时了解周围空气的品质。
1.4 本设计的思路
本论文分成五个章节:
第一章主要介绍空气监测系统的研究背景与国内外的发展趋势,还简单介绍了本设计的研究内容[14]。
  第二章为硬件设计部分。先简单介绍了系统的整体方案,然后采取一些选型稍加介绍[15],最后仔细介绍了
STC89C52最小单片机模块[16]、液晶显示模块[17]、PM2.5检测模块[18]、温湿度检测模块[19]以及一些外围电路的
原理[20]。
第三章软件设计部分主要以软件流程图的形式来实现空气质量监测系统
  第四章为软硬件调试,将硬件和软件制作过程中遇到的问题进行描述,加以修正以此验证室内空气质量监测系
统的实际引导作用是有效的。
第五章总结与展望部分,将室内空气质量监测系统的制作加以总结,并对后续还能加上其他功能进行说明。

第二章 系统硬件设计

本章主要介绍本系统的下位机模块的设计原理,对主要涉及到的电路进行分析,并对关键的电路图进行展示。
2.1 系统整体方案设计
2.1.1 系统设计思路
  本室内空气质量监测系统能够实时显示当前环境的温湿度,监测当前PM2.5的值和甲醛的值,可手动调节这些阈
值,当超过自己所设置的阈值是,会触发声光报警装置,保障人们的身体安全。
  空气质量监测系统主要分为硬件与软件设计两大部分,硬件中采用STC89C52单片机,选用LCD1602为显示屏,
DHT11模块用作温度监测模组,GP2Y1010AU0F用作PM2.5的监测模组,再配合一些其他器件,编写C语言程序控制单片
机来完成室内空气质量监测系统的设计[21]。[21]整个硬件控制系统由电源、单片机主控部分、温湿度监测部分、
PM2.5监测部分、电子时钟部分、液晶显示部分、灯光报警部分、独立按键部分等八部分组成。软件部分使用单片机
为主控制芯片实现主编程、温湿度测量子编程、液晶显示子编程、PM2.5监测子编程、按键子编程、报警子程序等功能[22]。
2.1.2 系统整体框架图
室内空气质量监测系统总体结构框图如下图2.1所示。在这里插入图片描述

图2.1 系统整体结构图
2.1.3系统主要功能
  本系统可以通过温湿度模块实时检测当前环境的温度以及湿度,监测当前PM2.5的值和甲醛的值,可手动调节这
些阈值,当超过自己所设置的阈值是,会触发声光报警装置。系统还可以实时显示当前的时间。
2.2 选型确认
2.2.1 单片机的选型
方案一:STC89C52单片机
  STC89C52单片机是目前最常见的一款单片机,因为其优点明显,价格低廉好获取,深受行业人员的青睐与喜
爱。一般由微型数据处理器、数字存储器、内存、串行口、并联I/O口、定时器/计量器组成。对所有主要功能元件
的管理工作,一般通过对特定功能寄存器的集中管理方法。
方案二:STC12C5A60S2单片机
,如功能强劲,具备超强的抗扰动能   STC12C5A60S2单片机是一种51单片机的加强版[3],此单片机有许多优势
力,控制能力十分强大,在很多行业受到认可,因此具备很大的实际经济价值。
方案三:AT89S52单片机
  AT89S52在通电时,产生的功耗小,内置性能高的8为微处理器,其内部还有着8KB系统可编程的FLASH只读存储
器和128B的RAM。
因为空气质量监测系统对单片机功能需求较小,方案一性能稳定可靠,编程难度小,性价比最高,因此采用了方案
一STC89C52。
2.2.2 温湿度检测模块的选型
方案一:温湿度模拟传感器
  此传感器可以根据温湿度的变化来改变自身电阻阻值的大小,还需要一个模数转换器[23],将得到的模拟量转
换成数字量,单片机得到数字量之后,就可以相应的显示出现在的温湿度的具体数值。温湿度模拟传感器造价不高
但是模数转换器价格昂贵,因小失大。
方案二:DHT11温湿度数字传感器
  此传感器可以不用通过模数转换,可以直接和单片机连在一起实行通信,单片机可以用驱动直接读出当前环境
的温度和湿度具体值,得到数据速度快,方便而又迅速,价格与方案一相比,更加便宜。DHT11传感器只有一个数据
口,占用单片机的I/O口资源也很少。
通过这两个方案的比较,室内空气质量监测系统的温湿度监测模块采用方案二温湿度数字传感器。
2.2.3 PM2.5检测模块的的选型
方案一:激光PM2.5传感器
  激光PM2.5传感器的原理是当激光照射到经过检测区域的粒子上时形成的微小的光散射,某些特定方位上的光散
射波形与目标粒子直径直接相关,利用不同粒度的光波形分析数据和换算方式,即可得出各个粒度的真实粒子的量浓度。激光检测能够很快得到结果,检测过程中不容易出现问题、数据结果显示清晰,可以使用的时间长。
方案二:光学灰尘传感器
  光学式粉尘感应器(GP2Y1010AU0F),能够检测并测量孔径大于零点八微米的粉尘颗粒含量,如香烟烟雾等,其
具备超低效率,输出采用高电压仿真量输出,电流尺寸随粉尘含量变化呈线形关系。其内部结构还配有升压集成电
路,用来满足更大范围输入电压的需求,被广泛运用在各种空气质量监测仪器设备当中。
所以,传感器选择广泛运用在空气质量设备中的方案二。
2.2.4 显示模块的选型
方案一:LCD19264液晶显示
由19264个点阵组成,还采用了COB的软封装方式,可以使用时间长,连接牢固紧凑。
方案二:LCD1602显示
LCD1602显示屏是大学生毕业设计选择较多的一款显示屏,体积较小,所展示的信息内容也比较丰富等优点,它在低
功耗的应用系统和仪器仪表中,获得了人们的欢迎,具有较高的地位。
方案三:LCD1602液晶显示
  LCD1602液晶显示是一个能够显示汉字的小型显示器,整个显示器由128
64个LED构成[24],由于LCD1602液晶屏
通过了串行口和单片机实现通讯,显示器和单片机之间的连线量也大大减少,其中在电源正极和负极之间的连线量
只有九条,大大减少了单片微型计算机的IO口的使用量。LCD1602显示支持多种通讯协议,显示画面没有延迟,直接
能清晰显示。
  由于在本设计中要展示温度、湿度、PM2.5的值等多个数值,要使用的空间较多,方案一不合适,方案二和三相
比。方案三可以显示的内容比方案二多,所花费的金额少,所以选择方案三。
2.3 单片机最小系统电路设计
2.3.1 STC89C52单片机介绍
  单片机,是指通过高科技集成化的微小电子计算机控制系统与集成化的微型电脑。STC89C52单片机是目前最常
见的一款控制处理器,因为具备了简单使用,价格相对便宜等优点。一般由微型数据处理器、数字存储器、内存、
串行口、并联I/O口、定时器/计量器组成。对所有主要功能元件的管理工作,一般通过对特定功能寄存器的集中管
理方法 。在这里插入图片描述

图2.2 STC89C52管脚图
STC89C52关键的功能如下:
实际工作电压:3.3V~5.5V(5V芯片)和2.0~3.8V(3V芯片)。
  实际工作频率:0~40MHz,等价于普通的8051的0~80MHz的工作频率,48MHz为实际工作是的频率。
所谓的8K字节是用户可以使用程序的空间。
  通常的在系统可编程ISP和在应用可编程IAP中,不需要使用特定的仿真仪器,可使用串行接口(RXD/P3.0,TXD
/P3.1)或直接加载用户程式,在几秒钟内就能够很迅速的进行工作,单片机引脚图如上图2.2所示。![在这里插入图片描述](https://i
表2.1为显示P3口的第二功能:
表2.1 P3口的第二功能
  
管脚 名称 说明
10 P3.0 串行口的输入(RXD)
11 P3.1 串行口的输入(TXD)
12 P3.2 外部中断0(INT0)
13 P3.3 外部中断1
14 P3.4 定时/计数器0
15 P3.5 定时/计数器1
16 P3.6 外部数据储存器写操作
17 P3.7 外部数据储存器读操作
2.3.2 复位电路介绍
  复位系统是相当重要的,复位系统是当出现比如死机等错误故障时,恢复系统的运作。恢复有二种形式,一是
采用手动按钮来完成恢复,另一种就是看门狗,在检查到软件程序并无反应时,由系统软件进行恢复运算,使程序
重新从头开始运行。在本系统中,选择了第一种复位方式手动按钮恢复,其硬件接线图如图2.3所示:
图2.3 复位电路图在这里插入图片描述

在系统接上供电后,由于电容的充放电,先来了一个上电复位,但接着受到10k电流R14的影响,RST复位引脚始
终保持在低电平位置,系统并不能产生电流恢复。复位按键S4的按下,随之RST就会变为高电平,当此状态超过12时
钟周期后便可恢复电路。由于实时显示的缘故,所以十二个时钟周期,时间上是相当的短暂的,在需要时候只需要
按下复位按钮即可。
2.3.3 时钟电路介绍
  时钟集成电路是一个监控单位的"核心",在整体系统中是必不可少的,在本系统中,使用的是STC89C52单片
机,但因为它里面并没有时钟钟振荡电路,所以在本系统中,必须再外接一条钟振荡电路,
  由上图可以得到,时钟电路由无源晶振和电容以及GND连接而成,无源晶振选用晶振值为11.05926MHZ。C3和C4
的容值选为30PF,串联在地极与晶振之间,作用在于使晶振振动时更加快速,且保持在对应的频率之内。有了时钟
电路,就相应的有了基准信号。此时由数字单片机所控制的整个控制系统也就能够正常工作了。
2.4 液晶显示电路设计
2.4.1 LCD1602液晶模块介绍
表2.2 LCD1602引脚说明
  
管脚号 管脚名称 管脚功能描述
1 VSS 一般接地
2 VCC 接电源正(+5V)
3 V0 液晶显示器对比度调整端,接正电源时对比度计低,接地时对比度最高。
4 RS RS是选择两种寄存器,当高电平1时选择数据寄存器,当低电平0时选择指令寄存器。
5 R/W R/W是选择两种读写信号线,高电平1时进行操作,低电平0时进行写操作。
6 E 使能信号,下降沿使能。
7-14 DB0-DB7 三态数据线
15 BLA 背光电源正极
16 BLK 背光电源负极
  LCD1602显示图形分辨率为128×64,并内含了8192个1616点汉字,还有一百二十八种168点ASCII码,能够展
示8×4行16×16点阵的汉字,也可进行图文展示,低电压小耗电量都是其优点。
  由该模板所组成的液晶显示方案和同种类的图形点阵字型液晶模块比较,无论是在硬件电路组成上还是显示器
流程都要简单得多,而且该模组的售价也略低于同一点阵的图形液晶模块。上表为LCD1602模块接口说明。
2.4.2 液晶显示电路介绍
  本产品所选择的是具有汉字显示能力的LCD1602,其中LCD1602液晶显示屏的一共有十六根引脚。第一个引脚
接,。第二个引脚接5V电源,第三个引脚接着电位器,电位器的作用就是用来调节显示器的亮度,可以根据场合来
调节液晶显示器的对比度,使其保持清晰。第四个一直到第十四个引脚接的是单片机,其中第四个引脚是寄存器,
第五个引脚为读写信号,第六个引脚为使能端,只有当E接口为低电平的时候,液晶才开始运作。剩余的引脚为八位
数据线。
2.5 PM2.5检测电路设计
2.5.1 PM2.5检测模块介绍
  夏普光学粉尘感应器(GP2Y1010AU0F)对于测量非常细小的粒子,例如香烟灰烬等,是非常有用的,而且是最常
见的室内空气净化器控制系统。该设备中,有一组红外线发光二极管和光电晶体管,成对角安装以容许其测量到在
室内空气中产生的粉尘反照光。该感应器有非常低的电压损失(最高20mA),而且能够搭载最高达7VDC的感应器。
(1)PM2.5模块具体数值如表2.3所示:
表2.3 PM2.5模块参数
  
参数 参数值 参数 参数值
电源电压 5-7V 清洁空气中电压 0.9V 典型值
工作温度 -10-65摄氏度 工作温度 -20~80℃
消耗电流 20mA最大 存储温度 -20~80℃
最小粒子检出值 0.8微米 使用寿命 5年
灵敏度 0.5V/(0.1mg/m3) 尺寸大小 46mm×30mm×17.6mm
(2)模块的驱动条件
  由于驱动周期性(脉冲周期)驱动持续时间输入输出电流会发生变化,规范书特性的规范值是脉冲周期T:10ms,
脉动长度Pw:0.32ms,采样持续时间:0.28ms,按照此要求变化,标准书上规定的特征值(无尘时输入输出电流、检
出感度)将相应发生变化。但在微机程序上,没有以此要求规范的情形下,仍请在规范书的建议范畴内使用。此外,
随着电源电压,输出电流也会发生变化。当无法完全按照规格书要求来设计时,可以依据脉冲周期、脉冲长度的变
化,得到输出电流的大小和电源电压—输出电流的特点。
(3)模块检测PM2.5的方法
  关于检出方式,首先插上电源后一秒钟内会平稳、正常地运转,之后才能完成检出。根据模块输出电流的绝对
值,并不能判断检出的有无。在无尘中,从输出电压的质量改变量来作出判别。此外,更甚者还可通过在输出电平
持续时间上的质量改变来对检测出所测的对象。灰尘与烟的之间的差异在于输出电平的质量的不同和输出电平持续
时间的差异。
  香烟所占的微粒比较小,与之对比,而粉尘则是一个个大粒子,密集程度较低,断断续续的流入了粉尘感应器
的检出范畴中。就如图所述,因为香烟是持续的显示出更多的输出电流,而粉尘则是间断的显示出更多的输出电
流。所以,随着感应器的输出电流值(发光素子和已同期的脉冲输出电压值)在持续时间上的延长以及向微机应用软
件的读写,是不是无尘/是不是有烟雾/是不是有粉尘,究竟是什么状况,及污染的严重程度是什么,这些统统都够
得出,被模块所检测出来。
  在没有灰尘的时候的电流大小的变化是随着发光二极管发光电压的高低、在盒子内尘埃的粘附、以及周围环境
温度变化等而发生改变的。发光输出功率降低,无尘时的电流降低;而器件的箱体内,尘埃的粘附也能使无尘输出
电流有增大的趋势。
2.5.2 PM2.5检测电路介绍
  在本设计中,对PM2.5的检测采用光学灰尘传感器GP2Y1010AU0F,在测量烟雾这些方面,这类传感器是专业的。
在此模组的内部,一组红外线发光二极管与一组电光晶体管,呈对角布局,能够使其侦测到从周围环境空气中飘浮
的灰尘所反射过来之光,然后再依照灰尘的大小和多少输出一组模拟的电流值,其电流数值与所测量的粉尘含量呈
正比,器敏感度为0.5V/0.mg/m3。这个电路有3个引脚,一个接电源VCC,一个接地GND,剩下那一个作为数据输出口
与单片机的P3.0口相连,其PM2.5检测电路连接图如图2.6所示:
2.6.1 DHT11温湿度模块介绍
  DHT11数字温湿度传感器是一种包含大量校正数值信息输出的温湿度综合感应器。其运行了专有的数位模块采集
方法与温湿度感知方法,使得品牌具备了高度的安全性和优良的长期稳定性。感应器里面包含了一组电阻型感湿元
件和一组NTC型测量元件,并与一台先进的八位单片微式计算机相连接。使得该品牌具备了品质优良、超快响应、抗
干扰力量强的优势。每个DHT11感应器均在极为精密的温湿度校验和工作时间内进行了校正。标定关系均以程序的形
态存放于OTP内存中,而感应器里面则在测量信息的过程中要自动调用这个校正系数。单线制串行连接,因而使得系
统的整合工作变得简明便利。超小型的体积、很低的功率,以及信息传递距离达到了二十米以上,使之成为宽泛使
用甚至最严苛的使用场所中的绝佳选择。商品均为四针单排接脚密封。由于连接方式简便,特殊的密封形式也可按
照使用者要求而提供。
DHT11传感器实物图如下图2.7所示:
图2.7 DHT11传感器实物图
(1)引脚介绍:
表2.4 温湿度传感器的引脚说明
  
Pin 名称 注释
1 VDD 电源引脚,供电 3-5.5VDC
2 DATA 串行数据,单总线
3 NC 空脚,请悬空
4 GND 接地,电源负极
(2)接口说明:
因为本设计连线长度短于20米,所以采用了5K上拉电阻。如上图2.8所示
(3)电气特性:VDD=5V,T = 25℃,除非特别注明
表2.5 DHT11的电气特性
  
参数 条件 Min typ max 单位
供电 DC 3 5 5.5 V
供电电流
测量 0.5 2.5 mA
平均 0.2 1 mA
待机 100 150 uA
采样周期 秒 1 次
2.6.2 温湿度检测电路介绍
  在本空气质量监测器的系统中,对温湿度的检测则选取了常使用的DHT11温湿度数值检测器,由于DHT11的硬件
连接电路图简单易行,因此除去了开关电源VCC与供电系统负极GND之外,还使用了一个数据插针IO,插针先与一个
4.7K的上拉电阻R1串联,再与单片机的P2.5相连。只需要控制这一个引脚,就能读出当前的温湿度的值。为了提高
温湿度传感器的输出能力,所以设置了4.7K的上拉电阻R1。
2.7 时钟电路设计
  在电路中,时钟电路也是不可缺少的一部分,在本设计中,选取DS1302作为空气质量监测系统的时钟电路,
  根据图2.10,DS1302第1引脚接电源VCC,第4引脚接地GND,而第3和第4串联了一个32.768K的无源晶振,晶振充
当时钟电路上家源头。第8引脚又接了一个电源正极,以防万一,做后备隐藏能源使用的功能,第5,6,7三个引脚
分别与一个10K电阻串联再连到单片机的3个I/O口上去,10K电阻起到一个提高时钟输出能力的作用。
2.8 电源电路设计
  在本设计中,电源电路就只是简单设计了一下,仅仅只是3.5MM的电源座串联一个带有自锁开关的控制器,再加
上5V的电源和数据线就完成,
2.9 按键电路设计
  按键通过接入方式的不同被分为2种,独立按键和矩阵按键,本设计按键所涉及的功能较少,只需加减即可,所
以采用了独立按键的方式所以,
  由上图可知,连接方式非常简单直接,设置按钮接一个开关再接地极GND再与单片P1.0引脚相连,设置+按钮同
样的接地极GND再接P1.1,设置-按钮接地极GND再接P1.2引脚。
2.10 声光报警电路设计
  在空气质量监测系统中,为了人们的生命安全,需要用到声光报警系统的存在,本次报警系统设计的比较简
单,
  图中除如我们常提到的LED和蜂鸣器之外,还有1个PNP三极管,三极管起到一个开关的作用,三极管导通就会传
到给下面电路中蜂鸣器的正极高电平,触发报警功能。除此之外还有两个2.2K的电阻R18,R20起分压的功能,以及
当2.2K电阻上有3V电压,LED两端都有2V电压,这样LED灯泡就就不容易损坏。
2.11 本章小结
  本章节对室内空气质量监测系统中硬件部分作出了说明,其中包括了单片机最小单元、温湿度模块、PM2.5模
块、显示模块、时钟电路、电源、按键等,并附加上了电路的连接图以供查看。

第三章 系统软件设计

3.1 系统主程序设计
系统的主程序是系统的“发动机”,主程序可以对其他子程序进行初始化操作。空气质量监测系统的主程序流程图
如下图3.1所示:在这里插入图片描述

图3.1 系统主程序流程图
  单片机控制系统接通以后,主程序的执行,其他程序执行初始化,然后一直执行While函数,进行按键设置,读
取时、温湿度的值以及PM2.5值,并把他们显示出来,并与自己设置的阈值判断,是否需要报警处理,然后重复此操作。
3.2 温湿度检测程序
在本设计中,温湿度监测采用DHT11,程序设计流程图如下图3.2所示:在这里插入图片描述

图3.2 温湿度检测子程序流程图
  第一步是拉低数据引脚18ms,引发总线的拉高,延迟信号20us,然后主机设为输入模式,开始判断从机的电
平,若不是低电平,则跳出。若为低电平,则响应,执行下一项,接受温湿度数据并验证,最后结束。
3.3 PM2.5检测程序
空气质量监测系统的PM2.5软件流程图如图3.3所示:在这里插入图片描述

图3.3 PM2.5检测子程序流程图
  单片机会收到不用的字符并进行判断,直到收到字符为0xaa,就会连续获取下5个字符,并挨个生成PM2.5的检
测值。
3.4 时钟驱动程序
本系统时钟驱动子程序流程图如下图3.4所示:
在这里插入图片描述

图3.4 时钟驱动子程序流程图
  在本设计中采用DS1302时钟芯片作为时间的存储和读取的芯片。一开始对时钟芯片的初始化,接着发送控制的
命令,然后是单片机设置时钟芯片内的WP寄存器为0,打开读写操作的开关,就可以读出日期等参数了,在设置WP寄
存器为1,写操作被关闭。数据进一步被处理后再显示。
3.5 液晶显示程序
  本设计采用LCD1602显示,软件执行之后,首先进行初始化,其次设置写,显示坐标,把文字呈现在整体屏幕。
在第一个文字都表示完成之后,将按同上诉原理的方式表示下一个文字,直到所有的字符都表示完成为止。液晶屏
显示的程序流程图如图3.5所示:在这里插入图片描述

图3.5 液晶显示子程序设计
3.6 按键设置程序
  在本设计中,按键子程序的存在主要是对空气阈值进行设定,按键一共有3个,包括设置、设置加和设置减。当
设置键按下时,进行模式切换,按一下切换一次模式,依次是温度上限值设置状态,温度下限设置状态,湿度上限
设置状态,湿度下限设置状态,PM2.5报警值设置状态。在相应的状态下,再按下加键时,对相应模式下的设置值进
行相加。同理,按下减键时,对其相应状态下的设置值进行相减。再所有的设置状态下设置完成之后,再此按下设
置键即可恢复至正常状态按键设置的程序流程图如下图3.6所示:
图3.6 按键设置子程序设计在这里插入图片描述

3.7 本章小结
  本章是软件设计的展示,软件作为设计中的一大部分至关重要。对硬件电路加载软件程序,完成设计。本章软
件设计细分为7个小部分,对每一个部分稍加说明并用流程图的格式对其加以展示。

主函数程序:
void main() {
uint i, j, testnum;
static unsigned char Cnt = 0,Cnt1 = 0;
23
unsigned char alarm_Tem;
unsigned char alarm_Hum;
unsigned char alarm_Lig;
unsigned char alarm_Smok;
unsigned long sum = 0;
EA = 0;
Timer0_Init();
UART0_Init();
Data_Init();
EA = 1;
L1602_init();
L1602_string(1,1," Welcome to T&H ");
L1602_string(2,1," Control System!");
//ÑÓʱ
for (i=0; i<1000; i++)
for (j=0; j<1000; j++)
{;}
//ÇåÆÁ
L1602_string(1,1," ");
L1602_string(2,1," ");
  sprintf(dat1,"T:%02dC H:%02d%% %04d",(short)temperature,(short)humidity,PM25_Value);
L1602_string(1,1,dat1);
L1602_string(2,1,"VOC : % CO: ");
SmokH=55;
TH=rdeeprom(0);
Delay1(20);
TL=rdeeprom(1);
Delay1(20);
HH=rdeeprom(2);
Delay1(20);
HL=rdeeprom(3);
Delay1(20);
SmokH=rdeeprom(6);
Delay1(20);
VOC_H = rdeeprom(7);
Delay1(20);
PM25_H = rdeeprom(8)*10;
PM25_Value = Get_AD_Result2(0);
while(1)
{
sum += Get_AD_Result2(0);
if(++Cnt1 >= 50)
{
Cnt1 = 0;
PM25_Value = (sum /50)*(sum /25) ;
sum = 0;
}
24
if (FlagStartRH == 1)
{
TR0 = 0;
testnum = RH();
FlagStartRH = 0;
TR0 = 1;
Light_Value = Get_AD_Result(0);
Smoke_Value= Get_AD_Result(1);
humidity = U8RH_data_H;
temperature = U8T_data_H;
{
Cnt = 0;
}
if(Mode==0) {
if (Light_Value> VOC_H)
{
alarm_Lig=1;
}
if (PM25_Value > PM25_H)
{
buzz=0;
alarm_Lig=3;
Light_Control=0;
} else
{
alarm_Lig=2;
Light_Control=1;
}
if (temperature > TH) {
hot=1;
cold=0;
alarm_Tem=1;
} else if(temperature<TL)
{
cold=1;
hot=0;
alarm_Tem=3;
} else {
hot=0;
cold=0;
alarm_Tem=2;
}
if (humidity > HH)
{
humid=1;
dry=0;
alarm_Hum=1;
25
}else if(humidity<HL)
{
dry=1;
humid=0;
alarm_Hum=3;
} else
{
humid=0;
dry=0;
alarm_Hum=2;
}
if (Smoke_Value >= SmokH)
{
buzz=0;
Light_Smok=0;
alarm_Smok=1;
} else
{
Light_Smok=1;
alarm_Smok=2;
buzz=1;
}
  printf("head:%d,%d,%d,%d,%d,%d,%d,%d,%dend",(int)temperature,(int)humidity,(int)Light_Value,(int)
Smoke_Value,(int)alarm_Tem,(int)alarm_Hum,(int)alarm_Lig,(int)alarm_Smok,(int)PM25_Value);
  if ((Light_Value> VOC_H)||(PM25_Value > PM25_H)||(temperature > TH)||(temperature<TL)||(humidity 
> HH)||(humidity<HL)||(Smoke_Value > SmokH))
{
BJ=1;
}
else {
BJ=0;
}
} else {
hot=0;
cold=0;
humid=0;
dry=0;
buzz=1;
}
}
display();
KEY();
}
}

第四章 软硬件调试

4.1 硬件调试
本次焊接完成后出现显示屏没有数据显示这个问题。
  当电源连接后,显示器上没有数字。经过检查数分钟之后,分析意识到这个问题的发生一定是因为整个系统的
硬件连接上存在问题,后发现显示电路有两个引脚虚焊,程序焊接后问题解决。
硬件调试总结了一些心得:
  (1)某些器件的正负极不要焊接错,同时也要与自己所描绘的集成电路原理图加以比较,并查看电子元器件安
装的部位是不是与原理图上描绘的相同。比如二极管这样的正向导通,正相反截止的特性,就需要采用适当的位置
连接。
(2)在实施焊接作业时,应当尽量减少虚焊、脱焊等失误而造成不合格生产的形成。
  (3)电子器件焊需按照规定的时间前后联系,先焊阻值器、电容等体量较小的元电子器件,在后焊那些体量较
大的电子器件。这样可以大大提高焊接效果且不容易忘掉某些部件,故障率小。
4.2 软件调试
在本次设计中出现以下的一些问题。
(1)语法出现错误
  在编写程序的过程中,有时程序中会由于速度快而不能及时将所有字符全部录入,这在程序执行过程中将会引
起出现提醒,或者出现语法错误等。在发生了这个状况之下,就需要进行去修正,相对来说,认真检查,就很容易
发现问题所在。
(2)软件设计后,无法满足设计需求
软件的编写比较简单,参数不能需求,需要挨个仔细排查后,调整参数最终达到设计功能。
4.3 效果展示
图4.1为一切数值正常,各值都在阈值之内,各个灯不亮的实物演示图。在这里插入图片描述

图4.1空气质量监测系统实物图在这里插入图片描述

图4.2设置界面实物图(1) 图4.3设置界面实物图(2)
按下按键3,进入设置界面,按键1和2可对阈值进行加减,按一下按键3可切换到下一个阈值,按键4返回显示界面。
设置界面如上图4.2和4.3所示。
当温度低于所设置的阈值时,第1个代表升温的灯亮起,第4个代表报警指示灯闪烁。
  当温度超过所设值的阈值时,第4个代表报警指示灯闪烁,最下方第5个风扇灯打开,其余灯不亮。下图4.3和
4.4为这两种情况的实物演示图。
在这里插入图片描述

图4.3温度低于阈值实物图 图4.4温度超过阈值实物图
当湿度低于所设置的阈值时,第3个代表加湿的灯亮起,第4个代表报警指示灯闪烁。
  当湿度超过所设置的阈值时,第2个代表除湿的灯亮起,第4个代表报警指示灯闪烁,下方第5个风扇灯打开。实
物演示图如下图4.5和4.6所示。在这里插入图片描述

图4.5湿度低于阈值实物图 图4.6湿度超过阈值实物图
在这里插入图片描述

图4.7甲醛超过阈值实物图 图4.8甲醛低于阈值实物图
当甲醛超过阈值,第4个代表报警指示灯闪烁,第5个代表风扇灯打开。
当甲醛低于阈值,只有第4个报警指示灯闪烁。两个实物演示图如上图4.7和4.8所示。在这里插入图片描述

图4.9PM2.5超过阈值实物图
用一只笔搅动PM2.5传感器,模拟PM2.5,使得PM2.5值增加,当PM2.5值超过所设阈值,第4个报警指示灯闪烁,最下
方第5个风扇灯打开。
4.4 本章小结
  所以,通过本章的内容可以看出,调试作为制作产品的一个环节是非常重要的,通过调试,发现问题,解决问
题,把设计过程中因为虚焊漏焊等等问题导致的错误解决,最终使得空气质量监测系统的制作成功,验证了本系统
已经达到了既定的目标。
原理图在这里插入图片描述

第五章 总结与展望

5.1 总结
  本次单片机所设计的空气质量监测系统,是监测空气保障人们健康的一款单片机,对人体室内空气安全有一定
的积极意义。
  本设计为实时监测并显示温湿度,PM2.5的具体值,当超过自己所设的阈值时报警声光提醒,给予人们(特别是
某些不识字老人和小孩)反应缓冲时间,适当规避空气质量问题的发生,对维护人体有着健康积极的意义。
  通过本次毕业设计的制作,使本人获得了非常宝贵的实践经验,增加动手能力。为以后走向社会打下基础,让
书本中的知识与真正实践结合。真正开始做毕业设计之后,才真正的认识到自己的不足之处。需要加强自身,提高专业素养和技能,虚心求教老师和同学,最终完成本次的毕业设计。
5.2 展望
  本次设计虽然制作成功,但是也还有非常多不足的地方,还可以再加上一些其他功能。比如不通过按键设置,
改用触屏显示;增加远程操控指令;再加上二氧化碳模块,甲烷模块,蓝牙模块等其他检测模块,丰富功能,使得
这款设计更加完善,这些在后续的学习中,会不断完善。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值