基于Arduino的PM2.5和温湿度实时检测器设计*
2016-08-25叶金晶乔颖硕孙谦晨
叶金晶, 周 健, 乔颖硕, 孙谦晨
(1.中国科学院 上海微系统与信息技术研究所 上海 200050;2.中国科学院大学,北京 100039)
设计与制造
基于Arduino的PM2.5和温湿度实时检测器设计*
叶金晶1,2, 周健1, 乔颖硕1,2, 孙谦晨1,2
(1.中国科学院 上海微系统与信息技术研究所 上海 200050;2.中国科学院大学,北京 100039)
设计了能够实时检测周围环境温湿度、PM2.5值的便携式检测器,该检测器以Arduino UNO开发板为核心,由外部多个传感器采集数据,通过在Arduino IDE上的编程控制数据采集,经处理换算后将结果呈现在显示屏上,显示数值每隔2.5 s更新一次,从而达到实时检测的目的。该检测器在45~80 μg/m3范围内与汉王N1型霾表相对偏差小于±5 %,具有快速响应、实时更新、简单实用的特点。
PM2.5; Arduino; 传感器; 实时检测
0 引 言
空气质量量化检测通常采用PM2.5指标衡量,通过系列检测器实现数据的实时检测、显示、记录。目前市场上的一些专业检测设备体积普遍偏大、功能繁杂、价格昂贵[1],不同厂家的检测设备测试数据偏差较大,专业级别的测试价格昂贵,体积大,不适合广大市民购买使用。迫切需要一种体积小,实时检测,多功能集成,价格较低的检测器满足这一需求。本文拟通过设计优化给出合理的优化结构方案,研制出满足这一需求的检测器,可以在日常生活中随时检测,方便人们了解关注PM2.5指数以及周围环境温湿度变化。
1 总体设计方案
本文设计的PM2.5及温湿度实时检测器主要有4个模块:Arduino控制模块、温湿度模块、PM2.5模块、显示模块,其中Arduino控制模块为重要部分。图1所示即为本检测器的系统框图。Arduino开发板作为检测器的核心,负责控制传感器及数据处理,根据需求可选择USB供电或外接电池供电,在灰尘传感器和温湿度传感器从周围环境中采集到相应数据后,交由Arduino中已编译的程序进行整合处理,最后Arduino发送指令给显示模块,最终的检测结果数据由LCD显示屏输出显示。
图1 PM2.5与温湿度实时检测器系统框图Fig 1 System block diagram of PM2.5, temperature and humidity real-time detector
常规的PM2.5检测器设计方案模块分化多,一般如图2所示,导致硬件电路复杂化、控制程序冗长、易修改性降低等缺点[2],例如,以AT89S52单片机为主控的家用PM2.5检测仪[3]和以MSP430F149单片机为控制中心的PM2.5监测系统[4],它们都采用GP2Y1010AU0F传感器,但其外围电路相对复杂,在单片机程序控制上也较为麻烦。通过优化设计,本文给出了优化设计方案,其具有如下特点:1)电路简洁,无多余外围电路,即图2中虚线部分电路可省略;2)程序分工明确,简单易读;3)程序易于控制和更改、检测功能更多,修改或新增局部设计时不会牵扯无关部分。本检测器模块在检测PM2.5指数同时还可获得当前环境中的温度、湿度,虽然没有文献中检测仪的报警功能,但是具备PM2.5指数的等级分类功能。
图2 常规PM2.5检测器方案示意图Fig 2 Diagram of general PM2.5 detector
2 硬件模块设计
2.1PM2.5模块
此模块中用到的传感器是夏普光学粉尘传感器GP2Y1023AU0F,这款传感器是夏普2015年1月正式量产的新版灰尘传感器。该传感器取消了模拟输出口,采用PWM输出形式,输出即为数字数据,比文献[6~8]中采用的GP2Y1010AU0F更为稳定,无需进行A/D转换,简化了软件编程部分的工作。
GP2Y1023AU0F内部结构包含一个微小的光学传感系统,由一个红外发光二极管和光电子晶体管按对角式排列组成,它利用激光散射法及粒子计数原理,通过检测空气中尘埃的反射光计算粉尘的浓度[5]。除了与旧版相似的光学传感系统之外,它还附加了内置单片机模块,使其输出为数字信号,另外新增的热敏电阻电路也使其无需再进行温度校准,使用更方便。而且它个头小、质量仅有16 g,非常适合用于本设计中的便携式检测器。
GP2Y1023AU0F共有5个引脚,在与Arduino UNO板连接时,数据传输实际只需用到其中一个引脚,1引脚Vo连接至Arduino数字端口的任一空闲引脚,剩余的4个引脚按照规格书中的要求与相应器件连接后接至Arduino的5V及GND端,具体连接方式如图3所示。至此,该传感器与Arduino核心控制模块全部连接完毕。
图3 GP2Y1023AU0F传感器引脚连接电路Fig 3 GP2Y1023AU0F sensor pin connection circuit
GP2Y1023AU0F连接至Arduino开发板后,它通过Vo口把脉冲宽度(pulse width)值传输给Arduino板。将接收到的脉冲宽度数据按照公式Duty=PW/T(Duty为占空比,PW为脉冲宽度,T为传感器中的脉冲的周期10 ms),计算求得占空比,根据夏普官方规格书中占空比与灰尘浓度的曲线图为参考,进而换算得到灰尘浓度D,这些数据处理均由Arduino控制程序实现完成。相较于旧版传感器需进行数/模转换,本设计中的数据处理简洁明确,不易造成误差,输出数据也更为稳定。
2.2温湿度模块
本模块是普通小型PM2.5检测器所不具备的部分,选用了可以直接同时测得温度和湿度的传感器DHT11数字温湿度传感器。它自身集成一个电阻式感湿元件,一个NTC测温元件以及一个高性能单片机。由于采用了专业的数字模块采集技术和温湿度传感技术,该传感器抗干扰性强、响应速度快、体积小、功耗低、性价比高[6]。
DHT11采用单线制串行接口,直接输出数字信号。同时,DHT11用4针单排引脚封装,每个引脚都有固定的功能,如表1所示。
表1 DHT11引脚说明
在本设计中,DHT11的1引脚VCC、4引脚GND分别连接至Arduino的5 V和GND端,2引脚DATA连接至Arduino的模/数转换(ADC)输入端A0。
2.3显示模块
本设计液晶显示器选用的是LCD1602,它的屏幕上能够展现2行数字、字母或符号,每行最多16个,该芯片的工作电压为4.5~5.5 V,它最适合的工作电压是5.0 V,2.95 mm×4.35 mm为所能呈现的每个字符的尺寸大小。
LCD1602直接连接至Arduino UNO开发板的通用I/O端口。LCD1602的VO引脚接一个可调电阻,起到调节显示屏对比度的作用。
3 Arduino控制模块软件设计
软件部分的设计包括定义、初始化、数据读取、数模转换等。所有功能模块的程序都是在Arduino IDE平台中完成的[7]。软件流程图如图4所示。
图4 软件功能流程框图Fig 4 Flow block diagram of software function
Arduino的核心程序主要由各传感器传入数据处理、串口控制、数据显示等组成。在数据处理部分,将GP2Y1023AU0F传感器得到的灰尘浓度值进行等级划分,由高至低分为A,B,C,D,E五个等级。PM2.5值为0~50 μg/m3时为A级,51~100 μg/m3时为B级,101~150 μg/m3时为C级,151~200 μg/m3时为D级,201 μg/m3及以上时为E级,D,E级不适宜外出活动。当传感器传入数值在五个等级区间中的某一个时,LCD显示屏上即会在PM2.5数值旁显示相应等级。
程序也控制最终在LCD显示屏上呈现的数据,例如显示屏输出的第一行:D=95 μg/m3B;第二行:T:28 C H:35 %。以上代表PM2.5指数为95 μg/m3,等级B良好,温度为28 ℃,湿度为35 %RH。
另外,数据更新的时间亦可由软件编程控制,最短间隔可以达到0.01 s,但为了数据的可靠性和稳定性,将数据更新间隔设置为2.5 s。如果另有需求,可以按照个性设置数据更新间隔。
4 制作与校准测量
4.1测试与调零
由于本检测器的电路结构相较于其他单片机控制的小型检测器而言更简洁,制作更省时。为确保所有功能的完美实现,先在功能测试板上搭建电路,待基本功能测试正常再进行实物制作,功能测试板搭建情况如图5所示,已包含所有元器件。制作过程只需将各元件按照所设计的硬件电路图焊接即可,然后调整各部分的位置使其整体体积达到最小。灰尘传感器不必整合到主体内部,需要使它与流通的空气环境充分接触。
图5 功能测试板实物Fig 5 Functional test board
调零是PM2.5和温湿度实时检测器投入应用前必备的步骤。调零时用到专业用仪器霾表来进行对比校准。在日常环境中,基本无法做到PM2.5指数为0的情况,需要借助实验室超净间来调零。进入超净间,待GP2Y1023AU0F的V0输出数值相对稳定,记录20组V0值与对应时刻霾表的PM2.5示数,利用统计算法求得最终PM2.5为0的V0值以及占空比Duty。图6为霾表示数为0时记录下来的V0值,即脉冲宽度时长,可以看出数据基本稳定,可以得到合理的零度值。
图6 检测器调零数据Fig 6 Zero adjustment data of detector
检测器在正常工作时,电路中的LED指示灯会亮起,若是温湿度模块出现问题,显示屏上会显示相应错误提示,若是灰尘传感器故障,则指示灯不亮或显示屏PM2.5数据始终为0。
4.2校准与性能验证
校准的过程是在日常环境中采集多组数据,利用统计算法求得线性拟合函数,调整占空比Duty与灰尘浓度D的换算函数,使得测量结果更为准确。本检测器与霾表在同一环境同时检测的数据图线如图7所示。
与市场上购置的汉王N1型霾传感器测试结果比对,结果发现,PM2.5数据在45~80 μg/m3范围内比较接近,相对偏差小于±5 %。在小于45 μg/m3时汉王传感器在低PM2.5数值区间偏差较大,所研制的传感器也有微弱波动,可能与测试时微弱的空间空气流动有关。因此,后期的工作将进一步提高器件的探测灵敏度。
图7 所设计检测器测试数据与N1型霾传感器比对Fig 7 Designed test data of detector compared with N1 type haze sensor
5 结束语
本文设计并制作出一种PM2.5与温湿度实时检测器,可以实现实时检测,检测数据间隔短,每2.5 s更新一次数据,并具有空气质量等级报告功能。校准和验证结果表明,该模块可以在45~80 μg/m3范围内与汉王N1型霾表相对偏差为±5 %。该检测器在同类小型检测器中,电路与程序更为简洁,方便修改,当需要新增检测功能时,能够随时做出调整,更具多样化以及扩展性。
[1]王寅,王卉.PM2.5现状及其检测技术[J].资源节约与环保,2014 (12):139.
[2]阚海东,陈仁杰.PM2.5对人体危害有多大[J].中国经济报告,2015 (4):114-116.
[3]中华人民共和国环境保护部.2014中国环境状况公报[EB/OL].[2015—06—08] http:∥jcs.mep.gov.cn/hjzl/zkgb/ 2014zkgb/201506/t20150608_303142.htm.
[4]孙波,李爽.PM2.5检测方法及研究进展[J].山东化工,2015,44(9):56-57.
[5]兰冰芯.移动式环境空气质量检测仪的设计与实现[D].成都:西南石油大学,2015.
[6]王啸东.PM2.5粉尘颗粒检测仪的研制[J].电子世界,2013 (16):96.
[7]顾宏华,王鲲鹏.家用PM2.5检测仪[J].硅谷,2015 (2):8,11.
[8]兰冰芯,谌海云.基于单片机的PM2.5测试仪的设计与实现[J].物联网技术,2014(11):32-34.
[9]Sharp Corperation.Dust sensor GP2Y1023AU0F specification[Z].2015.
[10] 韩丹翱,王菲.DHT11数字式温湿度传感器的应用性研究[J].电子设计工程,2013,21(13):83-85.
[11] Monk Simon.Programming arduino getting started with sket-ches [M].北京:科学出版社,2013.
周健,通讯作者,E—mail:zjian@mail.sim.ac.cn。
Design of PM2.5 temperature and humidity real-time detector based on Arduino*
YE Jin-jing1,2, ZHOU Jian1, QIAO Ying-shuo1,2, SUN Qian-chen1,2
(1.Shanghai Institute of Microsystem and Information Technology,Chinese Academy of Sciences,Shanghai 200050,China;2.University of Chinese Academy of Sciences,Beijing 100039,China)
Design a portable detector that can real-time detect ambient temperature, humidity and PM2.5 values.The detector uses an Arduino UNO board as the core, and collects data by multiple sensors.By programming on the Arduino integrated development environment(IDE),control data acquisition,and the processed results will be presented on monitor,the displayed data will update once every 2.5 s, so as to achieve the purpose of real-time detection.At range of 45~80 μg/m3, this detector has relative deviation less than ±5 % comparing with Hanwang N1 type haze meter,and the detector has features of sensitive response, real-time update, simple and practical.
PM2.5; Arduino; sensor; real-time detection
2015—11—22
中国科学院院地合作项目(YDJDBNJ—2012—027);上海市自然科学基金资助项目(13ZR1447400)
TN 710; TP 311
A
1000—9787(2016)08—0067—03
叶金晶(1992-),女,浙江杭州人,硕士研究生,研究方向为环境检测传感器技术,太阳电池标准测试技术,微能源技术。
DOI:10.13873/J.1000—9787(2016)08—0067—03