【《基于嵌入式的室内环境监测系统设计与实现》11000字】_第1页
【《基于嵌入式的室内环境监测系统设计与实现》11000字】_第2页
【《基于嵌入式的室内环境监测系统设计与实现》11000字】_第3页
【《基于嵌入式的室内环境监测系统设计与实现》11000字】_第4页
【《基于嵌入式的室内环境监测系统设计与实现》11000字】_第5页
已阅读5页,还剩29页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于嵌入式的室内环境监测系统设计与实现目录TOC\o"1-3"\h\u261绪论 2226321.1室内环境监测系统的背景和发展 2314641.2室内环境监测系统的国内外发展现状 3159631.3室内环境监测系统的必要性 4111602系统总体概述 5214572.1系统设计主要内容 518662.2系统设计的方案 5134712.2.1STM32单片机模块 5124982.2.2PM2.5监测模块 6238972.2.3温湿度监测模块 6110902.2.4可燃气体监测模块 6250702.2.5报警模块 6191822.2.6按键系统 6240942.2.7短信模块 671512.2.8显示模块 657703系统硬件设计 7317463.1STM32F103ZET6主控介绍 7141973.2SMT32最小系统设计 8159963.2.1晶振电路 9180353.2.2复位电路 10153163.3温湿度监测电路设计 11180683.4可燃性气体监测电路设计 13280643.5PM2.5监测电路设计 14191423.6STM32单片机及其配属电路 159963.7按键输入电路设计 17206223.8报警电路设计 1813953.9短信电路设计 18197844系统软件设计 21237244.1系统软件总体设计 21272694.2温湿度监测子程序设计 22314584.3可燃气体监测子程序设计 2446754.4PM2.5监测模块设计 24205184.5显示模块设计 25128264.6按键输入模块设计 265964.7报警模块设计 2752654.8短信子程序设计 27259995系统测试 29271775.1硬件调试 2924465.2软件调试 30102305.3实物测试 311绪论1.1室内环境监测系统的背景和发展智能室内环境监测系统具有远程控制,采集精度高等特点,系统能营造一个良好的学习、工作和生活环境。现如今,随着人们生活水平的不断提高,高质量的生活品质是我们所向往的,人一天70%的时间可能都是呆在室内的,室内的环境要求就显得越来越高,室内环境的质量处理得当,身心会感到舒适,处理不当可能还存在一定的危险,因此结合人们的许多诉求,我国对室内环境监测方面变得慢慢重视起来,同时也加大了对此方面的研究,使室内环境监测发展更上一层楼。单片机是一种微控制器,由加法器、寄存器、ROM/RAM等构成,可以对相关程序进行处理,从而完成想要的功能,最重要的是对数据进行分析处理采集,正是因为如此,在监测方面才得以被普遍应用。环境监测系统技术最开始的产生到目前的高速发展,发展水平已经非常高,为环境监测系统设计开辟新的发展方向。单片机技术在环境监测系统方向应用具有重要作用,智能环境监测就是智能控制方向的典型代表。环境监测系统是融合多种先进技术,如传感器、控制技术、单片机技术等,实现了设定、调节、显示等功能,如图1-1所示。图1-1智能环境监测系统1.2室内环境监测系统的国内外发展现状当前智能控制已经应用非常广泛,各种控制设备已经智能化、集成化,对智能环境监测系统技术的标准也越来越高。伴随着人们对此类需求的大幅上升,室内环境监测系统也慢慢的成为这其中不可或缺的一部分。许多国家都已经投入大量的精力研发与推广,相关技术手段不断提高,具有很强的竞争优势。(1)国外对环境监测系统的研究现状在1760年之后,德国相关人士研发出许多室内环境监测方法,通过电压监测方法实现室内温度的监测方法,之后越来越多的人在变频技术上进行研究,使用变频器实现室内有害气体和燃气监测和调节,这对室内环境监测系统有了大大的帮助;20世纪40年代,美国研究人员LinguWatiton研制出小型的环境监测系统样机,可以实现自动感应光照,具有温度湿度和光照强度监测等功能,主要根据光照强度、温度和湿度的测定,计算出生活中需要主要的情况,但体积比较大,当时生产成本高,因此没有普及和推广;到80年代,日本研制出智能环境监测系统技术,对日常生活影响非常小,实现了无辐射环保监测,在控制技术的成本上进行了大幅度降低,并由制造商进行商业化的推广。目前,国外的环境监测系统技术方面占有优势,在欧美、日本和美国等国掌握高端控制技术,其抗干扰性、稳定性、精准性达到先进水平。(2)国内对环境监测系统的研究现状对比于国外的环境监测系统,国内的研究水平和技术积累都存在一定差距,目前国外的环境监测技术已经蒸蒸日上,国内对此研究还处于萌芽阶段,我国大多数投入使用的室内环境监测系统大部分都是基于国外的研究基础之上的,在借鉴的同时也取得了很大的进步,尤其是在智能家居环境监测领域,基本与韩国三星监测技术相媲美。中国小米公司推出了智能家居系统,可以实现环境监测系统,可以实现室内温湿度、二氧化碳、光照等监测;为了测试室内有毒气体,如可燃气体、甲醛等含量,华中科技大学经过研究,确定了利用光的波长进行发射式监测,将此种方式命名为“发射式”。我国室内环境监测系统的研发任重而道远,只有更加准确,更加稳定的实现监测环境,才能快速追赶国外的脚步,也能保证我国人民的生活质量。目前,在我国有许多环境监测的相关机构,他们着重研究环境监测系统。在国家政策和政府部门协调的积极作用下,我国一定会克服重重难关,在环境监测领域越走越远。1.3室内环境监测系统的必要性起初,智能灯光控制系统的出现,是人们在环境监测领域作出的初步探索,紧接着结合了智能灯光控制系统中单片机的相关研究技术,室内环境监测系统应运而生。国外的研究水平较高,研究起步较早,技术水平的领先使他们在我国高端消费市场占领大部分的资源。国内的室内环境监测系统存在着许多的弊端,只能瓜分我国低端消费市场。这就显得室内环境监测存在更多的可能性,值得当代大学生以及研究人员对此进行探索,发展室内环境监测事业。本文设计是基于嵌入式的环境监测系统,在STM32控制的基础上,发挥控制技术、传感器技术,准确实现环境监测,为人们提高一个良好的生活环境,提高工作效率。

