基于GSM模块的可通信智能PM2.5检测设备设计毕业设计论文.docx_第1页
基于GSM模块的可通信智能PM2.5检测设备设计毕业设计论文.docx_第2页
基于GSM模块的可通信智能PM2.5检测设备设计毕业设计论文.docx_第3页
基于GSM模块的可通信智能PM2.5检测设备设计毕业设计论文.docx_第4页
基于GSM模块的可通信智能PM2.5检测设备设计毕业设计论文.docx_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

基于GSM模块的可通信智能PM2.5检测设备设计本科生毕业论文(设计)题 目: 基于GSM模块的可通信智能PM2.5检测设备设计姓 名:分院、系:机电工程系专 业:电气工程及其自动化年 级:2012学 号:指导教师: 职称:教授2016年04月12日IV基于GSM模块的可通信智能PM2.5检测设备设计摘要 目前我国随着发展的脚步逐渐加快带来的几大问题之一就是空气质量的恶化,其中影响空气质量的因素之一就是PM2.5浓度,PM2.5含量过高的问题不仅影响到人们的日常生活,同时还影响到工业生产以及基础设施的运行。市面上所能购买到的PM2.5相关产品仅有手持家用的PM2.5检测仪以及数款昂贵的工业用PM2.5经检测模块(不完整的系统),尚未发现类似的智能型、可反馈的PM2.5预报警系统。本课题拟采用单片机作为核心控制部件,实现对所检测区域空气中的PM2.5含量进行实时检测,并在超过一定数值之后进行蜂鸣报警以及GSM短信提醒。经过数个月的学习、研究与制作,现已制作出能够使用点按式按钮操作与液晶屏显示交互,一次设置即可实现24小实时监控,并在超过预设值后发出警报的原型机,并且整个系统使用方便,可靠性好,同时具有很高的性价比。关键词 PM2.5 单片机 实时检测 GSM短信Design of Intelligent PM2.5 Detection Device Based on GSM ModuleAbstract Currently in China with the pace of development gradually accelerated deterioration brought about by several problems is one of the air quality, which one of the factors affecting the quality of air is PM2.5 concentration, high levels of PM2.5 problem not only affects peoples daily life, also has an impact on industrial production and infrastructure operation. PM2.5 related products on the market can buy only handheld household PM2.5 detector and several expensive industrial for PM2.5 detection module (not complete system), have not yet found similar intelligent, feedback of PM2.5 pre alarm system.This paper intends to use a microcontroller as the core control unit to realize the real-time detection of the detected content of PM2.5 region in the air, and the buzzer alarm and GSM SMS alert after more than a certain value.After several months of study, research, and production, the production has been a point of use by button operation with the LCD screen display and interaction, a set can be achieve 24-hour real-time monitoring, and sound an alarm in exceeds a preset value of the prototype, and the whole system has the advantages of convenient use, good reliability, but also has a very high price.Keywords PM2.5, SCM, Real-time Monitoring, GSM SMS目录引言1第1章绪论21.1论文选题背景及意义21.1.1论文选题背景21.1.2PM2.5检测意义21.2技术现状与发展趋势21.2.1技术现状21.2.2发展趋势31.3作者所做工作与论文内容安排31.3.1作者所做工作31.3.2论文内容安排3第2章系统总体设计42.1系统设计要求42.2系统总体方案4第3章系统硬件设计63.1原件选型63.2主机硬件设计63.2.1主机电源电路设计63.2.2主机CPU电路设计63.2.3主机显示报警电路设计83.3从机硬件设计103.3.1从机电源电路设计103.3.2从机CPU电路设计103.3.3从机检测电路设计103.4通信电路设计113.4.1主机与从机通信电路设计113.4.2GSM通信电路设计11第4章系统软件设计134.1主机软件程序设计134.1.1单片机程序154.1.2液晶屏程序164.1.3串口程序174.2从机软件程序设计194.2.1单片机程序194.2.2PM2.5传感器程序22第5章调试25总结29致谢语30参考文献31附录32附录1 整体电路图32附录2 STC12C5A60S2引脚功能表33附录3 程序源代码35引言如今,我国的现代化发展速度变得原来越快,工业的发展是国家发展不可或缺的一步。但是随着轻重工业的发展带来的环保问题也愈发严重,其中收到人们,尤其是北方人们关注的就是空气中PM2.5浓度过高问题。企业现代化管理水平不断提高,环保意识日益增强,其控制和管理水平的要求越来越高,这就需要一款设备,来实时监控生产环境、作业环境以及日常生活环境中PM2.5含量,同时实现报警功能,来提醒人们进行调节和防范。单片机相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。所以说,一块芯片就成了一台计算机,它的体积小、质量轻、价格便宜,为学习和开发提供了便利。因此,单片机是对此设备起到控制作用最佳选择。同时对我来说,此课题的毕业设计是一次极好的学习与锻炼机会,可以完成本课题的毕业设计及提交合格论文。第1章 绪论1.1 论文选题背景及意义1.1.1 论文选题背景目前我国随着发展的脚步逐渐加快带来的几大问题之一就是空气环境的恶化,其中影响空气环境的因素之一就是PM2.5浓度,PM2.5含量过高的问题不仅影响到人们的日常生活,同时还影响到工业生产以及基础设施的运行。尤其是我国北方大部分城市目前深受高浓度PM2.5的影响。所以此论文就以此为背景,设计并制作出一款可以实时检测出当前空气中PM2.5浓度,并在到达一定浓度时可以自动触发报警的设备,从而达到减少对人体健康的伤害以及减轻对工业生产的危害的目的。1.1.2 PM2.5检测意义PM2.5就是细微颗粒物,它能较长时间悬浮于空气中,它在空气中浓度越高空气污染就越严重。虽然PM2.5只是地球大气中含量很少的一部分,但它对空气质量和能见度的影响十分严重。与较粗的大气颗粒物相比,PM2.5粒径小,面积大,活性强,易附带有毒、有害物质,在大气中的停留时间长、输送距离远,所以对人体健康和大气环境质量的影响更大1。PM2.5检测仪是用来检测空气中PM2.5含量的专业设备。此设备通过PM2.5传感器来检测空气中PM2.5含量同时将数据传输到检测端,此时检测段再将含有PM2.5含量的数据传输到报警端,报警端将数据与预设值进行比较来判断是否报警。1.2 技术现状与发展趋势11.1.1.2.1.2.1 技术现状目前市场上所能购买到的PM2.5相关产品仅仅只有手持家用PM2.5检测仪以及数款昂贵的工业用PM2.5检测模块(不完整的系统),尚未发现类似的智能型、可反馈的PM2.5预报警系统。其中完整的PM2.5检测报警设备应当包括检测传感器和报警设备两大部分组成,经过上网调查,本课题所使用的单片机最小系统、各检测报警模块从技术角度讲已经是非常成熟的,并且从市场上就可购买得到,本人在编程、硬件制作等方面也进行了学习和进行毕业前的系统培训,具备了一定的应用基础。整体思路:检测端包括PM2.5检测电路与单片机最小系统,通过检测模块将数据传输到CPU进行处理。报警端包括蜂鸣器报警电路、GSM短信发送电路、液晶显示电路、按键电路与单片机最小系统,报警端CPU将检测段CPU传输过来的数据经过处理后显示到液晶屏来实现实时数据显示,同时与预设数值对比来判断是否进行报警。因此从整体来看,本课题从立项到研制都是可行的。1.2.2 发展趋势“PM2.5”这个词可以说是个热点话题,国家更是已经把治理空气质量设立为重点工程,目前北方已经关闭了多家制造以及化工企业,空气质量也已经得到了一些好转。空气治理一定要从每一家企业做起,作为一名普通民众个人防范更是不能少,所以家用以及商用的检测仪和空气净化器变得越来越热门,未来的趋势一定是越来越大众化和智能化,其中最基本的检测报警端正是我所研究和制作的,从此可见必定会有个很宽广的前景。1.3 作者所做工作与论文内容安排 11.1.1.2.1.3.1.3.1 作者所做工作1. 首先研读毕业设计任务书,根据任务进行检索查阅相关技术文献和资料。2. 明确毕业设计任务书,对设计的设备进行分析与描述。3. 在明确系统功能和技术指标要求的基础上进行系统方案的总体设计。4. 在系统总体方案框架下进行系统硬件设计。5. 通过仿真软件确定设计可行之后进行实体电路的焊接并进行调试。6. 不断修改调试中发现的问题,确定最终作品。1.3.2 论文内容安排第1章为绪论,从当前的社会背景引出此次毕业设计所设计制作的设备。第2章从整体上对设备进行了介绍,阐明了设备的技术要求和总体设计方案,使读者能够对设备的功能有个基本的了解。第3章介绍了主、从机的硬件设计,分别介绍了两端各模块的工作方式以及接线方式。第4章介绍了主、从机的软件设计,详细的说明了设备各部分的工作流程。第5章为实物调试,通过测试确定了最后成品的工作模式。第6章为总结与展望,对整篇文章进行收尾,同时对自身的不足和遇到的问题进行讨论。第2章 系统总体设计222.1 系统设计要求本课题所设计制作的设备主要包括以下几大功能:1. 实时检测当前PM2.5浓度并显示到液晶屏。2. 当PM2.5浓度到达一定值时能够实现本地端和远程端报警。3. 可实现无人值守监控,触发报警后设备自动复位,准备进行下一轮检测。4. 可进行人机交互,可自行设定报警值、报警短信显示的内容和接收报警短信的手机号码。5. 设备的检测精度为1ug/m。2.2 系统总体方案通过设计要求把设备分为主机(报警端)和从机(检测端)两部分,其中主机端由以下五部分构成:1. CPU最小系统2. 蜂鸣器3. GSM通信模块4. LCD显示屏5. 5V DC电源输入从机端包括由以下三部分构成:1. CPU2. PM2.5传感器3. 5V DC电源输入设备示意图如下所示,图2-1 设备示意图设备采用了分离式的设计,将检测端和处理判断端分别设置为从机和主机,通过之间的数据通信实现多台检测设备可分别不同位置的PM2.5浓度,大大的提高了设备工作效率。同时为了保证设备的稳定性在主机和从机两端分别设置一个CPU进行数据处理,通过RS485接口进行两部分通信,同时也在两端各设计了一个输入电源,来保证设备在任意一个电源断开的情况下仍能继续工作2。因为此次设计的目的是验证原型机设计和工作的可行性,所以在原型机的制作中为了简化处理,这里只制作了一台PM2.5检测设备(从机)来跟主机通信,而且主机和从机之间并不需要远距离传输数据,所以直接把两端通过数据总线链接的方式连接在一起,将经历主要的投入在软、硬件设计和配合部分。第3章 系统硬件设计33.1 原件选型该设备计划使用的各单片机硬件如表3-1所示。表3-1整体硬件列表序号名称型号单位数量1PM2.5检测模块GP2Y1010AU0F个12单片机最小系统STC12C5A60S2个23液晶显示屏LCD1602个14GSM通信模块SIM900A个15蜂鸣器个16USB电源线条17PCB板块28电阻、电容、按钮、导线等个若干3.2 主机硬件设计31.1.1.2.3.2.1 主机电源电路设计电路在设计上由5V DC直流电直接供电给单片机驱动,整个过程中不需要其它的整流、升/降压装置,所以此设备可以直接通过5V DC 12A的手机充电器或移动电源供电,同时为了保证设备在突发情况下可以继续运行,分别在主机和从机设置了两个并联的电源接口,任意接口接入电源即可对整个电路进行供电。选用此种电源的优势在于这样可以选择固定插座供电和移动电源供电,大大的增加了便利性,双供电口的设计也可以使设备在其中某一接口出现故障的时候保证不间断运行,提高了设备的稳定性。3.2.2 主机CPU电路设计这里给主机选用宏晶科技公司生产的STC12C5A60S2单片机,其引脚如图3-1所示。其引脚详细说明请见附录2。图3-1 STC12C5A60S6引脚相比传统普通51单片机具有以下特点3:1. 同样晶振的情况下,速度是普通51的812倍。2. 有8路10位AD。3. 多了两个定时器,带PWM功能。4. SPI接口。5. EEPROM。6. 1K内部扩展RAM。7. 多一个串口。8. I/O口可以定义,有四种状态。9. 中断优先级有四种状态可定义。综合以上特点,在此认为此型号单片机最适合本次设计的设备,不仅可以提高设备检测的精度,还给两CPU之间的通信提供了便利。起振电路中的晶振选择11.0592MHz的晶振,经过测试可以使检测更加精确4。图3-2起振电路复位电路如图3-3所示。主机与从机电路全部通过高电平复位,通电后电容两端电压为5V,电容所连接的电阻接地放电(有电压差),放电后电容两端电压为0。故通电瞬间会产生高电平复位过程。通电过程中,按钮按下后短接电容,使单片机RESET端口产生5V电压,电路再次复位5。图3-3复位电路3.2.3 主机显示报警电路设计1. 蜂鸣器报警电路蜂鸣器报警电路如图3-5所示。蜂鸣器端共有3个引脚,引脚1为与单片机通信引脚,引脚2为+5V供电引脚,引脚3为接地引脚。三极管充当电子开关实现电路的通断,此电路为低电平导通。当单片机引脚10输出低电平时三极管导通,+5V电压流向蜂鸣器,蜂鸣器工作。当单片机引脚10输出低电平时三极管断路,蜂鸣器停止工作6。图3-5 蜂鸣器报警电路2. 液晶屏电路液晶屏电路如图3-6所示。引脚1、2、3所连接的滑动电阻R2为调节屏幕背光亮度旋钮,通过旋转蓝白色调节器调整电阻大小,从而调节屏幕亮度,通常不需调节。P2.02.2引脚为命令输送端口。P0.0P0.7引脚为数据输送端口,单片机从此端口输送显示命令,BLK引脚+5V供电引脚,BLA为接地引脚。图3-6 液晶屏电路3.3 从机硬件设计1.3.3.3.1 从机电源电路设计从机部分在实物中另外设置了一个5V 12DC直流电源接口,采用并联的方式与主机端电源接在一起,实际使用中,主机或者从机任意一端接入电源即可给整个设备供电7。3.3.2 从机CPU电路设计为保证设备的稳定性所以在从机端也设计安装了一个与主机型号完全相同的独立的CPU,主要任务是对传感器采集的模拟量进行AD转换,再将数字量发送到主机端,故从机端CPU起振电路、复位电路等于主机端完全相同,不再赘述。3.3.3 从机检测电路设计按照PM2.5传感器说明书中所写选取150电阻R58。电路连接方法如图3-7所示。图3-7 PM2.5检测电路其中开通管一端接地,另一端接收脉冲,这里使用三极管实现此功能。从单片机P13端口输出脉冲,三极管相当于电子开关,高电平时开关开通,电流可以从传感器3号端口流向接地端;低电平时开关断开。电阻R29选取大小为1K,因为产生高电平时电流流过电阻R29使三极管进入饱和状态,此时三极管管压降几乎为零。传感器的工作原理会下一章软件部分进行详细介绍,在此只进行简单的说明,传感器的其中一个引脚会发出下图所示波形的电压,图3-8 某引脚发出电压波形图根据此电压会按照传感器说明书中所给的公式进行AD转换,最终换算出当前空气中PM2.5的浓度值9。3.4 通信电路设计1.4.3.4.1 主机与从机通信电路设计如前文所写原型机实物中主机与从机使用的是较为简单的数据总线通信,计划在实际中则使用RS458接口的数据传输协议来进行各从机与主机之间的数据传输,因为RS-485接口具有良好的抗干扰性,具有较长传输距离和更好的多站能力等,综合上述优点就使其成为首选的串行接口,RS-458端口还具有以下特点:1. 电气特性:逻辑“1”以两线间的电压差为+(2-6) V表示;逻辑“0”以两线间的电压差为-(2-6)V表示。接口信号电平降低就不易损坏接口电路的芯片, 且该电平与TTL电平兼容,方便与TTL 电路相连接。2. 最高传输速率为10Mbps3. 采用平衡驱动器和差分接收器的组合,抗噪声干扰性好。4. 最大传输距离为4000英尺,实际可达 3000米, RS-485接口在总线上允许连接多达128个收发器,即具有多站能力,这样用户可以利用单一的RS-485接口方便地建立起设备网络。3.4.2 GSM通信电路设计GSM通讯模块采用SIMCom公司设计制造的型号为SIM900A模块GSM报警电路如图3-8所示,其中GSM模块共有4个引脚,这里只需要用到如图中所示其中3个。图3-8 GSM报警电路引脚1为+5V供电引脚,引脚4为接地引脚,引脚2为与单片机通信引脚。因为这里只需要用到此模块的短信功能,所以不需要接其它引脚。第4章 系统软件设计44.1 主机软件程序设计主机程序流程图如下图4-1,图4-1 主机程序流程图首先对单片机和LCD显示屏进行初始化,Delay_xms(50); LCD_init();Delay_xms(50);LCD_clear(); Delay_xms(50);经过延时整个系统稳定后,液晶屏显示初始数据并初始化串口,Display();InitUART();之后反复循环下边的函数来达到实时检测并显示设定值和当前环境中PM2.5浓度值的功能,show_ad7();此函数可以让LCD屏显示实时浓度,之后通过设备上S2,S3两个按键来改变预设报警值,if(!key_P_DOWN) key_P_DOWN_flag=1;if(key_P_DOWN&key_P_DOWN_flag) SET_N+=10;key_P_DOWN_flag=0; LCD_write_char(7,0,SET_N/100%10+0); LCD_write_char(8,0,SET_N/10%10+0); LCD_write_char(9,0,SET_N%10+0); if(!key_P_UP) key_P_UP_flag=1; if(key_P_UP&key_P_UP_flag) SET_N-=10;key_P_UP_flag=0; LCD_write_char(7,0,SET_N/100%10+0); LCD_write_char(8,0,SET_N/10%10+0);LCD_write_char(9,0,SET_N%10+0);最后通过以下代码来实现GSM短信和蜂鸣器报警功能,首先对检测值和预设值进行比较,if(NOW_NSET_N)经过比较后进行一个0.5ms的延时,来防止瞬间的干扰,因为空气中的PM2.5随时都在变化,可能瞬间飘过一阵粉尘触发误报警,为了减少这种情况所以设置一个延时函数,Delay_xms(500);经过延时之后再次进行判断,如果检测值大于预设值,则开始报警程序,if(NOW_NSET_N);out1=0; Uart1Send_char(AT+CSCS=GSMrn);Delay3000ms();/延时3秒Uart1Send_char(AT+CMGF=1rn);Delay3000ms();/延时3秒Uart1Send_char(AT+CMGSn);将此处 修改为接收报警短信者手机号码即可,Delay3000ms();/延时3秒Uart1Send_char(sms_text); UART_1SendOneByte(0x1a);Delay3000ms();Delay3000ms();Delay3000ms();out1=1; 总共经过大约18秒后,整个报警过程结束。41.1.4.1.1 单片机程序先对寄存器进行定义,#include #include STC12C5A60S2.h#define uchar unsigned char#define uint unsigned int定义端口,其中1.0端口为蜂鸣器,2.4和2.5为按键,sbit out1=P10;sbit key_P_DOWN=P24;sbit key_P_UP=P25;sbit SPK=P36;2.02.2端口为LCD液晶屏sbit RS=P20;sbit RW=P21;sbit CS=P22;定义P0口为液晶屏数据传输口#define LCDDATA P0定义变量,uint SET_N=100; uchar key_P_DOWN_flag; uchar key_P_UP_flag; uchar SPK_flag;uchar U;float N;uint NOW_N;定义短信内容,可以将warning! warning! warning!修改为任意想要接收到的报警内容,uchar sms_text = warning! warning! warning!;最后定义一组延时函数,void Delay_xms(uint x) uint i,j; for(i=0;ix;i+) for(j=0;j0;t-) _nop_(); 4.1.2 液晶屏程序此部分函数中主要是定义液晶屏中显示预设值和当前值的设置,具体函数如下,DisplayListChar(1,0,SET_N=);DisplayListChar(10,0,ug/m3);DisplayListChar(1,1,NOW_N=);DisplayListChar(10,1,ug/m3);LCD_write_char(7,0,SET_N/100%10+0); LCD_write_char(8,0,SET_N/10%10+0);LCD_write_char(9,0,SET_N%10+0);每一行语句括号中的内容为“列,行,显示内容”这种格式,其中“列”和“行”从0还是计算,所以可以知道所显示的第一行为预设值,第二行为检测值。4.1.3 串口程序首先对串口进行初始化,代码如下:1. 串口初始化函数串口1设置为发送,来控制短信发送。TMOD = 0x20; /定时器1工作在方式2 定时器时钟12T,8位自动重装,波特率9600SCON = 0x50; /串口1工作在方式1 10位异步收发 REN=1允许接收TH1 = 0xFD; /定时器1初值TL1 = TH1;TR1 = 1; /定时器1开始计数EA =1;/开总中断 / ES =1; /开串口1中断,此处要禁止串口1中断串口2设置为接收,接收从机发送过来的数据。AUXR &= 0xF7;/波特率不倍速S2CON = 0x50;/8位数据,可变波特率AUXR |= 0x04;/独立波特率发生器时钟为Fosc,即1T,,波特率9600BRT = 0xDC;/设定独立波特率发生器重装值AUXR |= 0x10;/启动独立波特率发生器IE2 = 0x01; /开串口2中断 ES2=12. 串口1发送首先定义串口发送1字节的数据,如果TI=0,在此等待,void UART_1SendOneByte(unsigned char c) SBUF = c; while(!TI); TI = 0; 串行口连续发送char型数组,遇到终止号0将停止,等待发送完成信号(TI=1)出现,void Uart1Send_char(uchar *str)while(*str!=0)SBUF=*str;while(!TI);TI=0;str+;3. 串口2接收void Uart2() interrupt 8 using 1 if (S2CON & S2RI) S2CON &= S2RI; /Clear receive interrupt flag U=S2BUF; 最终把接收到的数据S2BUF发送给U。4. 完成显示功能参照下表4-1的datasheet电压换算表可以发现,0.5V电压对应的PM2.5浓度为0.1mg/m,表4-1电压换算表ParameterSymbolConditionsMIN.TYP.MAX.UnitSensitivityK*1*2*30.350.50.65V/(0.1mg/m)同理可换算出1V电压所对应的PM2.5浓度为0.2 mg/m,所以可以根据此关系通过以下函数换算出电压值所对应的PM2.5浓度,从而显示到液晶屏中,void show_ad7()N=(float)U/255*5*100*2; NOW_N=(uint)N;LCD_write_char(7,1,NOW_N/100%10+0); LCD_write_char(8,1,NOW_N/10%10+0);LCD_write_char(9,1,NOW_N%10+0);其中NOW_N=(uint)N;液晶屏中第二行,也就是当前空气中PM2.5浓度值。4.2 从机软件程序设计从机程序流程图如下图4-2,4-2从机程序流程图如前文所述,从机端包括单片机最小系统和PM2.5传感器两部分,所以需要先设置单片机,将AD转换端口和串口初始化,再设置传感器进行采集,主函数代码如下:InitADC();InitUART();while(1) show_ad7(); 1.1.1.2.4.2.1 单片机程序1. 首先定义所使用单片机型号对应的寄存器,并定义数据类型以方便调用。#include #include STC12C5A60S2.h#define uchar unsigned char#define uint unsigned int设置11.0592MHz晶振所对应的3个延时,具体为何设定为这个时长在后文会详细说明。定义延时:void Delay_xus(uint t) for(;t0;t-) _nop_(); 延时1(9.642毫秒):void Delay9642us()unsigned char i, j;_nop_();i = 104;j = 183;dowhile (-j); while (-i);延时2(0.253毫秒):void Delay253us()unsigned char i, j;_nop_();_nop_();i = 3;j = 181;dowhile (-j); while (-i);延时3(0.013毫秒):void Delay13us()unsigned char i;_nop_();_nop_();i = 33;while (-i);2. 设置AD转换电路在这里所调用的为单片机自带的转换模块,由于PM2.5传感器所连接的是单片机P1.0端口,所以令P1ASF = 0x01,所测得的数据为P1.0端口接收到的电压值。P1ASF = 0x01;ADC_RES = 0;ADC_CONTR = ADC_POWER | ADC_SPEEDLL;Delay_xus(50);随后进行结果清零和打开电源的设置,最后的50us延时是为了让单片机稳定下来,以便进行下一步操作。3. 读取AD转换结果首先定义uchar GetADCResult,在这里通过读取uchar函数值来得到AD转换结果,具体过程如下:uchar GetADCResult(uchar ch) ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START; _nop_(); _nop_(); _nop_(); _nop_(); while (!(ADC_CONTR & ADC_FLAG); ADC_CONTR &= ADC_FLAG; return ADC_RES;其中前4个“_nop_();”为查询前必须等待标志。while语句中包含“非”和“与”两个符号,当“非与”结果为1时则继续循环等待,反之当“非与”结果为1时则跳出循环,并把完成的标志位复位,等待下一次循环,同时把得到的数值返回到函数uchar。 4.2.2 PM2.5传感器程序1. 串口2初始化首先对串口2进行初始化设置,波特率为9600,晶振选择11.0592MHz。这块单片机中定义P1.2为接收端口,P1.3为发送端口,初始化函数如下:AUXR &= 0xF7;/波特率不倍速S2CON = 0x50;/8位数据,可变波特率AUXR |= 0x04;/独立波特率发生器时钟为Fosc,即1TBRT = 0xDC;/设定独立波特率发生器重装值AUXR |= 0x10;/启动独立波特率发生器2. 串口2发送设置串口2发送测得的PM2.5浓度到单片机,所以调用含参函数c,void UART_2SendOneByte(unsigned char c) S2BUF = c; while(!(S2CON&S2TI); S2CON&=S2TI;其中S2BUF为内部寄存器,令其等于参数c。whil语句中若S2TI=0,则在此等待,反之进入下一步完成串口2发送设置。3. 测量PM2.5浓度首先定义函数以及一个64位数组,这里将反复进行64次采样,并将采样得到的数值代入数组求得平均值,这样得到的结果更加精确。void show_ad7(uchar channel) uint ad,ad1; float adcal;uchar adave64;float ad_sum; uchar i;for(i=0;i255)adcal=255;UART_2SendOneByte(adcal);这里可以看到这个函数整体为一个负循环函数,循环的次数为063共64次,out2在本章已经定义为P1.1端口,这个端口会产生如下图4-3所示脉冲,图4-3 out2产生脉冲波形图从波形图中可知周期T为10ms,脉宽Pw为0.32ms,当端口P1.1接收到高电平,即out2=1时,传感器开始读值。实际测量得到传感器实际输出波形如下图4-4所示,图4-4 传感器实际输出波形图从产生脉冲开始算起,经过280us需要开始进行AD转换,转换得到的电压值与浓度成一定比例,并且AD转换也需要一定时间,经过实际测量得出AD转换一次大概需要54us,所以这里在波峰的前后两端分别取27us,保证在最接近280us的时候进行AD转换,从而确保取得的数据最为准确,故在第一个Delay语句中的延时设置为253us(280us-27us)。第二个延时语句Delay设置为13us,同样参考图3-2中脉宽Pw为320us,将13 us+54us+253us刚好为320us一个脉宽。当out2=0即低电平时,把测到的数值进行求和运算,这个过程实际测量需要38us,所以在求和完成后再进行一个9642us的延时,相加刚好10ms完成一个周期。将以上过程循环64次之后,把得出的结果除以64求得平均值,再把平均值通过AD转换得出电压。这里知道AD转换中5V对应的为255,所以当结果为255时除以255再乘以5刚好就是5V,以此类推求得电压值。同时因为数据传输时无法传输小数点及小数点以后的位数,所以这里乘以100使结果取整。另如果计算结果大于255的话,则等于255.计算完成后把求和结果清零,最后通过串口把计算结果传输到主机端。检测端任务到此结束10。第5章 调试51. 设备实物如下图5-1,图5-1设备实物图整机共有5个物理操作按钮,图5-2 主机端物理操作按钮主机、从机两端单片机最小系统分别设有一个复位键,当检测系统或报警系统出现问题时,按下相应的复位键即可恢复默认设置。其它三个按键分别为电源键、PM2.5+10ug/m键和PM2.5+10ug/m键。2. 设备接通电源并按下电源按钮后,设备整体通电,液晶屏亮起并显示初始数值,如下图5-3所示,GSM模块电源指示灯闪烁。图5-3 液晶屏初始状态液晶屏中第一行显示的为预设报警值(100ug/m),第二行显示的是当前空气中PM2.5含量,当传感器检测到空气中PM2.5含量未超过所设定的报警值时,设备保持监控状态,第二行保持刷新显示实时PM2.5含量;当传感器检测到空气中PM2.5含量超过所设定的报警值时,第二行将保持显示PM2.5含量超过设定值一瞬间的数值,同时蜂鸣器开始报警并保持20秒,3秒延迟后GSM模块向指定号码发送预先编辑好的报警提示短信。液晶屏在检测工作状态如下图5-4所示。图5-4 液晶屏检测工作状态3. 当按下PM2.5+10ug/m键和PM2.5+10ug/m键后,液晶屏状态如图5-5和图5-6所示。相应的,传感器检测到空气中PM2.5含量所触发报警的数值变为液晶屏所显示的第二行数值。图5-5 按下PM2.5+10ug/m键后液晶屏状态图5-6 按下PM2.5-10ug/m键后液晶屏状态4. 无灰尘情况传感器引脚5输出电压是0V,所以被测灰尘浓度=测量电压*K(K通常取值0.1mg/m3,下表5-1官方说明中Datasheet提供)。表5-1 电压换算表ParameterSymbolConditionsMIN.TYP.MAX.UnitSensitivityK*1*2*30.350.50.65V/(0.1mg/m)下图5-7,图5-8为波形发生器设置,模拟引脚3驱动信号,高电平为3V,低电平为0V。图5-7 波形发射器设置1图5-8 波形发射器设置2下图5-9为示波器实验结果,由此验证了前文说明里面的280US高电平过后AD转换采集电压11。图5-9 示波器实验结果总结6本文主要完成基于GSM模块的可通信智能PM2.5检测设备的设计,实现对目标环境中的PM2.5含量进行实时检测,并且在超过设定值时进行报警,对工厂的工业生产以及人们的日常生活起到了一定的保障。采用单片机进行对整机的控制,同时使用了较为成熟的传感器,最终实现了最终的检测系统,主要工作总结如下:1. 完成整个项目总体方案的设计,同时突出其优点。设计工作完成了基本的硬件设计方案,包括单片机最小系统的选择、检测传感器选择等硬件技术方案,采用宏晶科技公司的STC12C5A60S6单片机最小系统,PM2.5传感器采用夏普公司生产的GP2Y1010AU及其它相关硬件产品,保证整个硬件系统的稳定运行,并使用了Altium Designer软件和AutoCAD 2016软件进行电路图纸的设计。完成基本的软件设计方案,程序设计上使用了Keil软件和Microsoft Visual Studio软件进行编程。最终实现了设备所预期的全部功能。2. 本设备的创新在于完善了市场上现有产品的不足,将检测和报警融为一体,弥补了现有产品只能检测PM2.5含量的不足。同时改善了人与设备的交互,增加了例如可以定制的接收短信号码和短信内容,以及可以自定义报警PM2.5数值大小等设定,使设备更加人性化,更加简单易用。3. 工作中还是遇到了不少问题,以及一些重要突出的问题。首先夏普公司的PM2.5检测传感器是我第一次使用,在网络上以及书面上可以查询到的资料非常稀少,查询的过程中只找到了一个官方的全英文PDF手册,便以此为突破口,进行了一次又一次的电路连接尝试。在尝试的过程中出现了传感器接收数值与LCD显示屏显示端显示数值不符的问题,最终经过与导师的商讨和研究发现是所选电阻阻值过小和没有接地的问题。同时还因为之前对单片机软件编程的了解过少,导致在PM2.5含量检测,GSM短信发送端的控制等等出现了一些小麻烦,最终在与导师共同努力下进行一一解决,完成了对设备软硬件上的设计与制作,全面提升了我对单片机的了解,并且锻炼了我对问题的解决能力。4. 对以后的展望和改进方向。随着工业自动化进程、工作人员的安全性、环保要求的提高,PM2.5检测报警需要完成的工作非常多,并且应用需求肯定会不断地扩大,不仅要对对更多不懂情况的检测,还要更大的增加易用性,降低成本,简便安装等等这都是以后升级中需要考虑道德,所以系统还有完善的空间。5. 本文所设计的产品原本采用的是WIFI无线模块,打算接入互联网来达到功能更加完善的实时联网监控与检测,但是由于目前的学业水平有限尚未能完成设计与制作,希望能在后期个人不断地学习与发展完善本产品,使之能够更加的智能与易用。6. 本产品使用的PM2.5传感器为夏普公司生产,精度有限,在未来科技的不断发展中可以不断地更新传感器来达到更高的检测精度,从而更加准确的报警。致谢语在此非常感谢姜建芳老师在我大学的最后学习阶段毕业设计阶段给自己的指导,从最初的选题、收集资料,到论文的写作、修改和定稿,全都给予我耐心的指导和非常有用的帮助。指导毕业论文的过程中他放弃了大量的休息时间,这种无私奉献的精神着实令人钦佩,在此我向他表示我诚挚的感谢。同时感谢所有曾经教导过我的任课教师和所有同学在这四年来带给我的指导和帮助,他们教会了我各种有用的专业知识,更是教会了我如何学习和如何在以后的职场上更好的大展拳脚。正是因为他们我才能在方方面面取得显著的进步,再次向他们表示我由衷的感谢,并祝所有的老师们培养出更多的优秀人才,桃李满天下!通过这一阶段的努力,我的毕业论文基于GSM模块的可通信智能PM2.5检测设备设计终于完成了,在大学阶段,我在学习和思想上都受益匪浅,这除了自身的努力更是与各位老师、同学和朋友的关心和鼓励分不开的。在本论文的写作过程中,我的指导教师姜老师花费了大量的时间,从选题到开题报告,从写作提纲,一遍又一遍地指出每一版本稿件的具体问题,

温馨提示

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

评论

0/150

提交评论