刘 勇,张 恒
(天津机电职业技术学院,天津 300350;江苏科瑞德智控自动化科技有限公司,江苏 223800)
伴随科技和社会的快速发展,民众的生活发生改变,但是与此同时,快速发展的科技和经济并不是没有任何代价的,与其伴随而来的也存在一些负面的影响,特别是雾霾问题。PM2.5粉尘是霾的主要的构成成分。因此,PM2.5浓度不可避免的转变为人们关注的一个焦点问题。
PM2.5就是空气中径长大小不超过2.5μm的微颗粒物,它能在大气里飘浮很久。大气中PM2.5的含量数值愈高,就代表该地域大气的污染情况愈严重。美国是世界上最早提出 PM2.5 大气质量标准和开始采样检测工作的国家。 在2010年末,美国与欧盟主要发达国家规定将PM2.5加入到空气的质量标准,并对它进行了一系列的限制,以期望改进空气质量。
根据社会和民众生活的需求,本文提出一种基于STM32单片机的PM2.5检测系统的设计方案。它可以对周围环境中的PM2.5浓度进行检测,检测数据经过处理器进行处理后,能够把PM2.5的浓度数值在OLED屏上实时显示,使用户获得实时实地的环境和大气污染程度,该设计使用方便、成本低,可在日常生活或工业生产领域中大范围的推广应用。
方案采用STM32F103系列微控制器与PM2.5粉尘传感器相结合,设计了一款针对PM2.5浓度的空气质量检测的系统。在本系统设计里,STM32微处理器为整个系统的控制核心,粉尘浓度采样系统主要是由蜂鸣器、PM2.5粉尘传感器、OLED液晶显示屏、模/数转换器(ADC)等组成。PM2.5粉尘传感器通过对所处的周围大气的空气质量监测来实现对PM2.5含量值的测量,然后经过微处理器以及其外围电路的计算、转换以及读取数据,最终把要测得的PM2.5浓度数值显示在OLED液晶显示屏上。
具体的实施方案:
经过PM2.5粉尘传感器采集周围大气环境的PM2.5含量值,检测电路将搜集到的数值传送到MCU,同时把模拟量处理为数字量,处理的结果显示在OLED液晶显示屏上,随时观察PM2.5的变化。若PM2.5粉尘的浓度值过高,系统中由 LED警示灯和蜂鸣器件构成的警示电路就会警示。
PM2.5检测系统总体的结构设计构成如图1。
图1 PM2.5检测系统总体设计结构图
主控芯片选用的是STM32F103C8T6,其采用高性能的ARM Cortex-M3内核,工作频率为72MHz,程序存储器容量是64KB,需要电压2V~3.6V,工作温度为-40°C ~ 85°C。
STM32芯片不可以单独进行工作,需要连接其他外围相关的电路共同组成STM32最小系统。STM32最小系统中包含了电源电路、时钟晶振、复位电路、去耦电路、通信接口等。如图2所示。
图2 最小系统框图
本系统中需要用到STM32的ADC采样功能。STM32芯片包括1到3个可以独立进行工作使用的ADC,并且这些ADC可以在双重模式下工作。STM32有18个通道,可测量16个外部和2个内部信号源。每个通道的模拟和数字量之间的转化都可以选择不同的模式工作。
STM32模数转换的最大速率为1兆赫兹,需要保持ADC的时钟低于14兆,这能保持转换结果的准确度。STM32将ADC的转换分为2个通道组:规则通道组和注入通道组。注入通道组的转化工作能够将规则通道组的转化进行打断,并且在注入通道组转化工作成功后,规则通道组才能接着进行转化。
STM32的模拟数字转化不仅可以使用ADC-CR2寄存器的ADON位开启单次转化模式,还可以使用外部触发的方式进行启动,在这个时候,CONT位应该为0。以规则通道而言,在转化完成之后,成果将会被储存在 ADC-DR 寄存器里,转换结束标志位就要被置位处理,倘若之前配置了EOCIE,就会发生中断操作。然后 ADC 将停止,直到下次启动。
数据采集部分主要完成采集 PM2.5 浓度,它是在 PC 机上进行操作的,主要是将系统的硬件、应用软件和计算机相互结合来进行对数据的测量。
PM2.5数据采集工作主要利用Sharp公司开发推出市场得GP2Y1010AU0F型号传感器来进行。GP2Y1010AU0F传感器的电源工作电压是3.3V,它的输出管脚A和STM32处理器内部的AD转化管脚相连接,ILED管脚与STM32芯片的GPIO管脚连接。传感器通过内部的红外二极管输出一个电压值,这个电压值跟据灰尘浓度而发生改变。STM32芯片可以依据这个电压大小推测出大气中粉尘的浓度值。传感器的特点如下:
1.尺寸:(46.0×30×17.6 mm)
2.最大工作电流:20mA
3.单脉冲可测量出大气微粒含量(待工作稳定)
4.工作温度:-10~65℃
5.安全无害
GP2Y1010AU0F传感器内部的原理图如图3。在传感器上存在孔隙,空气可以通过孔隙流动,这时发出定向的LED光线,传感器通过感应空气尘埃折射后的光线状况来进行粉尘浓度的判断工作。
图3 传感器工作原理图
图4为传感器输出电压与粉尘浓度的工作关系。根据观察图像发现,该曲线的前部分存在一定的线性增长关系,但是到0.5mg/m左右时,该曲线增长放缓,甚至不再增长,此时输出电压值为3.5V左右。通过对曲线的前半部分的观察总结,可以得出电压值与灰尘浓度的关系为:Dust density = 0.17*Output Voltage .
图4 传感器输出电压与微粒浓度关系
报警电路的核心元器件是蜂鸣器,三极管S8050驱动和微控制器的IO管脚相连接,当IO管脚呈现高电平时候,蜂鸣器是不报警的,当它变成低电平时候,而且还带有 LED 二极管发光,蜂鸣器发出报警声音。系统还可以通过手动按键的方式来调整PM2.5 适合的值,如果超过设置的最高浓度值,蜂鸣器就会报警。
显示模块是用来显示当前PM2.5的数值供用户知悉。在整个检测系统中选取一块0.96寸的OLED显示屏,显示屏通过4线串行的SPI接口与微处理器完成通讯连接。
本系统软件设计选用了合适的开发平台Keil MDK。Keil是51单片机的一种开发软件,2005年Keil公司被ARM公司收购,之后相关的产品都改名为MDK系列。
在软件系统设计时选用的MDK版本是MDK uVision 4.72,这个嵌入式软件开发平台加入了灵活的窗口界面管理,可以提供多台监控器给开发程序员使用,并使开发者能够在视觉内的任何地方控制窗口的位置。此版本还有一个较大的更新就是对更多新的ARM内核进行了支持和语法检查的强大功能,为开发者带来了很大的方便。
整个系统需要用到的模块系统有:初始化、时钟、中断指令、微粒监测和警报模块等。它们分别实现其特有的功能,共同构成整个监测系统。
当系统通电后,首先进行初始化设置,然后调取各个模块的子程序,设置一段时间的延时时间,接着进行循环执行。
当系统开始执行时,实现进行上电初始化,PM2.5传感器检测周围环境中空气的微粒状况并且产生相应的电压变化,接着PM2.5传感器将电压值输出给微处理器,ADC采集其数据并且根据算法转换成相应的浓度值,最终通过软件程序将数值转化为字符串形式,并且在OLED显示器上表示出来。
当STM32 MCU收到PM2.5传感器传来的电压,并由电路转化成具体数值后,对其数据开展判断工作,与预先设定的警示值进行比较,徜若实时的值大小比预先设定的高,则输出脉冲给蜂鸣器,报警程序启动,蜂鸣器开始工作。
现如今空气污染的问题愈发的严重,其中最严重的污染因素就是微粒粉尘。人们对PM2.5对于环境情况影响也越来越关注,无论是屋内还是室外的PM2.5污染,都涉及到人类自身的健康问题,PM2.5的监测应该是人们的关注重点。官方天气环境空气质量播报的有关PM2.5的数据具有区域性,对针对个人身边的PM2.5污染指数参考价值有限。
本文介绍了一种基于STM32的PM2.5检测系统的硬件和软件设计,该系统的电路结构简单、使用方便、成本低、便于携带。能够实时采集PM2.5的浓度,通过转换,单片机计算后,在OLED液晶显示器上显示,测量精度高,可以满足日常生活和工业生产的需要。