2系统总体概述2.1系统设计主要内容本设计用嵌入式相关技术,对室内环境进行相关监测,要求系统可以实时、准确的测量环境中的可燃气体浓度、PM2.5浓度、温度和湿度,具有显示和报警功能。采用STM32ZET6为核心控制器件,用多种类型传感器进行数据的获取,并用OLED显示屏显示所采集到的数据。最终实现了以下的功能:(1) 实现环境温度、湿度、可燃气体和PM2.5的监测。(2) 实时显示监测结果,用于观看。(3) 具有蜂鸣器报警功能,当监测到参数超过设定值以后,进行蜂鸣器报警。(4) 具有短信远程报警功能,将报警短信发送至主人的手机上。2.2系统设计的方案结合开题报告以及任务书提出的设计思路。将本课题细分为如下几个部分,分别为STM32单片机、可燃性气体监测模块、温湿度模块、PM2.5监测模块、按键输入模块、报警模块、短信模块和数据显示模块,如图2-1,以下是各个模块相关介绍。图2-1整体框图2.2.1STM32单片机模块使用STM32F103ZET6作为主控制器来操控运行整个环境监测系统,可以轻松快速地读取PM2.5、可燃性气体和温湿度数据,通过其他相关模块进行显示和报警。2.2.2PM2.5监测模块使用专用的PM2.5传感器,型号为GP2Y1014AU,通过ADC转换器进行模数转换,可以获取PM2.5的数值。2.2.3温湿度监测模块通过DTH11传感器来获取数字信号到主控制器,从而实现对温湿度的实时监测。2.2.4可燃气体监测模块使用MQ-9传感器实现对室内的一氧化碳、天然气、液化气等气体监测,实现防止燃气泄漏。2.2.5报警模块使用蜂鸣器实现系统报警,实现声音报警提示。2.2.6按键系统使用3个轻触按键实现报警阈值的设定,三个按键实现切换、设定+和设定-三个功能。2.2.7短信模块使用GA6-BGSM模块实现报警时候通过短信将报警短信发送至主人手机上。2.2.8显示模块本设计使用OLED显示器进行显示采集到的温湿度、PM2.5、可燃气体数据,同时可以显示设定的阈值。

