空气质量检测实训论文.doc_第1页
空气质量检测实训论文.doc_第2页
空气质量检测实训论文.doc_第3页
空气质量检测实训论文.doc_第4页
空气质量检测实训论文.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

。目录一. 实验意义2二. 硬件系统设计32.1系统整体结构32.2 基础硬件模块介绍32.2.1空气质量传感器模块32.2.2 创新平台底板模块62.2.3 51单片机核心模块82.2.4 LED数码管模块92.2.5 位独立按键模块(扩展模块)112.2.6 蜂鸣器模块(扩展模块)112.2.7 LCD1602液晶模块(扩展模块)12三. 软件系统设计133.1主程序133.1.1主程序模块代码133.1.2 程序流程图153.1.3 主程序程序流程说明163.3. 主要算法193.3.1 帧数据的校验算法原理193.4 主要函数203.4.1 求和校验函数203.4.2 串口初始化函数213.4.3 串口中断函数21四. 调试分析224.1 硬件组装和程序的下载调试224.1.1硬件组装和连接224.2 调试过程中出现的问题224.2.1 STC单片机程序下载失败原因分析224.2.2 LED数码管显示模块问题分析234.2.3程序下载好之后,不能立即正常显示原因分析244.3 调试过程的注意事项24五. 心得体会24一. 实验意义雾霾是我们经常讨论的热门话题,灰蒙蒙的天,能见度很低、空气中呛人的气味,相信大多数同学都遭受过这样的经历。雾霾笼罩下的城市现在已经知道,造成雾霾天气的主要“元凶”是PM2.5,即空气动力学当量直径小于等于2.5微米的颗粒物。这种能够直接进入肺泡的小颗粒,对人体健康危害最大。当前,人们已经像关注天气一样,关注着空气质量。大多数情况,我们都像查天气预报一样,通过监测站发布的数值,了解当前的PM2.5浓度。但实际上,PM2.5并不像温度一样均匀分布,你呼吸到的PM2.5浓度,可能与报道的数值相差甚远。通过该项目使我们可以采用电子积木搭接一个简单的空气质量检测仪。既学习了知识,还能知道我们身边PM2.5的浓度,获得我们身边的真实数据。 查询到的焦作空气质量报告精选资料,欢迎下载空气质量指数(Air Quality Index,简称AQI)是定量描述空气质量状况的指数,其数值越大说明空气污染状况越严重,对人体健康的危害也就越大。参与空气质量评价的主要污染物为细颗粒物(pm2.5)、可吸入颗粒物(pm10)、二氧化硫(SO2)、二氧化氮(NO2)、臭氧(O3)、一氧化碳(CO)等六项。pm2.5是指大气中直径小于或等于2.5微米的颗粒物,也称为可入肺颗粒物。被吸入人体后会直接进入支气管,干扰肺部的气体交换,引发包括哮喘、支气管炎和心血管病等方面的疾病。二. 硬件系统设计2.1系统整体结构本实验采用“电子积木+底板”的形式,通过电子积木拼接,实现项目功能。主要积木包括:51单片机核心板、4位LED数码管模块、空气质量传感器模块、LCD1602液晶模块。系统框图2.2 基础硬件模块介绍2.2.1空气质量传感器模块该模块选用ZPH01空气粉尘传感器,能够同时实现对VOC与PM2.5的同时检测。传感器中的VOC检测单元对甲醛、苯、二氧化碳、氨气、氢气、酒精、香烟烟雾、香精等有机挥发气体具有极高的灵敏度。PM2.5检测单元,采用粒子计数原理,可灵敏检测直径1m以上灰尘颗粒物。空气质量传感器模块VOC测量原理:采用专门的电化学传感器模块,实现VOC气体的检测。不同气体灵敏度对比该传感器将测得的气体浓度直接转化为A、B、C、D四个等级。具体标定方法如下,将洁净空气质量默认为A级,以酒精浓度作为参考,大于50ppm时,设定为D级,中间均匀划定3个等级。PM2.5测量原理:采用光散射法测量原理,实现空气粉尘的测量。使用该方法,在传感器内置一个加热器,加热引起气流上升使外部空气进传感器内部。采用一个LED作为发光源,另一个光电传感器,通过测量光强度,判断空气粉尘的数量。可检测的粒子为1m以上粒子,如香烟、房屋灰尘、霉菌、花粉、孢子等。微粒和分子在光的照射下会产生光的散射现象,和此同时,还吸收部分照射光的能量。当一束平行单色光入射到被测颗粒场时,会受到颗粒周围散射和吸收的影响,光强将被衰减。如此一来便可求得入射光通过待测浓度场的相对衰减率。而相对衰减率的大小基本上能线性反应待测场灰尘的相对浓度。光强的大小和经光电转换的电信号强弱成正比,通过测得电信号就可以求得相对衰减率。光散射检测原理测量结果输出为低脉冲率,根据下图对应关系,可转化为g/m3 单位。PM2.5低脉冲率与灰尘颗粒物浓度对照图测量结果输出帧格式该传感器测量结果以PWM和UART串口两种方式输出,可通过PIN1(控制引脚)设置。该引脚悬空时为PWM模式;接地时,为串口模式。在本项目中,采用了串口模式,基本设置如下:波特率:9600数据位:8位停止位:1位校验位:无 通讯命令:模块每间隔1s发送一次浓度值,只发送不接收。命令帧格式如下:硬件连接:该传感器共有5个接口: 本项目中,采用串口模式。因此,连接如下图所示:空气质量传感器连接端备注PIN1(控制脚)接地设为串口模式PIN2(输出脚OUT2/RXD/PM25)接单片机P3.1(TXD)也可不接PIN3(电源正VCC)接正5V电源PIN4(输出脚OUT1/TXD/VOC等级)接单片机P3.0(RXD)PIN5(电源地)接地2.2.2 创新平台底板模块该底板采用标准定位孔的设计,并集成有 5V直流电源接口及自锁电源开关、3.3V电源、8路LED显示、外接接口拓展等。在课程设计中,为各模块提供固定、供电和接口转换功能。底板的硬件资源: 5V直流电源接口及自锁电源开关,带自恢复保险。 大功率3.3V稳压芯片,可将外接5V电源转为3.3V。 双路音频接口转换,既可做为音频输入也可作为输出。 8路LED指示灯,高电平驱动。 双排16PIN接口拓展转换口。 板子的四周分别提供了16组5V和3.3V的电源接口。 板子中间提供了1723个间隔为10mm的定位孔。模块位置图:电子创新平台底板位置图 电源端:+5V电源接入端,+5V和+3.3V电源输出端(四角四组)。 LED控制端:8路LED控制端分别控制相对应的8个LED(高电平有效,1亮;0灭)。 音频输入端:麦克风输入插孔,耳机输入插孔。 拓展端:拓展输入、输出接口,方便和外围设备的连接。 模块定位孔:固定模块,方便试验。原理及功能:(1)固定电子积木 该底板采用标准定位孔的设计,电子积木可固定在底板上,为设计项目提供相对稳定的机械结构。电子积木之间的连线也可沿底板布线,通过线扎绑结在定位孔上。(2)提供供电 底板四周分别提供了16组5V和3.3V的电源接口。电子积木可就近选择相应的接口,通过杜邦线,提供供电。连接电源时,需注意区分正负。 以下图为例,左侧4个插针为正,右侧为负。2.2.3 51单片机核心模块 51单片机核心板即CORE51-BOARD模块。该模块为51单片机最小系统板,采用标准定位孔的设计,支持JTAG和串口两种下载方式,四组I/O口全部引出,可广泛用于单片机基础学习和电子创新等电子电路的微控制系统。硬件资源: 直流电源5V插孔,方便模块接通电源单独使用。 使用跳线帽,选择不同功能。 串口和JTAG双下载通道,使用更方便。 复位电路,方便单片机的复位。模块位置图:51核心板模块位置图端口说明: 下载端:与51下载器配合,可实现自动上电,无需复位一键下载。 电源拓展接口:可做电源使用,为外围电路模块等供电。 4组I/O端口2.2.4 LED数码管模块 LED动态显示是将所有的数码管的段选线并接在一起,用一个I/O接口控制,公共端不是直接接地(共阴极)或电源(共阳极),而是通过相应的I/O接口线控制。核心思想是通过位码选择让4个数码管中的哪一个数码管亮,然后通过段码决定该数码管显示的具体数据。在本实验主程序中体现如下: /*数码管显示部分*/for(i=0;i4;i+)P2=weii; P0=duanxsi; delay(2); 工作过程为:第一步使右边第一个数码管的公共端D0为1,其余的数码管的公共端为0,同时在I/O(1)上发送右边第一个数码管的字段码,这时,只有右边第一个数码管显示,其余不显示;第二步使右边第二个数码管的公共端D1为1,其余的数码管的公共端为0,同时在I/O(1)上发送右边第二个数码管的字段码,这时,只有右边第二个数码管显示,其余不显示,依此类推,直到最后一个,这样4个数码管轮流显示相应的信息,一次循环完毕后,下一次循环又这样轮流显示,从计算机的角度看是一个一个地显示,但由于人的视觉暂留效应,只要循环的周期足够快,则看起来所有的数码管就都是一起显示的了,这就是动态显示的原理。 本实验中采用四位一体的七段LED数码管组成的动态扫描电路。用于LED动态扫描电路的学习及在单片机等应用中作为显示模块使用。硬件资源: 采用一个4位一体共阳极LED数码管作为显示器件 8个段选数据端,分别对应4个数码管的Adp,低电平有效。 4个位选数据端,分别对应4个数码管的公共端(即位控端),低电平有效。模块位置图:4位LED显示模块位置图端口说明: 段选端:ADP分别对应数码管的8个段,低电平有效。 位选端:A1A4分别对应数码管的4个公共端,低电平有效。 电源端:接电源,供电电压5V。硬件连接: 在本项目中,该模块的电路连接如下所示4LED数码管模块连接端备注段选端,A-DP接单片机P0.0-P0.7位选端,A1-A4接单片机P2.0-P2.3电源端接正5V电源正负2.2.5 位独立按键模块(扩展模块)本模块共8个独立按键,分别分为“上”、“下”、“左”、“右”键和A、B、C、D四个功能键,每个按键对应一个输出端口。输出端默认高电平,当对应按键按下时,输出低电平。硬件资源:l 8KEY按键模块工作电压可根据需要选用5V或3.3V。l 输出端口正常状态下输出高电平,有键按下后,对应端口输出低电平。l 8个按键是分别独立的按键,可根据需要任意组合使用。模块位置图:8独立按键模块位置图端口说明:l 电源端:+5V电源接入端。l 输出端:8位并行数据接口。2.2.6 蜂鸣器模块(扩展模块)模块介绍:蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电。广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。工作原理:本实验使用的蜂鸣器的响与不响取决于单片机I/O口的电平,当单片机输出位低电平时蜂鸣器响,高电平时不响。2.2.7 LCD1602液晶模块(扩展模块)LCD1602液晶模块,即LCD1602-BOARD板。该模块以工业液晶LCD1602为核心,采用标准定位孔的设计,在原有液晶的基础上增加了背光控制功能。该模块能够同时显示2行16列共计32个字符,可广泛用于电子创新应用、智能电子产品设计等的显示器件。硬件资源:l 显示: ASCII字符集,16列2行,32个字符。l 背光: 包含背光驱动,I/O口可直接控制背光。l 接口: 并行模块位置图:LCD1602液晶模块位置图端口说明:l 电源端:+5V电源接入端。l 数据端:D0-D7共8位并行数据接口。l 控制端:RS,RW,EN与液晶控制端对应。l 背光端:K,高电平有效,”1开背光,”0关背光。三. 软件系统设计3.1主程序3.1.1主程序模块代码void main(void) uart_int(); while(1) key_scan() ; /检测按键函数if(buffnew=1)/接收到新的1帧数据 buffnew=0;i=FucCheckSum(buff,9);if(i=buff8)/校验成功 if(ct15)ct1+;vsum=vsum+buff7;/psum=psum+buff3*100+buff4;psum=psum+buff3*100+buff4; else /每测得5组数据,取平均值 ct1=0;voc=vsum/5;pm25=psum/5;vsum=0;psum=0;pm25=pm25*2/10 /根据低脉冲率与灰尘浓度的关系,转化为ug/m3单位else jiemianhanshu();/界面显示函数 baojinghanshu(); /蜂鸣器报警函数3.1.2 程序流程图3.1.3 主程序程序流程说明1、初始化开机后,首先完成串口初始化,开启串口中断。2、 主循环进入主循环,根据变量buffnew,判断是否接收到新的一帧数据。当接收到新的一帧数据:1、对该帧数据进行校验,如果校验成功继续,如果失败则放弃本次操作。2、连续取5组数据,分别是“低脉冲率”和“VOC浓度等级”,并求平均值。3、根据低脉冲率与灰尘浓度的关系,转化为g/m3单位。如果未接收到新的一帧数据:1、将数据转化为显示格式。2、通过数码管动态扫描的方式,显示数据。3.2扩展模块程序3.2.1按键模块的扩展通过按键可以控制数码管多界面切换和完成对pm2.5的报警提醒阀值的设置,本扩展模块分为以下两个界面。界面一:实时显示VOC等级与PM2.5的值。界面二:显示pm2.5的报警提醒阀值,通过按键可以对其进行加减操作,操作完成后,按“确认”按键保存阀值并返回界面一。代码如下:/*按键扫描函数*/void key_scan() if(key_LEFT=0) /进入调整阀值界面 delay1(5);if(key_LEFT=0) qiehuan_flag=1; if(key_TOP=0) /加 delay1(5);if(key_TOP=0)while(!key_TOP);T=T+5; if(key_DOWN=0) /减 delay1(5);if(key_DOWN=0)while(!key_DOWN);T=T-5; if(key_RIGH=0) /返回显示界面 delay1(5);if(key_RIGH=0)qiehuan_flag=0;flag=0; if(key_C=0) /按键C关闭蜂鸣器报警功能 delay1(5);if(key_C=0)flag=1; if(key_D=0)/按键D打开正常报警功能 delay1(5);if(key_D=0)flag=0; 3.2.2蜂鸣器模块蜂鸣器主要有提醒和报警两个功能提醒功能:针对pm2.5,对于pm2.5超过设定阀值时,蜂鸣器开始响500ms,不响2500ms,从而起到提醒功能。报警功能: 针对VOC 等级,VOC 等级测可测可燃性气体,当可燃性气体到达一定浓度时,非常危险,因此蜂鸣器响的急促一点(响300ms,不响300ms),从而起到报警的效果。关键代码如下:/*蜂鸣器报警函数*/void baojinghanshu()static unsigned int num=0,num1=0;if(flag=0)if(xs3=0x0d) / voc是D等级时报警码num1+;if(num1300)buzz=1; /蜂鸣器不响delay1(1);if(num1=600)num1=0;else if(pm25T)/PM2.5的提醒功代 num+;if(num500)buzz=1; /蜂鸣器不响delay1(1);if(num=3000)num=0;elsebuzz=1; /蜂鸣器不响elsebuzz=1; /蜂鸣器不响 if(flag=0) led=0; /led灯亮,表示报警功能正常打开 else led=1; /led灯灭,表示报警功能关闭 3.3. 主要算法3.3.1 帧数据的校验算法原理帧数据的校验原理:该函数将数组的第一个元素至倒数第二个元素分别相加后求和,再将其和取反+1,然后将结果送至主函数。在主函数里面,将结果与数组的最后一位(即校验值)相比较,如果相等,则帧数据校验成功,否则丢弃该帧数据。 本实验中根据求和校验函数实现传感器输出串口数据帧的校验功能。如下: 求和校验函数:*/unsigned char FucCheckSum(unsigned char *i,unsigned char ln)unsigned char j,tempq=0;i+=1;for(j=0;j(ln-2);j+)tempq+=*i;i+;tempq=(tempq)+1;return(tempq);低脉冲率与灰尘浓度的关系转换算法: 根据传感器资料,数据帧的第3数是:“低脉冲率整数部分”,第4位是“低脉冲率小数部分”。因此,低脉冲率可由:buff3*100+buff4,得到。 根据低脉冲率与灰尘浓度对照表,以线性关系和20.00%与400g/m3为参考,将低脉冲率乘以0.2,得到灰尘浓度。即通过:pm25*2/10,得到。3.4 主要函数3.4.1 求和校验函数该函数实现传感器输出串口数据帧的校验功能。* 函数名: ucharFucCheckSum(uchar *i,ucharln)* 功能描述:求和校验(取发送、接收协议的1234567的和取反+1)* 函数说明:将数组的元素1-倒数第二个元素相加后取反+1(元素个数须大于2)*/unsigned char FucCheckSum(unsigned char *i,unsigned char ln)unsigned char j,tempq=0;i+=1;for(j=0;j(ln-2);j+)tempq+=*i;i+;tempq=(tempq)+1;return(tempq);主程序中有i=FucCheckSum(buff,9);/取由接收到的数据计算出的校验值if(i=buff8)/判断校验值是否相等校验原理:数据在发送前通过对数据帧中的数据求和取反加一,得到一个校验值(随数据传送到接收端),在接收端接收到数据后对数据进行同样的处理之后,也得到一个值,通过与接收的检验值的比较,如果两者相等,则说明数据传送无差错,反之,数据传送错误,就丢弃此次数据。3.4.2 串口初始化函数该函数实现单片机的串口初始化,将串口设定为波特率9600,数据位8,停止位1,效验位无。* 功能描述:串口初始化* 函数说明:*/void uart_int(void) SCON = 0x50; /REN=1允许串行接受状态,串口工作模式1 PCON = 0x00; TMOD|= 0x20; /定时器工作方式2 TH1 = 0xFD;/baud*2 /* 波特率9600、数据位8、停止位1。效验位无 TL1 = 0xFD; TR1 = 1;EA = 1;ES = 1; 3.4.3 串口中断函数该函数实现串口中断接收,并将接收的数据整理出完整的一帧,同时将接收标置置位。*/* 功能描述:串口中断* 函数说明:用于接收传感器的数据帧,每帧9个数据*/void Serial() interrupt 4 unsigned char i; RI=0; i=SBUF;/SUBF接受/发送缓冲器if(i=0xff) /判断数据头ct=0;buffct=i;else if(i=0x18) ct=1;buff1=i;else ct+;buffct=i;if(ct=8) buffnew=1; /接收满9个数据后,buffnew置位四. 调试分析4.1 硬件组装和程序的下载调试4.1.1硬件组装和连接 将单片机最小系统板、LED数码显示模块、PM2.5传感器模块合理的分配在底板上,并用螺丝钉固定。 将最小系统板和LED数码管的VCC和GND线分别链接在底板上的VCC和GND引脚上。 将最小系统板上的RXD和TXD分别连接在传感器模块的第4和第2引脚接口。 将LED数码管的A、B、C、D、E、F、G段分别对应连接在单片机P0.0和P0.7引脚上,将LED数码管的A1、A1、A3、A4位选分别链接在单片机的P2.0和P2.3引脚上。 将PM2.5检测模块的VCC和GND连接到底板上 插上下载线,硬件连接完毕。4.2 调试过程中出现的问题4.2.1 STC单片机程序下载失败原因分析在做实验的过程中,有许多同学的实验板出现了向单片机里面下载程序失败的现象,我在此将原因及解决办法总结如下:由于STC单片机下载程序主要分三部分:单片机最小系统、下载电路、计算机端,所以我们下载失败一般从这三个方面来解决问题。 单片机损坏:比如有的单片机内由于ISP系统引导码出错,能运行之前下载进的程序,但不能下载程序;或者单片机已损坏。 PL2303的晶振不是12M。 接线错误:如:TXD、RXD接反。 下载软件的问题:最好使用STC_ISP最新版本,在Win7系统中有时可能要以管理员身份运行。 COM口设置错:一般下载时会提示打开串口失败。 单片机的型号设置错:一般下载时会提示不是此型号的单片机。 波特率太高:适当调低一点或许有用,高、低波特率都选1200。 操作步骤的问题:注意先点电脑上的下载按钮后给单片机上电。特别的,本次实验中在串口连接中,空气质量传感器的PIN4(输出脚OUT1/TXD/VOC等级)和单片机P3.0(RXD)的连接,需下载程序后再连接。因为51单片机只有一个P3.0(RXD)串口通信的接收端,而下载程序就是通过51单片机的P3.0(RXD)接收端口,所以不能同时连接共用,否则会导致程序不能下载到51单片机中。在此也给出调试程序时,正确的下载程序顺序如下:1.装载好要烧的单片机程序。2.设置单片机型号,COM口,波特率等参数。3.点击 “下载”。4.给单片机上电。5.下载软件显示:正在下载.6.下载完成。4.2.2 LED数码管显示模块问题分析由于本实验中能够同时检测VOC挥发性有机气体和PM2.5浓度。四位LED数码管第一位显示VOC气体浓度,后三位显示PM2.5浓度。VOC气体根据浓度,输出A、B、C、D共4个等级。PM2.5输出量程为01000g/m3。这两个检测指标都属于空气质量检测指标,但是并没有关联性,两者采用的是不同的函数关系转换算法。所以实验过程中出现了显示的A、B、C、D 4个等级和PM2.5浓度之间并没有对应关系。(A等级也可能对应PM2.5显示值很大,C等级反而更小),这是正常现象。4.2.3程序下载好之后,不能立即正常显示原因分析因为在空气质量传感器模块,对于PM2.5检测单元,采用了光散射法测量原理,实现空气粉尘的测量。使用该方法,是在传感器内置一个加热器,加热引起气流上升使外部空气进传感器内部。另一方面采用一个LED作为发光源,另一个光电传感器,通过测量光强度,从而判断空气粉尘的数量。因此,此模块正常工作需要一定的初试加热时间,一般的,模块初次上电使用,需要预热5分钟以上,所以有一些同学的实验板在调试过程中出现了程序

温馨提示

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

评论

0/150

提交评论