APP下载

基于Zynq的多传感器室内空气质量检测与分析系统

2021-08-26陈向东张传武

物联网技术 2021年8期
关键词:室内空气甲醛酒精

谢 怡,陈向东,张传武,丁 星

(1.西南交通大学 信息科学与技术学院,四川 成都 611756;2.西南民族大学 电气信息工程学院,四川 成都 610041)

0 引 言

随着我国经济的发展,人们对居住环境和工作环境都提出了更高的要求[1]。人们使用各种新奇的装修材料改变自己的室内环境,却忽视了它们带来的室内污染物对身体造成的巨大伤害。《民用建筑工程室内环境污染控制规范》GB-50325—2010明确规定了5种对人体危害较大的室内污染物:甲醛、氨、TVOC、氡、苯,并对其浓度限值做出了明确规定。

不少学者对甲醛的精确检测和室内空气质量等级分类展开了一定的研究,但都有各自的局限性。文献[2]中设计的抗乙醇气体干扰的甲醛检测系统仅对数据进行了简单拟合,未考虑甲醛和乙醇气体混合时甲醛传感器的检测值并非简单的叠加关系;文献[3]中设计的室内空气质量检测系统对室内常见指标,如TVOC、甲醛、温湿度等进行了检测,但并未做出等级评价,用户查看数据时不够直观。

针对上述问题,本文设计了基于Zynq的多传感器室内空气质量检测与分析系统,主要针对甲醛、氨气、TVOC三种污染气体。用户可以通过检测终端随时对室内的温湿度和污染气体含量进行检测,通过Android APP实时查看当前环境中的污染气体含量以及室内环境等级。检测终端采集的甲醛传感器数据经抗干扰算法处理后,检测精度得到了提高。

1 系统总体架构设计

本系统共分为2个模块,分别是检测终端和Android APP客户端[4],如图1所示。检测终端基于Zynq实现对室内甲醛等污染气体和温湿度数据的采集和处理,处理后的污染气体含量数据通过蓝牙传输。Android APP客户端主要实现数据的实时显示和用户管理[5]。

图1 系统整体架构

系统主要工作流程:

(1)系统上电启动,待传感器预热完毕后,将其带到检测地点;

(2)传感器数据经甲醛抗干扰算法和BP神经网络进行处理,将处理后的传感器数据打包,通过蓝牙发送[6];

(3)打开Android APP,连接蓝牙后开始检测,用户可通过APP查看当前环境的温湿度和污染气体(甲醛、氨气、TVOC等)含量,以及环境污染等级,用户也可以通过检测终端的OLED屏幕查看室内空气质量等级和甲醛数据。

2 检测终端设计

检测终端主要包括传感器信息采集模块、蓝牙发送模块以及数据处理算法模块。

2.1 传感器信息采集模块

检测终端包括甲醛、氨气等5个传感器,其中甲醛、温湿度、TVOC传感器通信方式均为UART串口通信,而氨气和酒精传感器的检测数据为电压值,为了方便数据处理,本系统采用Arduino单片机内置的ADC读取其检测的电压值,然后通过UART串口协议发送至Zynq。以甲醛传感器数据读取为例,甲醛传感器的通信方式为主动上传式,通信命令行格式见表1所列。

表1 甲醛传感器通信命令格式

甲醛模块仿真波形如图2所示。模块添加了数据帧头检测功能,只有在接收到0xFF时模块才开始工作,否则将保持原有状态,以有效过滤部分错误数据。

图2 甲醛模块数据接收仿真图

2.2 蓝牙发送模块

数据发送选用HC-08蓝牙串口通信模块,蓝牙通信的主要特点是功耗低、延时低、成本低,完全符合本系统的要求。检测终端向Android APP发送数据的数据封装格式见表2所列。

表2 发送数据封装格式

2.3 数据处理算法模块

数据处理算法模块主要包括2部分,分别是甲醛抗干扰模块和空气质量等级分类模块。

甲醛抗干扰模块采用KNN算法,以抑制酒精对甲醛传感器的影响[7];空气质量等级分类模块采用BP神经网络,选用甲醛、氨气、TVOC和温湿度等信息,对当前室内环境的空气质量进行分类。