3系统硬件设计3.1STM32F103ZET6主控介绍ST公司在2007年推出的单片机系列中,基于Cortex-M3内核的32位单片机STM32F103ZET6,是同内核产品中的佼佼者,STM32F103ZET6单片机质量良好、性能可靠、性价比高,几乎垄断了国内Cortex-M3单片机的市场份额。STM32F103ZET6单片机是STM32系列单片机中最具有代表性的,在接近13年的应用中,其稳定性是经受过实际考验的,是目前国内使用最多的Cortex-M3内核单片机。STM32F103ZET6是基于Cortex-M3内核的低功耗单片机,内部FLASH程序通过ISP和串口的方式进行固化程序,程序擦写次数可达10万次。STM32F103ZET6单片机与Cortex-M3指令是一样的,作为微型计算机,它的实际作用远超其他单片机。详细的产品资料和超高的性价比还有超强的售后保障都是这款单片机的巨大优势。实物如图3-1。图3-1STM32F103ZET6STM32F103ZET6内部是一个M3内核、NVIC终端控制器和丰富的外设组成,成为一个可以应用的高性能单片机,可以简化外围电路的设计。STM32F103ZET6的工作频率最高为72MHz,根据不同应用设置不同频率,对应不同功耗。STM32F103ZET6内部具有512K字节的FLASH型的ROM,可以实现程序存储和EEPROM功能。具有64K容量的RAM,可以实现随机变量的读取,这比传统的51单片机的几百个字节,高出数十倍。此控制器具有37个IO口,且具有复用和外部中断功能,十分强劲。STM32ZET6如图3-2所示。STM32F103ZET6具有定时器总数共有13个,且具有内部ADC和DAC进行硬件互联。STM32F103ZET6具有5个串口,一个为异步串行通信接口,两个为通用串口,并且支持LIN、红外总线等。芯片内部具有DMA控制器,能够实现非CPU干预下实现数据在芯片内部转移,减少CPU负荷,加快运行速率。STM32F103ZET6的三种接口可以实现最高400K和50MHz的通信频率。STM32F103ZET6内部具有3个ADC,可以实现单次、循环和重复采样模式,分辨率12位,最高转换速度1MHz。STM32F103ZET6可以运行Uc/os、ucLinx、RTOS等中小型操作系统,也支持多种文件系统。除此之外,STM32F103ZET6可以运行UC/GUI或EMWIN等界面系统,使用GUI能设计出炫酷的显示界面。图3-2STM32F103ZET6的引脚图3.2SMT32最小系统设计STM32主芯片、复位电路和晶振电路组成了STM32最小系统,该最小系统控制着整个系统的运行。由于单片机内部具有存储器,所以不需要外接存储器,最小系统设计十分简单,电路原理图如图3-3所示。图3-3最小系统原理图3.2.1晶振电路STM32F103ZET6可以使用内部的RC振荡器作为时钟信号,也能够使用外部晶振电路。因为内部RC电路不稳定,具有5%的温漂且震动频率较低,一般不采用。外部晶振电路是常用的晶振提供方式,为单片机内部提供时钟信号。单片机最小系统的时钟晶振电路如图3-5。晶振电路的两个时钟输出连接单片机的第5、6脚OSC_IN、OSC_OUT的时钟连接引脚,通过5-6脚将时钟信号输入到内部总线。图3-4中电容C3、C5和晶振Y2(8MHz)三个元件组成了时钟振荡电路,提供单片机的时钟信号的供给。图中C3和C5两个电容辅助石英晶振进行快速起振,起振后保持频率稳定,电路中电容的容值一般选取5pf-70pf,其中典型值为22pf,这次毕业设计使用22pf的电容作为起振电容。图3-4高速晶振电路图低速时钟电路是为内部RTC等低速外设提供时钟,一般使用都需要设计低速时钟。其电路与高速时钟相似,晶振频率改为32.768KHz,电容容值为10pf,信号输入至第PC14和PC15引脚,电路如图3-5所示。图3-5低速时钟电路3.2.2复位电路STM32ZET6单片机复位原理为:在单片机的第6脚RST脚在保持2个机器周期的高电平,单片机内核强制进行复位,复位后内部所有寄存器置位为初始值,RAM中的变量全部清零,ROM中程序从main函数重新运行。单片机复位电路在最小系统电路设计中是重要的一个部分,复位电路在上电启动、手动复位和调试等过程中具有重要作用。本设计最小系统的复位电路是阻容电路,如图3.6。图中电容C1和电阻R1组成的是复位电路,采用电容充放电原理,在系统通电一刻,电容C1通过R1充电,等效电容短路,RST引脚保持充电时间的低电平,当电容C1充电完成后,电容等效于电路断路,此时RST引脚保持高电平,这个过程完成了系统上电复位。根据电容充放电公式:t=RCLn[E/(E-Vt)],当电容电压为0.86E,表示电容充满,这时充电时间t=2RC,故电容和电阻的选型要保证t大于单片机的2个机器周期,完成单片机复位。为了方便系统进行调试,一般需要设定一个手动复位的按键,按键并联在复位电容C1两侧,当按键按下以后,RST引脚保持低电平,松开按键以后,恢复高电平,这样同样实现了单片机的复位过程。图3-6复位电路图3.3温湿度监测电路设计作品选用的是DHT11数字温湿度传感器是常用的温湿度信号采集传感器,这个传感器内部就有A/D转换器,出厂自带的温湿度校准参数,是嵌入式系统中常用的温湿度监测元件。DHT11温湿度传感器的湿度测量范围为20%-90%,温度测量范围为0℃-50℃,DHT11的工作电压为3V至5V,通过电源进行供电。DHT11元件拥有感应湿度的湿敏电阻和测温的NTC电阻,内部主要分为两大块:两路数模转换器、信号处理电路。此款传感器具有精确性高,性能好,操作方便的优点。如图3-7所示。图3-7DHT11DHT11的第一引脚和第三引脚为VCC和GND,是供电引脚,使用单片机的电源进行供电,即5V供电。第二脚为数据输出线—DO线,通过这个线进行温湿度数据的输出。在这次设计中DHT11的子电路图如图3-8所示,DHT11的第二脚DO连接在单片机的P1.6口,为保证通信稳定,在DO数据线上连接一个R33的上拉电阻,阻值常选取10K欧姆的阻值。在电路的实际设计中,将温湿度传感器的位置远离电路中发热和制冷元件,以免影响测量结果。在日常室内环境中湿度过高的环境会造成家电漏电的危险,湿度过低会使家电内部元器件产生静电破坏运作,湿度通常应保持在30%~80%之间;根据《室内空气质量标准》中阐述冬季室内湿度应保持在30%~60%,夏季室内湿度应保持在40%~80%之间,人才会感受到舒适;而适宜居住的温度在20摄氏度左右,温度报警则可根据特定需求进行更改,湿度报警也可根据季节的变化进行相应的更改。因此本设计温度阈值设定为35摄氏度,湿度阈值设定为70%,若超过阈值则报警。图3-8DHT11连接方式3.4可燃性气体监测电路设计系统采用MQ-9可燃气体传感器监测当前环境中的可燃气体浓度变化。MQ-9内部具有一个可燃气体敏感电阻,对烟雾中的碳化物、氮化物和氧化物等具有敏感性的气体。当这些气体浓度变化时,电阻的阻值也发声变化,然后根据电阻两端的电压,通过模拟信号与数字信号的转换,得到相关气体浓度数值。MQ-9传感器一般情况下用的是MQ-9模块,模块的实物图如图3-9所示,MQ-9模块监测准确、适用性强、抗酸碱性、耐腐蚀等特点。MQ-9模块集成了一个MQ-9探头和LM393比较器,模块有4个外部接口,下面对四个接口进行介绍:VCC,电源引脚,使用5V进行供电。GND,电源负极,连接系统地线。AO:传感器模拟量输出引脚,输出传感器电压信号。DO:传感器数字输出接口,如果有烟雾,则输出低电平,反之则输出高电平。图3-9MQ-9可燃性气体监测传感器本设计使用MQ-9模块的OA端连接STM32单片机的PA4口,通过数模转换读取浓度值,AO口输出模拟量,获得可燃气体浓度。MQ-9模块供电使用5V,如图3-10。图3-10MQ-9连接方式由于MQ9主要检测可燃性气体为一氧化碳气体以及天然气,而一氧化碳气体的的爆炸下限为12.5%,天然气中大部分成分都是甲烷,甲烷的爆炸下限为5.3%,因此可燃性气体阈值设定为5%,用于确保室内安全。3.5PM2.5监测电路设计系统使用的PM2.5传感器型号为GP2Y1014AU,该传感器通过检测散射光的强度从而算出PM2.5的浓度,传感器如图3-11。GP2Y1014AU传感器内部由LED的LED、光线接收器构成,内部LED通过电阻R2进行限流,连接VCC,防止LED过流,使用电容对电源进行滤波,保证光源稳定。模块第3-5引脚连接地线。模块第5脚是PM2.5浓度输出电压OV引脚。第6脚是传感器电源。GP2Y1014AU型PM2.5传感器的技术参数如下:工作电压:5-7V,工作电流:11mA,最大值:20mA。监测离子半径:大于0.8um。工作温度:-10-65摄氏度。敏感性:0.5V/0.1mg/m3。模块尺寸:46*30*17.6mm。图3-11PM2.5传感器实物图本设计的PM2.5电路原理图如图3-12所示。电阻R2连接模块的第1脚LED_VCC,对内部的LED灯光进行限制,PC13主要控制内部LED的发光闪烁,电容C1对LED电源进行滤波,PA5主要控制输出模拟量,从而得到准确的浓度数值,模块电源使用5V供电。图3-12PM2.5传感器电路原理图根据查阅PM2.5空气质量新标准相关资料所得:优为0~35ppm;良为35~75ppm;轻度污染为75~115ppm;中度污染为115~150ppm;重度污染为150~250ppm,因此设定PM2.5的阈值为75ppm。3.6STM32单片机及其配属电路本设计使用0.91寸的OLED显示器,是一款有机激光显示器,对于传统的LCD显示器屏幕薄,显示清晰,更加节能。OLED屏幕用于显示XXX、XXX的数值。OLED显示中英文、数字、曲线和图像等。OLED屏幕内置控制芯片,通过IIC或SPI接口进行控制,实现显示器的显示。模块无需背光电源,有自发光晶体,视角广,对比度鲜明等特点,OLED实物图如图3-13所示。OLED的技术参数如下:工作电压:3.3-5V,显示功率:0.06W。广角可视度:大于160度。分辨率为128*64。通信接口:IIC/SPI。驱动芯片:SSD1306、内部无字库。工作温度:-40-+70摄氏度。尺寸:27.3*27.8*3.7mm。图3-13OLED显示屏OLED显示器在IIC通信时具有4个引脚,下面对引脚进行介绍:VCC/GND:显示器的电源接口,连接电源。SCL/SDA:IIC通信的时钟线和信号线接口。OLED显示器的电路如图3.14所示,单片机的PA6连接OLED的时钟线SCL,单片机的PA7连接OLED的数据线SDA,OLED显示器使用系统电源供电。图3-14OLED连接方式3.7按键输入电路设计按键通常有四个引脚组成,具体如图3-15,按键由四部分组成,分别为四个引脚,按键,金属外壳和触点。四个引脚中,其中两个脚在内部进行相连接在一起,按下按键后,四个引脚导通。图3-15四脚按键图根据所做的系统需求,从左向右三个按键功能分别为切换选定某个检测量、增加某个检测量阈值数值、减少某个检测量阈值数值。电路如图3-16所示。图3-16按键电路原理图3.8报警电路设计蜂鸣器是常用的声报警元件,在报警条件满足时发出声音报警。设计采用的有源蜂鸣器可以发出各种频率的报警声,PWM调频控制。蜂鸣器电压为5V,电流为30-100mA,电流越大声音越大。蜂鸣器实物如图3-17。图3-17蜂鸣器实物图报警电路是蜂鸣器使用三极管驱动控制,电路原理图如图3-18。蜂鸣器是需要放大电路驱动,不能通过IO口直接驱动。图中Q1是PNP型三极管,型号为:S8550,Q1的基极与电阻R6端进行串联,在于单片机PC4端口相连,蜂鸣器则与电源接通。当IO为高电平时,则三极管截止,则不发出报警声,当IO口为低电平,三极管成功导通,蜂鸣器发出警报声。图3-18报警电路图3.9短信电路设计本设计需要发送提示短信提醒用户,短信的传输工程是由GSM模块完成的。常用的GSM模块主要有SIM800、SIM900和GA6-B等型号,这些型号具有相似的功能,使用标准的AT指令。本设计结合实际选取了GA6-B模块,它可以实现GSM/GPRS两种网络通信,能够实现短信、电话、上网和彩信功能。GA6-B模块信号传输及时,可支持具有2G网络功能的SIM卡,实现自动入网,自动注册等,GA6-B模组如图3-19所示,下面对其技术参数进行介绍:支持GSM850/EGSM900/DCS1800/PCS1900四频段。AT指令控制,TTL串口通信。支持语音通话、SMS短信、TCP通信,具有FCC和CE认证。额定电压为5-12V,开机电压>3.5V,峰值电流0.5A。射频灵敏度:<-107。上行速率为42.8kbps,下行速率为85.6kbps。图3-19GA6-B模组实物图本设计只使用GA6-B的短信功能,因此只需要连接模组的控制端口即可,电路原理图如图3-20所示,GA6-B模组的第13脚URX与单片机的串口TXD连接,即PA9口。GA6-B模组使用系统电源,要求系统电源需要为模块提供最少500mA的电流,保证在短信发送过程具有足够的能量。图3-20GA6-B模组电路图

