Arduino 和乐联网在PM2.5 实时监测系统中的应用
2015-04-01马娅婕
肖 凡 马娅婕 余 湧 万 勇
(武汉科技大学信息科学与工程学院,湖北 武汉 430081)
0 引言
PM2.5 是指环境空气中空气动力学当量直径小于等于2.5 μm 的颗粒物,也称可入肺颗粒物。虽然PM2.5 只是地球大气成分中含量很少的组分,但它对空气质量和能见度等有重要的影响,已经成为空气污染的罪魁祸首[1]。
在实际监测工作中已有很多PM2.5 监测系统,这些系统使用ZigBee 节点和粉尘颗粒物传感器组建的无线传感器网络作为监测网络,并通过GPRS 无线传输方式传输数据的PM2.5 监测系统[2]。也有使用Arduino 单片机的系统,只是数据处理通过Raspberry Pi 传输到Yeelink 平台[3]。随着监测项目的增多,监测范围的扩大及点位的密布,价格昂贵、实时性差、系统运行维护费用高等缺点逐渐表现出来。为了解决上述种种问题,本文提出了基于Arduino 和乐联网的PM2.5 实时监测的设计方案,方案具有很好的网络拓展性能。
1 系统总体方案设计
PM2.5 实时监测系统可以按照功能分为三部分:数据采集与传输、数据融合与分析[4]、数据查询,如图1 所示。
图1 PM2.5 实时监测系统结构Fig.1 Structure of PM2.5 real-time monitoring system
数据采集与传输:是本系统中的底层硬件,这层包含了系统中所有的硬件管理,包括硬件的设计,硬件拓扑结构的布置,PM2.5 的采集、存储及传输等。各个粉尘颗粒物传感器进行监测时,都会对相关信息进行记录保存,这些信息最终会实时存入乐联网平台,用户可以通过多种途径登录乐联网查看实时的PM2.5 值。
数据融合与分析:是本系统中进行数据处理、分析的核心层。这层主要对下位机采集的数据进行管理,并在曲线图中实时体现出来。同时,通过发送新浪微博或者微信的方式告知用户,可以对下位机进行配置与管理等。
数据查询:用户只需要登录乐联网平台,即可在用户中心获取需要的实时数据,根据已有的PM2.5 曲线图直观地了解最近一段时间PM2.5 的变化情况。
2 系统硬件设计
PM2.5 实时监测系统的硬件结构如图2 所示,设计共分为3 个部分:Arduino Uno、Ethernet W5100 与Sharp GP2Y1010AU0F 传感器组建的传感器网络、乐联网平台和远程监测用户。系统中数据采集与传输部分即传感器网络,用于实现各个监测点数据的采集、存储,并将数据传输至乐联网平台;乐联网平台用于接收存储、分析处理数据;远程监测用户通过手机、计算机,可以访问乐联网平台、新浪微博或微信,根据需求获取相关数据。
图2 系统硬件结构图Fig.2 Structure of system hardware
2.1 传感器网络硬件设计
传感器网络由Sharp GP2Y1010AU0F 粉尘颗粒物传感器监测节点、Arduino Uno 单片机与Ethernet W5100 网络控制模块、路由器3 部分组成。其中第二部分是整个传感器网络的核心,负责管理运行整个传感器网络。
(1)传感器监测节点:GP2Y1010AU0F 是一种基于光学传感系统的粉尘颗粒传感器。在传感器内部布置了一个红外发光二极管和一个光电子跃迁材料晶体管。它能够有效检测非常细小的颗粒物,将浓度值转换成脉冲电压。传感器内部电路结构如图3 所示。
图3 传感器节点硬件结构图Fig.3 Hardware structure of sensor node
其中:①号为V-LED,接5 V 电压供电;②号为LED-GND,接地;③号为LED,接Arduino 数字I/O 口的2 端口;④号为S-GND,接地;④号为Vo,接Arduino模拟I/O 口的0 端口;⑥号为Vcc,接5 V 电压供电。①~③号接口,主要是保证红外发光二极管能够正常工作;④~⑥号接口,主要是保证整个粉尘颗粒物传感器能够正常工作。
在整个PM2.5 实时监测系统中,传感器监测节点主要负责采集所在地的实时PM2.5 值,按照网口传输协议发送给路由器,然后再由各子路由器汇总发送给总路由器。通过单片机给③号接口发送周期为10 ms的脉冲波,高电平时间在0.32 ms 左右。触发红外发光二极管工作发光,当颗粒物通过粉尘颗粒物传感器时,光会产生折射、散射,在到达光电子跃迁材料晶体管时光强度会发生变化,然后转换成变化的电压值,通过这样的工作原理反映颗粒物的浓度值[5]。
(2)单片机与网络模块:Arduino Uno 是一个开放源代码的硬件项目平台,该平台包括一块具备简单I/O功能的电路板以及一套程序开发软件[6]。在本系统中,将传感器的3 号接口与Arduino 数字I/O 口的0 端口连接,通过单片机向LED 接口发送周期为10 ms的脉冲波。将传感器的5 号接口与Arduino 模拟I/O口的2 端口连接,使得单片机接收来自传感器的输出脉冲电压信号,并通过一定的函数关系将电压值转换成为对应的粉尘颗粒物浓度值即PM2. 5。Ethernet W5100 网络扩展模块只需要插入Arduino Uno 主控板的相应接口,就可以读取Arduino 模拟I/O 口的2 端口数据。网络扩展模块上的RJ45 接口通过网线与无线路由器相连[7],传感器采集的数据就可以通过网口发送至乐联网平台。硬件结构如图4 所示。
图4 单片机与网络模块硬件结构图Fig.4 Hardware structure of single chip computer and network module
(3)路由器:本系统采用多路无线路由器相连,即将总路由器的WAN 口连接猫,这个无线路由设定连接拨号并且充当所有连接的网关。其他所有的子路由通过LAN 口与总路由的LAN 口互联。这样可以将多个子路由连接到总路由,这些子路由的网关IP 要与总路由的网关IP 不一致。总路由的网关IP 为192.168.1.1,子路由可以依次设置为192.168.1.2 等。同时总路由设定IP 地址DHCP 获取,子路由禁用DHCP[8]。任何地方无线连接时统一连接到总路由的网关,所有子路由全部当作局域网交换机及无线连接接收器使用。路由器结构如图5 所示。
图5 路由器结构图Fig.5 Hardware structure of router
2.2 乐联网平台
乐联网是一个迅速实现物联网应用的平台。不需要繁琐的编程和开发就可以把测量设备或者传感器连接到乐联网应用平台上,并在该平台上存储、查询和分析测量数据。该平台提供了网络转接功能模块,可以让所有测量设备都具备联网功能,集中监控和管理设备。同时方便用户在网上或者手机APP 上查看所有测量设备的测量数据,实现远程读数。该平台还提供数据查询、分析、对比和警告提醒等基本功能,根据用户的实际需求还可以定时发送新浪微博或者微信。本系统中直接在计算机上登录乐联网平台,注册、添加设备和传感器之后就可以在网页上查看PM2.5 的实时监测值[9]。
3 系统软件设计
软件设计是整个系统设计的重要组成部分,粉尘颗粒物传感器数据的采集、传输、分析和处理等功能都离不开软件的支持,完善的软件设计可以保证整个系统的正常运作。
系统程序设计主要采用Arduino 自带的编程语言。该编程语言的语法与C/C + + 相类似,并且将Arduino 单片机相关的一些参数设置模块化,包括EEPROM、Ethernet、步进电机、时钟等程序库,所以并不需要开发者考虑底层硬件的实现原理,可以提高程序开发的效率[10]。PM2.5 实时监测系统的监测端供电后,首先进行网络及硬件的初始化,在使用DHCP对Ethernet 的连接配置成功后,使用HTTP 协议主动与乐联网平台的服务器建立连接。如果网络连接不成功,并且最后一次的连接时间超过30 ms,那么立即重新与服务器建立连接。如果网络连接成功,GP2Y1010AU0F 粉尘颗粒物传感器开始采集环境中的PM2.5 浓度,并通过Ethernet W5100 网络扩展模块上的RJ45 接口将数据发送给服务器。数据发送成功后将继续循环采集、发送数据,如果在数据发送过程中出现故障,可以选择重启系统。程序流程图如图6 所示。
图6 系统程序流程图Fig.6 Flowchart of system program
4 测试结果分析
粉尘颗粒物传感器采集的数据,在上传至乐联网后会经过分析处理,与时间、地点等信息打包后在动态曲线上直观地显示出来。使用个人计算机登录乐联网或者在微信中关注乐联网,就可以查看实时的PM2.5变化曲线,如图7 所示。
图7 测试结果Fig.7 Test results
本次测试只截取了2014 年6 月22 日11:30 ~21:00 青山区的PM2.5 历史值,采集的单位时间间隔15 min。将测试结果与环境监测总站更新的数据进行对比,发现两者显示的PM2.5 的变化趋势一致。相同时间对应的测量值非常近似,达到了预期的效果,能够合理地体现一天中测量的PM2.5 的变化情况。用户可以根据需要,查看自己所在地的PM2.5 浓度,合理地安排自己的出行。
5 结束语
经过实际的运行,本系统可以全天候地采集监测终端所在地的PM2.5 浓度数据,并通过传感器网络和多路路由器互联技术发送至乐联网平台,为环境中PM2.5 的监测提供了一种低成本、稳定、实时性好、网络拓展性强的解决方案,具有良好的实用价值。随着物联网的逐渐普及、智能家居等新技术的兴起,本系统的应用范围也会更加广泛。
[1]王玮,汤大钢,刘红杰,等.中国PM2.5 污染状况和污染特征的研究[J].环境科学研究,2000,13(1):5 -9.
[2] 史丽娟,包亚萍,田峰.基于GPRS 和Zigbee 的矿井无线监测系统的设计[J].煤炭技术,2010,29(3):44 -45.
[3] 秦华,孙晓松. 基于Arduino/Android 的环境状况监测系统设计[J].无线互联科技,2013(1):59 -61.
[4] 胡向东,魏琴芳,唐慧.物联网中数据融合的信誉度模型与仿真[J].仪器仪表学报,2010,31(11):2637 -2639.
[5] 李楠,汤东,陈烈.柴油机车载诊断系统新型颗粒物传感器的研究[J].仪表技术与传感器,2013(6):1 -3.
[6] 玄兆燕,唐佳明,陈学斌,等.农田环境信息采集系统设计与实现[J].自动化仪表,2014(11):42.
[7] 白云州.基于W5100 的网络化温室大棚环境监测系统[J]. 制造业自动化,2011,33(3):20 -21.
[8] 黄刘生,李虹,徐宏力,等.无线传感器网络中基于负载平衡的多路路由[J].中国科学技术大学学报,2006,36(8):888-890.
[9] 郑平燕.简易智能家居物联网的研究与设计[J]. 科教导刊,2013(19):9 -10.
[10]崔才豪,张玉华,杨树财.利用Arduino 控制板的光引导运动小车设计[J].自动化仪表,2011,32(9):6 -7.