面向智能家居的多源污染源监测与预警系统研究
2021-12-27王军茹郝新月王军平
王军茹,郝新月,2,王军平
(1.北京信息科技大学 自动化学院,北京100192;2.中国软件与技术服务有限公司,北京102200;3.中国科学院 自动化研究所,北京100190)
0 引 言
随着计算机技术、控制技术、物联网技术等快速发展,人们对居住环境的要求越来越高,通过智能家居系统建立环境的污染源监测和预警体系,对居室环境质量进行监测、预警、控制和改善至关重要。
目前智能家居行业存在着价格昂贵、标准不统一的问题,并且智能家居环境监测大多侧重于空气质量监测[1-4],对噪声和水质的综合监测和预警的研究较少。鉴于此,本文从智能家居居室环境综合因素考虑,对家居多污染源进行检测,以快速、准确地显示污染状况和进行预警;同时根据空气污染、噪声污染和水污染的状况,对居室环境质量综合等级进行分析和判断。
1 监测预警系统整体设计
本文是以智能家居为载体,51单片机作为控制器,通过空气探测传感器、噪声传感器和水质检测传感器采集环境污染数据并进行处理,完成对智能家居空气质量、噪声、水质等多源污染源的监测和预警。该系统采用模块化设计方法,包括输入模块、控制模块和输出模块。系统通过传感器将现场检测到的空气污染度、噪声、水浊度这些非电量参数转化为电信号,通过调理、放大、滤波和A/D转换后送单片机处理,一方面将实测值进行显示;另一方面当测量值超过报警阈值时进行声光报警;第三方面,通过串口将数据送给上位机进行多污染源数据分析和处理,进一步确定污染等级。系统的总体结构如图1所示。
图1 系统总体结构框图
2 系统硬件设计
系统硬件包括单片机控制模块、系统输入模块、系统输出模块和电源模块,其中系统输入模块包括按键控制模块、数据采集和A/D转换模块;系统输出模块包括显示模块、报警模块和串口通信模块。
2.1 单片机控制模块
本设计采用STC89C52作为主控器,完成整个系统各功能模块的协调调度。具体接口设计如下:
1)P0口连接LCD显示器数据端口,传输显示的数据。
2)P1口的P1.0~P1.2连接3个按键,用来设定污染参数报警阈值;P1.3~P1.6连接4个指示灯,指示不同参数报警;P1.7连接AD1的信号输入输出端。
3)P2口的P2.0连接蜂鸣器;P2.5~P2.7连接LCD显示器的3个控制信号。
4)P3口的P3.0/RXD和P3.1/TXD为 串口 线,同 时作为下载线;P3.2~P3.7连接传感器和A/D转换器。
单片机各个引脚详细设计如表1所示。
表1 单片机引脚及其对应功能
2.2 系统输入模块设计
系统输入模块包括按键控制模块、数据采集模块和A/D转换模块。
2.2.1 按键控制模块
系统采用“选择”“+”“-”三个按键对空气污染物浓度、噪声、水浊度等参数阈值进行设定,按下“选择”键选择不同设定参数,按下“+”键和“-”键对阈值进行“递增”和“递减”处理。设计采用四脚按键,未按下时管脚两两导通,按下时4个管脚互相导通,按下后会自动抬起,信号电平变换一次。设计时2个连通引脚接地,另外2个引脚接单片机。
2.2.2 数据采集模块
数据采集模块完成对空气污染物浓度、噪声、水浊度等各个参数的实时检测。
1)空气质量检测
空气质量检测包括可吸入颗粒物探测和CO浓度探测。
可吸入颗粒物探测使用ZPH01型PM2.5探测器。该探测器内部对角安放红外线发光二极管和光电晶体管,其光轴相交,当气流通过光轴交叉区域,其中粉尘对红外光反射,反射光强与灰尘浓度成正比,输出两个不同的脉宽调制信号(PWM)区分不同灰尘浓度。工作电压为5 V直流电,上电后需要先进行预热。设计中ZPH01的输出脚与单片机连接。
CO浓度探测使用MQ-7型CO传感器,由气敏元件SnO2制成。当探测到空气中存在CO时,其电导率会随CO浓度的上升而变大[5-6]。通过处理电路,将电导率的变化反映为输出电压的变化,根据输出电压值推算CO浓度大小[7]。传感器采用5 V直流供电,模拟量输出电压0~5 V,经A/D转换后送单片机处理。
2)噪声检测
噪声检测使用分贝传感器,其含有一个对声音敏感的电容式听筒,经过电场驻极。有声音时,电容式听筒的驻极体振动膜发生振动,电容两端电场发生变化,检测电容两端电压值可以检测是否存在声音以及声音高低[8]。传感器采用5 V直流供电,输出电压为0~3.3 V,经A/D转换后送单片机处理。
3)水浊度检测
水浊度检测使用TSW-30型水浊度传感器,对水中泥沙、有机及悬浮物造成的水浊度进行测定。其中有一个红外对管,当水浑浊时,透过的光线会减弱,接收部分把接收光强转化为电流,电流越大,水浊度越小。设计将电流转化为电压,根据电压大小通过转换关系得出水浊度的大小,输出电压经A/D转换后送单片机处理。
2.2.3 A/D转换模块
CO检测、噪声检测和水浊度检测传感器的输出信号都是模拟电压信号,需经A/D转换才能送单片机进行处理。设计中采用8位的ADC0832芯片,每片可以处理两路模拟信号,对DI引脚进行通道选择,模拟电压输入为0~5 V。设计采用两片ADC0832,一片接水浊度和噪声传感器,另一片接CO传感器。
2.3 系统输出模块设计
2.3.1 液晶显示模块
居室空气中颗粒物、CO浓度、噪声、水浊度各参数的实测值和阈值,以及居室环境污染等级等都可以通过液晶屏显示。设计采用的FYLCD1602A型液晶显示屏是一种专门用于字符显示的点阵型显示器,有4位和8位两种数据传输方式,带数据缓冲区和两种字符发生器。一种字符发生器中是定义好的字母、符号和数字,另一种是用户定义的图形和符号。它可以显示两行共32个字符。设计采用定时器每隔10 s切换不同内容,其数据口连接单片机P0口,指令/数据选择、读/写选择和使能信号与单片机P2.5~P2.7连接。
2.3.2 报警模块
当各个污染参数检测值超过报警阈值时,启动报警模块。系统采用蜂鸣器以及LED实现声光报警,实测值超过阈值时蜂鸣器报警,相应LED点亮。蜂鸣器串联1个PNP三极管8550,当单片机P2.0为1时,8550截止,蜂鸣器不响;P2.0为0时,8550导通,报警。报警指示为4个LED,分别作为CO、PM2.5、噪声、水浊度超限报警指示。其阳极接5 V电源,阴极接单片机引脚,电平为0时点亮LED。
2.3.3 串口模块
各个参数和污染等级除了现场显示外,还通过串口发送给上位PC机,以便实现在实际居室环境中对多个采样点、各个时间段的值进行综合分析和处理,进一步确定居室污染等级,为居室环境改善提供依据。本设计中PC机 端使用USB接口,采用USB转TTL线,其TXD/RXD端接单片机的RXD/TXD引脚,实现PC机和单片机间串口通信。
3 系统软件设计
3.1 系统软件总体设计
软件系统包含系统初始化、按键控制程序、数据采集及处理程序、A/D转换程序、显示及报警程序、串口传输模块,并采用Keil C编程[9]。软件配合硬件完成各个污染参数实时采集和显示,进行居室环境污染等级确定和显示,实现各个污染参数报警阈值设定以及超限声光报警,并且可以把下位机采集的各个污染参数通过串口向上位PC机传输,在上位机完成集中监控和处理。系统软件总体流程如图2所示。
图2 系统软件总体流程设计
3.2 系统输入程序模块设计
3.2.1 按键控制程序
系统共3个按键:“选择”“+”和“-”键。单片机中存储各个参数报警阈值,需要修改阈值时,按“选择”键选择相应参数,“+”和“-”键对阈值进行“递增”和“递减”处理。设置连加、减标志,当标志有效时可以进行连加、连减,持续按键3 s进入连加、减模式。每个按键设定一个标志位,确定是否按下,代替延时解决键抖动,先将标志置1,为键按下做准备,随后将标志清零,防止按键一直按下。
3.2.2 数据采集及转换程序
数据采集及转换程序完成各个参数处理。PM2.5探测器ZPH01输出PWM波,采用中断方式将输出送单片机处理。其他传感器检测数据调用A/D程序后,再送单片机处理。
ZPH01模块以PWM方式输出,低电平有效,低电平百分比决定PM2.5的大小,例如输出的低电平持续时间是100 ms,PM2.5百分比就是1%(周期1 s),该值乘以参数10.147,就得到PM2.5值。
MQ-7传感器获取CO浓度百分比,由于采用8位A/D,将0~255分成100份,根据实测值转换后的数字量决定百分数的大小,其输出电压为0~5 V,对应浓度为0~500 ppm(mg/L);分贝传感器输出电压为0~3.3 V,将其与0~255数字量对应,进而与0~120 dB对应得出一个实测的分贝值;水浊度检测将得到的数字量转为电压值,再与浊度进行关系换算[10]。为保证数据精确性,程序上采用平均值滤波将多次采样值进行滤波处理。
3.3 居室环境污染等级确定
参照城市区域环境噪声标准[11]、空气质量指数与污染物浓度限值对照表[12]和国家水质标准[13]等文件,对污染数据进行污染指数分析。空气中PM2.5浓度小于750 μg/m3时污染等级设定为优,750~1 500 mg/m3之间时设定为良,大于等于1 500 mg/m3时设定为差;噪声小于50 dB时噪声等级设定为优,在50~60 dB之间时设定为良,噪声大于等于60 dB时设定为差;水浊度小于500 mg/L时污染等级设定为优,在500~2 000 mg/L之间时设定为良,水浊度大于等于2 000 mg/L时设定为差。由于空气、噪声和水质3种污染参数之间是相互独立的,当3个参数处于同一等级时,居室环境综合污染等级可以确定为该等级;当3个参数处于不同等级时,参考其中1~2个参数来确定综合污染等级。
3.4 系统输出程序设计
3.4.1 液晶显示程序
液晶屏显示三个内容:一是各个传感器实测值;二是各个参数报警阈值;三是污染等级。由于LCD1602屏幕只能显示两行,所以分屏显示,设置一个分屏变量,每隔10 s切换显示不同的内容。传感器实测值显示两屏,报警阈值显示两屏,正在设定的值闪烁,污染等级显示三屏。
3.4.2 报警程序
报警模块包括蜂鸣器及指示灯报警,只要有传感器检测值大于阈值,蜂鸣器就会报警并点亮相应的指示灯。定义报警标志位,如果报警标志为1,蜂鸣器每隔50 ms取反,实现滴滴响声;如果报警标志为0,将蜂鸣器置1,关闭蜂鸣器。
3.4.3 串口程序
利用串口将单片机数据上传到PC机,可以将多个采样点的值在上位机集中显示、监控,或通过PC机将数据做远程传输,实现对智能家居环境的远程监控。先进行串口初始化,再用单片机定时器1产生波特率。发送过程中,执行将写入发送缓冲器SBUF(99H)指令时,串行口就把SBUF中8位数据以fosc12的波特率从TXD端口输出,发送完毕置中断标志TI=1。
4 系统调试结果
调试分为硬件调试、软件调试和系统软硬件联合调试。完成系统硬件搭建和焊接后,先检查是否存在虚焊错焊;再对单片机、传感器、显示器、蜂鸣器等系统中各个器件和模块进行功能测试。软件调试先对各个模块进行调试,完成各个模块功能调试和测试后对整个系统功能进行测试。系统硬件实物图如图3所示。
图3 硬件实物图
传感器实测值如图4所示。设阈值如图5所示。显示污染等级如图6所示。
图4 各传感器测量值
图5 设阈值状态(第一行闪烁)
图6 显示污染等级(以空气质量为例)
5 结 语
智能家居多污染源监测预警系统涉及传感器技术、通信技术、嵌入式技术,实现了空气中污染物浓度、环境噪声和水质浊度的检测、分析和预警处理,系统可以灵活设定报警阈值,现场实时显示各个传感器检测值和报警阈值,并可以根据居室环境具体情况显示各种污染等级。
实验结果证明,本设计所完成的多污染源监测预警系统具有一定的实用价值,并为进一步开展居室环境多个监控点集中监控和远程监控提供底层设计方案。