4系统软件设计本设计使用的是Keil5软件编写程序,Keil是专门的单片机程序编写、连接和编译的软件,内置C语言编译器,可以通过对编写的C语言程序编译成目标代码,是目前开发51单片机最常用的软件。Keil软件用户界面简洁,开发便捷和易于维护代码,此外Keil能够仿真调试此次设计系统,在嵌入式开发上有很大的功能,从而对之后实物的产生有了更大的帮助。本设计使用的是C语言,C语言在单片机编程中具有绝对的优势,与汇编语言相比,具有代码清晰、可移植性高、例程丰富等特点。C语言是单片机的编程高级语言,广泛使用的在各种硬件设备中,具有代码精简,执行效率高等特点。C语言可以实现不同平台的代码移植,开发速度快,方便进行功能的实现。相比于汇编语言,具有明显的优势,因此C语言对本设计最切合不过了。4.1系统软件总体设计系统软件开始运行后,首先需要对系统进行初始化,主要是STM32单片机的加载,传感器模块的加载,OLED显示模块的加载等,在初始化完成之后,对可燃性气体监测程序、温湿度监测程序以及PM2.5监测程序进行调用,产生一系列的监测数据,从而与设定的阈值进行比较,系统内部自行会产生判断,若超过设定阈值,对报警模块程序和短信发送模块程序进行调用,若不超过设定阈值,则不调用报警模块程序和短信发送模块程序,最终显示模块程序响应,显示当前环境的温湿度,可燃性气体浓度,以及PM2.5含量数值,随后程序返回温湿度监测模块程序,进行往复。具体软件运行流程图如图4-1。图4-1软件运行流程图4.2温湿度监测子程序设计DHT11使用的数据通信协议是单总线通信,图4-2是DHT11一次通信过程的时序图,是编写软件子程序的依据。在这个通信协议中,需要依次读取5个字节数据,通过结算这五个数据即可得到温度和湿度。软件通信过程首先需要将信号线高电平拉低到低电平保持t1时间后拉为高电平,这是开始信号,在高电平等待t2时间后,如果DHT11输出低电平并且持续t3时间拉高,这表明DHT11收到起始信号,开始温湿度测量,之后数字接口不断输出数据0、数据1、数据2、数据3、数据4,最终只需获取当中的5个字节。图4.2DHT11一次通信时序图由DHT11读取的五个字节包含着温度和湿度数据,如图4-3所示。图中第0字节表示是Byte1到Byte4的和校验结果,确保数据读取正确性。Byte1和Byte2表示温度数据的小数部分和整数部分;Byte3和Byte4表示湿度数据的小数部分和整数部分,实际数据中,小数部分为预留,没有实际意义。图4.3DHT11获取数据样式通过图4-3中的数据样式,温湿度的获取数值自然而然就得到了解释:湿度=byte4.byte3=1001110.0=78.0%温度=byte2.byte1=1000000.0=32.0摄氏度校验和=Byte4+Byte3+Byte2+Byte1DHT11子程序读取温湿度子程序首先需要初始化DHT11,对IO口和传感器进行配置,然后发送读取数据脉冲信号,之后DHT11回复byte0到byte5的数据信息,STM32单片机在接收到以上数据信息后,根据以上温湿度公式进行推算,从而得到相关温湿度数据。如图4-4。图4-4DHT11模块流程图4.3可燃气体监测子程序设计可燃气体传感器监测模块MQ-9的模拟输出接口与STM32单片机的0通道进行相连,在单片机内部完成模拟信号转变数字信号的过程,从而得出可燃性气体的值。STM32F103ZET6内部具有12位的ADC,具有16通道数据采集功能。通过配置STM32F103ZET6内部ADC的寄存器,可以不需要外部AD电路,直接将模拟信号转换成单片机内部的数字量。子程序第一步要初始化ADC,配置位数、速度、采集方式等。程序中选择与传感器连接的采样通道,即通道0,通过判断标志寄存器的状态,判断是不是AD转换完,如果A/D转换完成,则从ADC的数据寄存器读取AD结果,经过一系列的演算得到模拟数据的值,最后发送到报警模块与短信模块调用从而判断是否超过阈值。可燃性气体监测模块流程如图4-5。图4-5可燃性气体流程4.4PM2.5监测模块设计本设计的PM2.5传感器是根据光的散射原理来开发的,程序首先对IO口进行初始化,随后打开内部LED灯光,持续大概280us,通过STM32单片机内部的ADC就可以得到传感器输出电压,在内部完成模拟信号与数字信号的转换,紧接着持续大概40us,内部LED灯光停止发光,通过光强度大小与电信号强弱正比的关系,进而就可以测定环境中的PM2.5含量。PM2.5监测模块流程图如图4-6。图4-6PM2.5监测模块流程图4.5显示模块设计OLED虽然是新型显示器,但是控制本质上与传统显示器相似的,其显示模块流程图如图4-7。显示程序必须完成OLED的初始化,设置显示屏的展示效果、字符大小、取模方式等,设置完成可以实现显示。OLED写数据前需要进行状态判断,如果OLED不忙,对OLED进行显示地址和显示数据的命令写入,写入以后,刷新屏幕实现屏幕显示内容的更新。因为是OLED显示方式,在显示过程中,不需要实时刷新显示,OLED内部RAM数据不变,屏幕显示就不变。通过上述程序实现数据的显示和更新,同样显示曲线和图像,也只需要将数据刷新到内部的RAM中。图4-7显示模块流程图4.6按键输入模块设计在获取IO口的高低电平后,按键模块进行确认按键是否按下。如果按键装置触发,单片机IO口保持为低电平,通过读取IO口状态寄存器为0;如果按键不触发,那么IO口则变为高电平,读取后发现IO口状态寄存器数值为1。按键是按下还是松开,就可以通过上述寄存器数值为0或者为1来进行判断,最后返回按键的键值,按键模块如图4-8所示。图4-8按键模块4.7报警模块设计报警模块需要对温度、湿度、可燃性气体和PM2.5的数值与阈值进行对比,如果超过设定值,需要控制报警电路工作,使用程序设置寄存器0,让IO口输出低电平信号,进而传输给报警电路,蜂鸣器报警。如果没有超过设定值,则蜂鸣器不需要报警,程序设置寄存器为1,让IO口输出高电平信号,进而传输给报警电路停止报警。报警模块的主要判断依据为是否超过阈值。根据之前各传感器的介绍,阈值设定分别为:温度:35摄氏度;湿度:70%;可燃性气体:12.5%;PM2.5:75ppm。每当有其一超过设定值,则蜂鸣器报警,并向事先设定好的用户的手机发送短消息,例如:“环境可燃气体过高,请注意!”等等类似的信息。报警模块运行流程图如图4-9所示。图4-9报警模块运行流程图4.8短信子程序设计AT指令可以被GA6-B模组串口接收,从而进行通信,AT指令是一种重要通信标准。命令是格式:AT+指令\r\n,其中AT作为帧头,“指令”作为有控制字节,\r与换\n作为结束字符。AT指令的返回主要有“OK”和“ERROR”,“OK”表示AT指令执行成功,“ERROR”表示指令执行失败。同时也具有其他回复形式,数量。AT指令具有近万个,发送信息指令只需要近万个的几个。GSM信息发送流程图如图4-10,初始化GA6-B模组之后,需要配置单片机的串口,使得各个数据保持一致,然后自动完成SIM识别、网络注册等,等待模块是否入注册网络成功,用AT+CGREG获取初始化结果,可以位于下方的指示灯观测,如指示灯每隔三秒亮起一次绿灯,则表示程序初始化完成。初始化完成以后,通过AT+CMGF=0,设置GA6-B模组的UDP短信发送为文本模式。这样可以进行短信编码的发送,发送“AT+CMGS=55”指令,表示发送55个字节的UDP编码,这55个UDP编码字节中包含接收短信的电话号码和短信内容,之后将手机还和短信内容的UDP编码发送至GA6-B模组,比如本设计发送的“室内温度过高,请注意!”,UDP编码为:“0011100D91689169374038F00008AA1673AF58836E295EA68FC79AD8FF0C8BF76CE8610FFF01”,最后发送十六进制的“0x1A”,表示发送的意思。这样实现手机号码为:1996730XXXX接受到了“室内温度过高,请注意!”的消息。图4-10GSM信息发送流程图