3 Android APP客户端设计

本系统的Android APP端集成了用户登录、空气质量检测、数据查询等功能,其软件设计架构如图3所示。

图3 Android APP端软件设计架构

4 算法模型设计与实现

本系统抗干扰算法和空气质量分类算法流程分别如图4、图5所示。研究发现,酒精对甲醛传感器的检测会产生巨大影响,为提高甲醛检测精度,系统首先对采集的甲醛传感器数据进行抗酒精干扰处理,处理后的甲醛数据及氨气、TVOC、温湿度信息输入用于空气质量分类的BP神经网络,得到当前环境的空气质量等级,将数据按照格式打包后发送至Android APP,方便用户查看。

图4 抗干扰算法流程

图5 室内空气质量分类算法流程

本文采用Xilinx Zynq 7000系列芯片作为系统的硬件平台。Zynq的突出特点是将ARM Cortex-A9处理器和现场可编程门阵列(Field Programmable Gate Array, FPGA)逻辑部件相结合。可将Zynq分为处理器系统(Processing System,PS)和可编程逻辑(Programmable Logic, PL)两部分[8]。考虑到算法计算的复杂度,本文将KNN算法部署在PS部分,方便数据排序和挑选;BP神经网络通过PL部分实现,通过PL部分的加法器和乘法器实现神经网络的高速运算。

4.1 甲醛抗干扰算法

本系统采用的电化学甲醛传感器模组ZE-08具有高灵敏度、高分辨率、低功耗和使用寿命长等优点。但该甲醛传感器极易受到酒精气体的干扰,交叉敏感系数达50%,且酒精属于家中常见物品,易挥发,导致甲醛检测结果受到影响。

本文以英国PPM公司生产的PPM-400 ST型甲醛检测仪的检测值作为标准值,采用K近邻(KNN)算法对甲醛和酒精传感器的数据进行处理,以有效降低酒精对甲醛传感器的干扰,提升甲醛传感器的精度。

4.1.1 数据分析

实验一:试验箱内仅通入甲醛气体;

实验二:试验箱内仅通入酒精气体;

实验三:实验箱内同时通入甲醛和酒精气体。

记录甲醛传感器、酒精传感器和PPM-400 ST甲醛检测仪的响应情况,如图6所示。

图6 传感器响应曲线

本文通过使用5种算法对数据进行训练,以均方根误差(RMSE)作为评判标准。通过表3可以看出,KNN算法的效果最优,均方根误差为0.016 2,所以本文选用KNN作为抗干扰算法。

表3 训练数据在不同算法下的RMSE对比

4.1.2 KNN算法训练过程

K近邻(KNN)算法是一种基本分类和回归算法,本文主要应用了回归问题的KNN算法。

KNN算法计算回归问题时,需计算样本的K个最近邻居,将这些邻居某个属性的平均值赋给该样本,就可以得到该样本对应属性的值,达到回归计算的目的[9]。本文中数据的属性为{甲醛传感器,酒精传感器,PPM-400 ST检测值},模型输入为{甲醛传感器,酒精传感器},输出为PPM-400 ST的检测值。KNN算法流程如下[10]:

(1)测试数据归一化,计算训练数据到测试数据集中各样本的距离;

(2)将距离按升序排列;

(3)找出最小的K个值对应的PPM-400 ST检测值并求平均值;

(4)将平均值作为测试数据的预测输出。

本文采用欧氏距离作为计算标准。

KNN算法常用的3种距离计算公式如下[11]。设样本实例特征向量所属的特征空间X为n维的实数向量空间Rn,xi,xj∈X,其中:

xi,xj的闵可夫斯基距离Lp定义为:

式中,p≥1,可根据实际数据实例进行选取。当p=1时,称为曼哈顿距离(Manhattan distance),即:

当p=2时,称为欧几里得距离(Euclidean distance),即:

当p→∞时,称为切比雪夫距离(Chebyshev distance),即:

本文选取p=2,即欧氏距离作为计算标准。

4.1.3 KNN算法验证

KNN算法在训练时,不同的K值对预测结果有较大的影响,因此我们通过代入不同的K值对数据进行验证,得到不同的均方根误差,如图7所示。

