当今社会,随着科技的不断发展,生活水平的提高,人们越来越重视身体健康。由于室内环境参数严重影响着人们的身体健康,因此空气检测类装置较为流行,例如检测室内的温湿度、空气质量、可燃气体浓度等[1]。
面对这种现状,各大公司相应地推出了具有部分功能的环境参数监测装置,但是大多数与传统监测装置相类似,采集的参数大多是空气质量的PM值、甲醛、可燃气体浓度等,而且一台机器多数则只能采集1~2种参数,显示方式多为通过本地的液晶屏幕为用户展示,且装置普遍体积较大,仅有少数可以和本地的手机连接,大大降低了产品的实用性与便携性。
本文设计了一个由硬件采集数据、软件远程监测两部分组成的系统。首先,硬件监测端由无线充电或者锂电池供电,可为各项传感器、液晶屏幕单元供电;同时利用充电芯片对锂电池进行充电,由3.7 V升至5 V的电压再次经过稳压单元将5 V转化成稳定的3.3 V,给Wi-Fi模块提供稳定的电压。传感器将采集的数据实时显示到液晶屏幕上,同时数据也通过Wi-Fi模块传输到手机客户端进行解析和显示;最后通过浏览器端编程,将硬件的数据采集后,存到本地服务器,本地的服务器和云端的服务器进行通信,用户通过访问相应的网址获得想知道地区的数据,实现远程监测。
在硬件设计中,以ATmega328P-au为主控芯片,外部传感器结合DHT11温湿度传感器、BMP180气压传感器、GP2Y1010AU0F灰尘浓度传感器和MQ-9可燃气体传感器。供电部分采用无线供电和锂电池两套供电方案同时使用,通过一定的升压、降压单元后,为整体系统提供所需的电能。硬件系统整体框图如图1所示。
电源设计部分分为锂电池充电单元、5 V升压单元以及3.3 V稳压电源,采用锂电池作为电源时,由于其3.7 V左右的电压不能使得传感器和液晶屏幕正常工作,因此需要一个升压单元将电压提升到5 V,升压单元原理图如图2所示。
为了方便用户的使用,硬件系统也加入了锂电池的充电方案,原理图如图3所示。
通信模块采用的是ESP8266无线Wi-Fi模块。本设计中通信模块的功能是收发UDP数据,之前单独设计的3.3 V稳压系统也是为了ESP8266这一款无线通信模块。采用ESP8266还因为它本身具有自组网的功能[2]。本地的手机客户端和本地的服务器连接ESP8266自组建的Wi-Fi网络,并通过访问对应的IP地址将打包的数据进行解析和获取,从而在手机端和本地服务器进行数据的处理。
GP2Y1010AU0F灰尘传感器内置了一个红外发光二极管(IRED)和一个光电晶体管,二者采用对角放置。GP2Y1010AU0F灰尘传感器检测的原理为:通过监测空气中灰尘在光电晶体管的反射光,并将反射光转换成模拟电压量的形式输出,供给单片机进行数据的分析处理,内部结构原理如图4所示。
ATmega328-au这一款处理芯片内部设有SPI总线、IIC总线、UART串行总线、USB控制总线、通用I/O口及模拟量输入输出口,相对于比较常见的51单片机,其在进行通信时处理得更快,信息显示更全;同时,ATmega328p-au具有32个工作寄存器,克服了单一累加器数据处理造成的瓶颈现象。单片机最小系统与温湿度传感器、可燃气体传感器、灰尘传感器、气压传感器和Wi-Fi模块连接原理图如图5所示。
在本文中,温湿度模块选择的是DHT11这一款通信方式为单总线通信的温湿度传感器模块,相对于其他种类的传感器模块来说,DHT11具有功耗低、体积小、通信方式简单的优点,其输入输出端只用到一个I/O接口,采用串行数据的传输方式进行数据的传输,在一定程度上方便开发者使用。可燃气体检测采用的MQ-9传感器,主要可以监测环境中的CH4、CO等可燃气体,加热器为气敏元件提供重要的条件[3]。BMP180是一种监测大气压强的传感器,同时可以监测环境温度来对气压值进行实时的校正。它是一款低功耗、低电压的新一代大气压强传感器,BMP180除了通信方式简单之外,体积也比较小,散热量小,对整体系统的温度影响也比较低。整体硬件电路板如图6所示。
系统软件主要包括三大部分,分别为环境参数采集硬件端编程设计、与之相对应的Android客户端软件编程设计以及浏览器端环境搭建和软件编程的设计。
在硬件编程中,首先对各部分传感器和主控系统进行初始化,将采集到的传感器数据进行本地液晶屏幕的显示,并将数据通过Wi-Fi模块发送出去。
在浏览器端软件设计中,本地服务器接收到Wi-Fi模块传过来的数据后,将本地数据实时传输到云端服务器,将浏览器界面挂载到云端Tomcat服务中,用户通过访问网址从而实现远程数据监测[4]。系统整体软件流程图如图7所示。
由于灰尘浓度传感器是通过光学的原理来进行数据的采集,一旦有灰尘粘附在传感器内部,那么就会使检测到的数据失效不准。为了避免这种偶然的误差,所以将卡尔曼滤波算法引入到空气质量监测单元[5]。算法应用流程如图8所示。
DHT11温湿度传感器采用单总线的通信方式,即数据的发送和接收都是通过一根总线来完成,所以要想调试好这一款传感器模块,就要掌握好发送和接收数据的时间。
可燃气体的数据量、灰尘传感器浓度都是将传感器采集得到的模拟电压量通过主控芯片将模拟量的信号转换成数字信号,供单片机进行数据处理。BMP180传感器将采集的数据存储在一个与它相连的176位的E2PROM中,其中存储着校准系数,在计算气压时,由于温度的影响也会导致气压值的变化,BMP180本身集成温度检测单元,单片机将读取存储在E2PROM的11个字的校准系数。通过校准系数,计算出温度和压强的精确数据,将采集到的气压数据与温度值进行分析处理,最终得到最后大气压强值。
采用这几种传感器的另外一个原因是,在使用传感器时,涉及的引脚较少,可以在满足功能实现的同时降低处理芯片的压力,使得整体系统运行流畅,提高芯片的资源利用率。
硬件部分将采集的数据通过Wi-Fi模块发送到本地服务器端,本地服务器程序采用Spring+iBATIS混合模式框架,数据通过互联网传输到云端,在云端通过JavaWeb编程[6]。
前台页面采用HTML+CSS+JavaScript编写,数据可视化图表采用Highcharts开源的图标库。Highcharts插件具有很好的兼容性能,可以支持目前使用率较高的IE、Chrome等浏览器。
浏览器端可以显示当前环境质量的参数、走势图以及根据已有数据计算出来的预测值。该页面的所有数据均为动态数据,全部采用AJAX异步通信技术,以每秒一次的请求速率从服务器获取数据并实时地绘制,数据可视化系统时序如图9所示。
本设计在灰尘浓度检测时采用了两套方案,一是灰尘传感器的正常测量;二是加入了卡尔曼滤波算法的灰尘传感器的测量,可以减弱灰尘浓度传感器模块在工作期间降低外界温湿度、风速、振动带来的偶然误差,使得整体系统采集的数据更加稳定,示波器图片及波形图如图10所示。
图10中,两套方案采用的单片机相同,时间相同且其他参数一致,下方波形为加入卡尔曼滤波算法的单片机连接灰尘浓度传感器采集的数据,波形较为稳定,曲线平滑;上方波形为没有加入卡尔曼滤波算法的单片机连接灰尘浓度传感器采集的数据,波形毛刺较多,数据波动较大,稳定性较差。
浏览器端调试主要分为本地服务器的开启操作和浏览器整体界面UI的显示。为了使用户有更好的体验,在本设计中,采用了多种过渡样式来增强人们的交互感,浏览器可视化界面如图11所示,历史数据界面如图12所示。
本文较完整地描述了室内环境参数远程监测的技术手段,在论述了无线传感器技术、JavaWeb等相关技术的基础上,分析室内环境参数远程监测系统的可行性。具体来说,本文设计了一种环境监测装置,整体系统可以将采集到的环境参数进行处理后,利用无线传输模块将数据传输到手机客户端和浏览器端,实现远程监测的功能。
全部0条评论
快来发表一下你的评论吧 !