5系统测试通过对软件与硬件简单的介绍,这些电路和程序需要组合在一起,实现其特有的功能,在组合过程中会出现各种问题,需要对各个电路进行调试。调试的目的就是发现各个电路内部的问题和各个电路之间的问题,是整个毕业设计的重要部分,对实现设计的组合,稳定运行,增强抗干扰性具有重要作用。本次毕业设计遇到了很多的问题,这章主要对硬件和软件调试过程中所出现的问题进行叙述。5.1硬件调试硬件调试主要是为了排除系统构建基础问题,保证软件设计过程中不会出现相互干扰。硬件调试需要对电路的连接进行测试,去除短路、短路、虚焊、漏焊等基本问题。然后对电路各个子模块进行测试,保证其运行通畅。在硬件电路调试过程中,元器件的选择就显得十分的重要,参数错误的元器件极易出现各类问题,因此需要认真调试。在调试蜂鸣器电路中,根据三极管放大电路设计,当三极管基极接入低电平,三极管集电极和发射极进行导通,蜂鸣器发出蜂鸣声。实际测试中,将系统的GND接入到蜂鸣器子电路控制端,蜂鸣器发出滴滴的声音。但是当电路接入单片机系统以后,在IO口输出低电平以后,仅有弱小的声音。查阅手册发现蜂鸣器正常工作电流为50-200毫安,通过万用表进行实际测试,测试结果显示蜂鸣器在IO控制下的电流仅为26.6uA,电路测试如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论