严正国,李凯
(西安石油大学光电油气测井与检测国家教育部重点实验室,西安710065)
在我们生活周围,存在众多的污染源,造成大气环境恶劣,PM2.5急剧上升,主要的污染物包括工业废气、扬尘、汽车尾气等几方面,工厂是环境污染的主要根源。因此各个工厂都需要向社会公布自己工厂的实时排放情况。“全天候排污在线监测系统”应运而生,该系统实现了对电厂排污情况进行实时在线监控、管理一体化,大大地提升了监管部门的管理效率,同时可以让普通民众随时得知工厂排污情况。是“环境保护”的重要组成部分,为治理环境、提升空气质量做出了很大贡献[1-3]。
电厂排污监测系统是为改善空气质量而研发的排污实时采集监控系统。本系统主要实现对PM2.5、PM10、SO2、CO、CO2等热力电厂主要排放物的采集。通过对采集到的数据进行智能分析来检测排放是否存在超标,并通过LCD显示屏将实时排放物向公众进行实时公布。一旦出现排放超标通过警示设备提醒工厂,督促工厂按照环保要求进行生产。本系统使用的传感器主要有PM2.5/PM10传感器、SO2传感器、CO传感器、CO2传感器,通讯方式为以太网。
本监测系统主要实现的功能主要有:通过ARM平台实现的 PM2.5、PM10、SO2、CO、CO2等排放物采集,按照日期将采集到的数据存储到数据库;实现B/S模型Web服务器,构建控制主页,将采集到的数据实时通过控制主页发布;数据处理中心主要实现通过网络接收采集节点数据,统计在线设备,实现间隔1分钟完成一次数据采集,将采集数据按照时间存储在数据库,将采集到的数据通过本地LCD以柱状图形式实时显示,可以进行历史数据查询,通过曲线显示当天、每周、每月、每年历史数据,可以通过触摸屏查询一年中排放最严重和最好的日期。
本控测系统主要实现了排放数据采集节点设计和数据接受处理终端设计。数据接收处理终端和采集节点通过网络实现数据交互,数据采集节点主要实现了排放数据实时采集、存储、通过网络传递等功能。通过PM2.5、PM10、SO2、CO、CO2等传感器采集实时污染物数据,并对数据实现存储,实现B/S模型Web服务器将采集到的污染物数据通过网络发布到控制主页,方便数据处理,采集节点每1分钟会更新一次数据。数据处理终端每1分钟通过HTTP请求进行一次数据接收,将接收的信息通过数据解析得到所有的排放数据,并按照时间进行数据库存储。并对接收到的数据进行实时分析,通过LCD屏幕使用Framebuffer绘屏技术通过柱状图实时显示,还支持使用LCD通过曲线显示历史数据,历史数据支持当天数据、一周、一月、一年数据查询。通过触摸屏进行显示切换。并且可以查询一年中污染物排放最严重的时段。
本节点的主要组成包括烟尘监控模块、三星4412主控模块、Web服务器模块。整体设计方案如图1所示。
图1排放数据采集节点整体设计框图
扬尘监控模块监测大气中的扬尘数据,将收集到的数据存储到寄存器中,然后通过URAT电路发送给三星4412主控芯片。主控芯片接收到数据后将解析好的数据通过调用相关程序及网络编程的API接口一路按时间顺序存储到SQLite数据库中,一路直接写入到主控制页中,方便有关部门查看,最后一路使用B/S模型建立Web服务器,让人们能通过手机、电脑等无线设备远程访问这些信息。
本次设计的排放采集节点系统中硬件主要包括三星4412最小系统和MQ-135空气质量传感器模块。当空气中污染物气体浓度发生改变时,空气质量传感器的电导率随之发生改变,然后通过内置的信号转换电路即可将电导率的变化转化为与该气体相应的浓度数据,最后,通过URAT电路发送给主控制芯片,用户只需要从芯片相应的GPIO引脚读取浓度数据即可,不同的气体只需外接不同的浓度传感器即可实现对有害气体浓度的采集。
(1)三星4412最小系统
三星4412最小系统板以Cortex-A9为核心,内部集成了GPU为Mali-400 MP的高性能图形引擎,支持3D图形流畅运行,并可播放1080P大尺寸高清视频,流畅运行Android等高级操作系统,非常适合开发高端物联网终端、广告多媒体终端、智能家居、高端监控系统、游戏机控制板等设备[4]。
(2)MQ-135空气质量传感器模块
MQ135气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2),当传感器所处环境中存在污染气体时,传感器的电导率随空气中污染气体浓度的增加而增大。MQ135传感器对氨气、硫化物、苯系蒸汽的灵敏度高,对烟雾和其他有害的监测也很理想,这种传感器可检测多种有害气体,是一款适合多种应用的低成本传感器[5]。
该气体敏感元件原理图如图2所示,采用5V供电,该元件不仅支持TTL电平输出,还支持模拟信号输出,以满足不同的硬件需求,经过测试,可以输出浓度范围为10-1000ppm,当测量浓度大于设定的浓度时,三星4412的GPIO引脚输出低电平。
图2 MQ135型气敏传感器原理图
本次软件设计主要包括Web服务器的搭建,烟尘数据库的搭建。Web服务器程序将传感器采集到的烟尘数据插入到预先创建好的数据库中,并写入到HTML文件中,利用Socket套接字搭建一个轻量级的服务器,LISTEN监听外部客户浏览器的访问请求。一旦用户有请求,服务器从数据库中查找相应的数据,再通过HTTP协议发送给客户浏览器,即可达到实时查询烟尘数据的效果[6-10]。
(1)主程序设计
在本节点的主程序中,首先使芯片通电后首先进行系统初始化,主要包括Socket套接字的创建,服务器端口号的绑定,数据库的创建,烟尘数据表的创建。主程序分为一个线程,一个进程,主进程实时监听客户浏览器发来的请求数据;主线程负责把传感器采集到的数据插入到数据库中。本节点程序框图如图3所示。
图3节点程序框图
(2)Web服务器子程序设计
当程序执行到服务器子程序时,程序首先利用创建的监听套接字等待客户浏览器接入请求,请求来临时程序打开一个HTML模板,填入采集到的实时烟尘数据,并发回给客户,这样客户就能查阅到当时的大气污染数据,最后关闭Socket套接字,完成一次HTTP协议通信[9],具体流程如图4所示,客户浏览器访问页面如图5所示。
图4 Web服务器程序流程图
本数据处理终端主要模块包括主控制芯片三星4412、电源模块、LCD显示屏、报警器模块。整体方案设计框图如图6所示。
图6数据处理终端整体设计框图
数据处理终端通过HTTP协议来远程访问数据采集节点的Web服务器,把接收到的网页数据包发送给三星4412主控芯片,然后通过数据解析程序解析出大气浓度数据,利用Framebuffer技术实时以柱状图的形式绘制在LCD屏上,如果有某项烟尘数据超标,则驱动报警器响,以告知监测人员及时采取处理措施;同时,用户还可以触控屏幕选择当天、历史数据,从而达到大气污染物实时监测,数据超标报警的效果。
本数据处理终端硬件部分主要包括三星4412最小系统、LCD显示屏和报警器模块。终端外接网线访问远端服务器,获取HTML数据包,每分钟获取一次,数据包经过解析程序分离出大气中有害气体浓度数据,处理器操作显存设备文件,改变LCD上的每个像素点的颜色信息,即可在显示屏上绘制出污染物浓度的柱状图、折线图,一旦某一项浓度超标,则通过改变报警器GPIO的电平信号可使报警器报警。
(1)TD35显示屏
本次设计采用统宝35系列RGB888真彩色LCD显示屏,分别率240×320,支持触摸功能,功能齐全,价格低廉,非常适合嵌入式开发。
(2)板载蜂鸣器
报警器模块是利用最小系统板自带的板载蜂鸣器,它的蜂鸣器是通过PWM0控制的,原理图如图7所示,其中PWM0对应GPD0_0,该引脚可通过软件设置为PWM输出,也可以作为普通的GPIO使用,要想使它工作,需将GPD0先清0再将第0位置1即可。
图7蜂鸣器原理图
本节点的软件部分主要包括数据获取子程序和监控屏幕事件子程序。数据获取子程序通过发送HTTP请求远端Web服务器返回一个包含大气浓度数据的数据包,然后数据解析程序把数据包解析成对应的数字信息,最后利用Framebuffer技术把污染物数据以柱状图的形式绘制在LCD显示屏上。屏幕监控程序监测触控事件的来临,处理器通过操作屏幕设备文件描述符来判断用户点击今日数据区域、历史数据区域、实时数据区域、退出程序区域中的哪一个,从而进行对应的处理。
(1)主程序设计
在本节点的主程序中,芯片通电后首先进入初始化函数,主要包括绑定板子的IP地址和端口号,创建数据库,打开屏幕设备文件描述符。主程序包括两个进程,一个进程负责连接Web服务器,把数据存入数据库,并在屏幕上绘制柱状图;另一个进程负责监控屏幕事件,流程图如图8所示。
图8主程序流程图
(2)屏幕监控子程序设计
一切设备皆文件,屏幕是字符设备,要想操作它,只需要调用open函数打开设备文件,然后调用read、write函数对文件进行读写操作即可,如图9为部分源代码截图。
图9屏幕监控子程序部分源代码
(3)Framebuffer绘屏子程序设计
与监控程序类似,改变显存即可改变显示。也是对文件的操作,在此不再赘述,部分源代码如图10所示。
图10 Framebuffer绘屏子程序部分源代码
基于ARM芯片三星4412为核心,设计了一套简易且实用的工厂排污监控系统。由于其是基于嵌入式微控制器开发,因此这套系统具有很好的扩展性。随着物联网技术的发展,该套系统符合人们足不出户就能知晓大气质量的需要,应该会越来越普遍的应用与工业监测领域,因此本套系统具有很好的发展前景。