图7 不同K值的均方根误差

当K=3时,均方根误差最小,RMSE为0.016 2,真实值与KNN预测值对比如图8所示。

图8 当K=3时预测结果与真实值结果对比

4.2 空气质量数据分类算法

室内空气质量的评价分为客观评价和主观评价。客观评价指通过对比当前环境中的污染物浓度和各种规范中规定的浓度来判断室内空气质量;主观评价是对居住人员采取问卷调查的方式了解其满意度,从而判断室内环境质量[12]。

这两种评价方法各有优劣,本文将两种评价方式相结合,采取综合评价的方法将室内空气质量分为5类,A表示清洁,B表示未污染,C表示轻污染,D表示中污染,E表示重污染。

4.2.1 室内空气质量等级分类算法选择

本文选取了4种常见的分类算法,通过MATLAB对数据进行训练,然后选取最优结果。训练准确率见表4所列。

表4 不同分类算法的预测准确率

综合计算的复杂度,本文最终选取BP神经网络[13]作为室内空气质量等级分类的算法。

4.2.2 BP神经网络算法设计

神经元的一般模型如图9所示。

图9 神经元的一般模型

神经元的输出可表示为:

式中:y为神经元的输出;f为激活函数(本文选用sigmoid函数);ωi为权重;b为阈值;xi为神经元的输入[14]。

本文根据实际情况,设计实现了一个3层BP神经网络,如图10所示[15]。

图10 BP神经网络拓扑结构

图10中,X1,X2,X3,X4,X5分别是甲醛、氨气、TVOC、温度和湿度5个维度的信息,输出为神经网络分类的结果。

4.2.3 BP神经网络算法验证

对于输入层,由于没有任何计算,所以采用寄存器打拍输出的方式,直接将输入值输出到隐层神经元。

隐含层和输出层的RTL结构如图11和图12所示[16]。

图11 隐含层RTL结构

图12 输出层RTL结构

为了降低功耗,在不影响BP神经网络正常计算的情况下,添加了如图13所示的cal_control计算控制模块。

图13 神经元计算控制模块

表5为添加计算控制模块前后的功耗,由表中数据可知,添加计算控制模块后,功耗降低了52%。

表5 添加计算机控制模块前后的功耗

由于BP神经网络采用一个神经元输出,输出的值反归一化后处于0至6之间,本文对不同取整方法的结果进行对比,结果见表6所列。

表6 不同取整方式的准确率

综合取整为大于5时向下取整,小于5时四舍五入。最终选取综合取整的方式对BP神经网络的输出结果进行处理[17],BP神经网络预测值和实测值结果对比如图14所示,实测值为结合了客观评价和主观评价人工标定的综合结果,1~5分别对应A~E等级。

图14 预测值和实测值结果对比

5 系统测试

对系统进行完整的功能测试。Android APP部分截图如图15、图16所示,OLED显示如图17所示。

图15 用户登录界面

图16 检测界面

图17 OLED显示界面

(1)打开检测终端,待传感器预热完毕后,OLED屏幕显示当前环境中的甲醛浓度和室内空气等级。

(2)用户打开Android APP,完成登录后点击“搜索”按钮搜索设备,连接成功后界面如图17所示。

(3)连接成功后,Android APP接收到来自检测端发送的数据,动态显示各指标。

6 结 语

基于Zynq的多传感器甲醛检测系统能满足日常生活中对室内常见污染气体的检测,并对其进行分类,用户可通过Android APP对室内环境的各指标进行实时查看。通过抗干扰算法和分类算法的植入,让系统检测的准确性和智能性得到巨大提升;在不影响计算结果的前提下,通过添加BP神经网络隐层神经元计算控制模块,大幅降低系统功耗。

猜你喜欢

室内空气甲醛酒精
微生物降解甲醛的研究概述
75%医用酒精
如何确定“甲醛”临界量
基于ARM的室内空气品质监测与控制系统
基于单片机的室内空气净化系统
跟踪导练(一)(2)
酒精除臭
对氟苯甲醛的合成研究
美国延迟甲醛排放施行标准截止日期
室内空气PM2.5超标不容忽视