基于订阅发布的空气质量监测系统的设计实现

2016-02-13 05:58范文浩高锦春
软件 2016年12期
关键词:空气质量页面消息

凌 杰,范文浩,高锦春,吴 帆

(北京邮电大学电子工程学院,北京 100876)

基于订阅发布的空气质量监测系统的设计实现

凌 杰,范文浩,高锦春,吴 帆

(北京邮电大学电子工程学院,北京 100876)

近几年空气污染愈发严重,空气质量问题不容小觑。本文设计并实现了基于订阅发布的空气质量监测系统,包括便携式、低功耗的传感器模块,发布订阅服务端系统和跨平台移动客户端。其中,底层传感器节点是以Arduino扩展板进行编程集成的,能够通过若干个感知设备对空气中CO、PM2.5、PM10、03、VOC、NO2、温湿度等进行监测。同时传感器节点和移动端能通过无线、有线、蓝牙等方式与发布订阅服务器系统进行通信,接收服务端推送的订阅或发布信息,移动端接收感知信息后,可实时动态展示空气质量信息和城市天气信息,以便用户随时监测空气质量。

空气质量监测;Arduino;Cordova;发布订阅

0 引言

最近几年,各大城市频频发生的空气污染严重地威胁了人们的身体健康[1]。如何在空气质量发生变化时,准确实时地进行监测和报警[2],以便进一步采取相应的措施,将其负面影响降到最低,是一个亟待解决的问题。同时,传统的自动化空气质量检测站主要部署在各大城市及其周边地区,监测站设备价格高、建站成本高、站点分布密度小,且以地区总体的平均值代表城市的整体空气质量,对于农村地区、工厂地区、人们日常生活的办公楼、室内、小区、街道等的空气质量却无法进行实时监测。

针对上述问题,本项目基于无线传感器网络和发布订阅技术建立了空气质量实时监测系统,通过部署无线传感器节点来采集多种空气质量监测指标,然后利用移动网络、有线网、WiFi等将采集到的数据实时上传到发布订阅服务系统,并由该服务系统将数据实时推送到移动订阅终端,以实现端到端之间的高度信息共享,具有部署简单、灵活[3],监测节点便携性强等特点,个人、相关部门等可利用实时共享的空气质量信息高效地采取相应措施解决各种空气质量问题。

1 总体设计

本文的空气质量监测系统是由传感器节点、发布订阅系统和移动端组成,如图1所示。

(1)传感器节点负责采集PM2.5、PM10、甲醛等多种空气质量监测指标,并通过移动网络、WiFi、有线网等上传到服务器——发布订阅实时信息推送系统;

(2)发布订阅系统负责将传感器节点上传的数据实时推送给订阅目标,同时,也负责接收客户端的订阅信息,进行传感器节点的实时数据抓取等;

(3)移动端接收服务器的数据并展示,同时也能进行传感器站点的自主订阅,订阅城市和传感器站点,实现高度的信息共享。

整个系统以多节点传感器为基础,通过移动网络、有线网、WiFi等与骨干网相连,能够构建庞大的分布式服务器集群,有效地保证高并发实时信息共享与交互。

图1 系统总体架构图

2 系统硬件设计

空气质量监测系统的硬件模块包括部署安装在室内外的传感器节点和集成在节点上的通信功能模块。硬件采集模块负责采集传感器数据,进行处理后转换为标准形式并通过网络将数据上传至服务器。硬件采集模块设备部署如图2所示。

系统中使用的传感器的类型有三类:中立格林-MSM-1多参数传感模块,攀藤科技-DS-HCHO和颗粒物传感器PMSX00X系列,硬件采集模块需要使用Arduino平台分别采集上述三类传感器中的数据。

其中,DS-HCHO 是一款高度集成、高精度、高稳定性的数字输出式甲醛传感器,采用电化学方法实时检测各应用场景下的甲醛含量,无须采样,具有测量精准、体积小,使用方便等特点,家居和工业均可使用[4]。

数字式通用颗粒物浓度传感器是一款数字式通用颗粒物浓度传感器,可以用于获得单位体积内空气中悬浮颗粒物个数及质量,即颗粒物浓度,并以数字接口形式输出。该传感器可嵌入各种与空气中悬浮颗粒物浓度相关的仪器仪表或环境改善设备,为其提供及时准确的浓度数据[5]。

Arduino是一款便捷灵活的开源电子原型平台,本项目选择的型号是Arduino mega2560,以太网和WIFI通信均能实现,通过对Arduino的编程来实现了挂载集成多个种类传感器。采集到的各类数据的单位如下:PM2.5(ug/m^3),PM10(ug/m^3),温度(℃),湿度(RH%),CO2(ppm),TVOC(mg/m^3),HCHO(mg/m^3)。

图2 硬件采集模块设备部署图

传感器采集信息后,按照一定频率上次信息至服务器,其中上传至服务器的信息格式是:发布者ID,传感器ID,监测内容,监测数值和发布时间。同时,硬件采集模块也能够解析服务器发来的采集信息指令,并进行相应的采集上传操作。

3 空气质量系统的软件设计

3.1 发布订阅服务端系统架构

服务器系统分为客户端SDK模块和发布订阅服务模块。服务器端接收处理的消息主要分为两类:上行消息有客户端向服务器订阅、发布、查询等;下行消息有服务器向客户端发送消息、通知提醒等。整个系统具备响应时间短、资源占用低、运行周期短等特点。

3.1.1 客户端SDK模块

客户端SDK模块向移动端提供调用接口,封装通信过程,使用socket保持与客户端的长连接,该模块包括如下三个层次,其功能都分别如下所示:

1)应用编程接口层,为客户端通信、登录、注册、订阅服务提供调用的API接口;

2)加解密/认证层,该层封装了登录注册密码加密、解密,消息推送前的数据加密和接收后数据解密的功能,消息认证功能等;

3)通信接口层,该层封装了客户端socket连接,可通过该链接进行消息推送,订阅指令监听等操作。

3.1.2 服务端模块结构

发布订阅服务模块的结构图如3所示,该模块主要进行消息的发布订阅功能,包括通信接口层、管理域、数据流转域和数据存储这四大层级。通信接口层也封装了socket连接、推送、监听消息等操作。管理域是负责系统的用户信息、用户空间信息、用户秘钥信息、服务规则匹配信息等的增删查改功能。其中的用户管理是管理用户的身份信息和用户注册、用户秘钥生成发放、用户服务空间申请,规则匹配管理则是消息分发的匹配规则。

数据流转域是系统消息的处理流程,其中的加解密认证层具有数据的加解密和数据认证功能,接入控制层是接入用户的权限管理,路由服务层管理消息接收和分发,消息队列层用来缓存离线用户的订阅消息。

数据存储层位于底层,存储客户的基本信息,订阅发布信息及客户的详细订阅历史记录等。

3.1.3 服务端工作流程

小节3.1.2介绍了服务端的系统功能模块,本节主要介绍空气质量监测系统的服务端主要功能模块的工作流程,包括接入鉴权管理的流程,消息订阅和发布的工作流程,分别如图4所示。

图3 发布订阅服务模块结构

图4 接入鉴权管理流程图

图4 所示为接入鉴权管理的系统流程图,在客户端发起接入请求时,调用系统封装的客户端接入相关API,通过把接入请求的关键信息加密,然后通过调用通信接口层发送给服务器,服务器对加密信息的处理时,会先后调用服务端的解密认证、接入管理层,对客户请求进行处理,同时把处理信息进行数据存储,处理结果按照原通信链路返回到客户端。

消息订阅和发布的流程图如图5和图6所示。当用户进行消息订阅时,会首先调用客户端订阅的API,然后进行订阅消息的加密,利用通信接口层将信息传送到服务器的对应模块,进行消息认证和解密,然后由路由管理层进行业务操作,同时进行数据存储,最后将处理消息按照数据流链路返回到移动端,移动端接收到处理结果进行展示。当用户进行消息发布时,首先会通过调用客户端API将发布的消息封装,然后加密封装后的统一格式消息,调用通信接口层将信息传输到服务端,服务端接收到消息首先进行认证和解密,然后由路由管理层进行相应的存储操作,以及消息放入规定的消息队列,若订阅用户在线,则立即进行消息的发布,若订阅用户不在线,则放入消息队列,待用户上线立即推送历史数据。

图5 消息订阅流程图

图6 消息发布流程图

3.2 移动端结构设计

移动客户端按功能主要分为两大模块,分别为用户信息管理模块和空气质量信息订阅展示模块。用户信息管理模块主要包括用户的注册、登录以及用户信息的修改,空气质量信息订阅展示模块则分为两大信息流和两大功能,信息流一是室内空气质量,信息流二是室外空气质量包括天气信息和若干气体指标,可向用户展示实时监测到的室内传感器数据和城市天气、室外气体信息数据,功能一是室内、室外传感器节点的订阅,功能二是室内外空气质量的消息接收展示。移动端是基于Cordova跨平台开发,能够在Android和ISO平台等上运行。

移动端页面设计界面设计如下所示,主要包括主页面、室外信息详情页、室内信息详情页和我的账户页面。其中,室外信息详情页包括两个子页面,包括已订阅城市列表展示页、室外传感器订阅页,室内信息详情页包括两个子页面,包括已订阅传感器信息列表展示页、室内传感器订阅页。

图7 移动客户端总体架构图

主页面如图8所示,页面上半部分是室外概要展示(图中为用户订阅城市北京),包括北京的天气状况阴、晴等,温度、城市的空气质量、城市的AQI指数。中半部分包括室内传感器信息概要展示,与室外、城市的概要展示项目相同。

图8 移动端的主页面实现图

页面的下半部分包括方块图形生活指数和室内外条状气体指数。生活指数信息是订阅城市的生活指数,包括防晒指数、穿衣指数、运动适宜与否指数、洗车指数、晾晒指数和限行指数。

紧接着生活指数区域的是室内外条形指数包括室内的六种气体PM10、PM2.5、03、VOC、NO2、CO,条形图上左端标明了气体种类,右端标明了气体的指数,而条形图的颜色标明了污染的程度。分为4个等级,绿色、橙色、灰色、红色,表示气体质量优,污染轻,橙色表示该气体污染程度为良,灰色表示污染程度为轻度污染,红色表示重度污染。

页面最下方有4个按钮,分别为首页、室外、室内和我的账户。

室外页面如图9所示,以北京为例,页面顶部的城市名称右部也即右上角为链接,链接到已订阅城市的列表,城市名称的正下方是代表订阅城市的数目。图左和图右拼接起来为室外信息展示页。图左包括城市的天气信息,当天信息和四天的预测天气信息、温度和天气,图右偏下为天气详情,包括湿度、风力和紫外线指数。页面的最下方是该城市的条形指数图,室外条形指数包括室外的六种气体PM10、PM2.5、03、VOC、NO2、CO,条形图上左端标明了气体种类,右端标明了气体的指数,而条形图的颜色标明了污染的程度。

图9 移动端的室外信息展示页面

室内空气质量检测页面,该页面展示订阅的传感器信息,包括传感器的室内空气质量,空气AQI指数,室内的温度。支持订阅指定的传感器,能够获取该传感器采集的室内的PM2.5,PM10,甲醛等多种气体的实时浓度和气体污染程度的彩条展示,直观明了地展示污染气体的浓度水平。室内温度和AQI历史变化状况以曲线形式展示,以便用户直观了解变化趋势。

4 系统测试

本系统搭建完成后,在北京市的邮电大学若干点对部分功能进行了测试,实验表明,该系统可连续运转2400小时无故障,传感器采集发送频率可达到3 s/次,移动端的信息更新频率可达到15 ms/次,能够满足大规模系统的应用。发布订阅服务器的并发量测试性能如图10所示。

如图10所示,仿真测试的环境是ubuntu系统,Intel(R) Core i5-2557 M 1.70 GHz CPU,8 GB RAM,在其中进行仿真测试得到的登录并发量到15000次,注册的并发量达到2000,同时进行发布、订阅的系统操作更加复杂,所耗资源更多,并发量较少,分别为100、200次。订阅发布系统的吞吐量在一定范围内随发布数目及订阅数目的增大而增大,吞吐量峰值可达到百万字节每秒。

图10 发布订阅服务器的并发量测试图

5 总结

本文设计实现了基于发布订阅的空气质量监测系统,可以对室内、街道等任意地点的空气质量进行实时监测,并通过移动客户端实现信息交互和数据共享。空气质量监测系统包括底层传感器节点、服务器端和移动客户端三大部分,其中传感器节点具有便携性强、功耗低、成本低、性能稳定的特点,基于订阅发布的服务端系统能够支持大规模并发量,可达到百万级吞吐,同时支持万级以上的移动端信息订阅和空气质量的实时展示,移动端也具有界面友好、并发量大的特点。综上所述,整个空气质量监测系统具有非常大的使用价值和推广价值。

[1] 李德平, 程兴宏, 于永涛等. 北京地区三级以上污染日的气象影响因子初步分析[J]. 气象与环境学报, 2010, 26(3): 7-13.

[2] 龚发根, 汪炜, 秦拯. 基于ZigBee无线传感器网络的工业废气监控系统[J]. 传感器与微系统, 2011, 30(1): 86-89.

[3] 吴迪, 皇润风, 柯燕燕等. 基于无线传感网络的空气污染实时监测系统[J]. 计算机测量与控制, 2013, 21(7).

[4] 何道清. 传感器与传感器技术[M]. 北京: 科学出版社, 2003, 377-396.

[5] 王雪文, 张志勇. 传感器原理及应用[M]. 北京: 化学工业出版社, 2004, 177-212.

Design and Implementation of Air Quality Monitoring System Based on Subscription and Release

LING Jie, FAN Wen-hao, GAO Jin-chun, WU Fan
(School of Electronic Engineering, Beijing University of Posts and Telecommunications, Beijing 100876)

In recent years, air pollution has become increasingly fierce, which can’t be ignored. This paper designs and implements an air quality monitoring publish-subscribe system. The system includes a portable, low power sensor module, a million concurrent server and a users’ friendly cross-platform client. Several kinds of gases such as PM2.5, PM10, 03, VOC, NO2, temperature and humidity are monitored. Sensors can communicate with the server through wireless or wired network, etc. At the same time, the Ardunio hardware is used to control these sensor nodes. The publish-subscribe server can publish air quality information to users based on the subscription information. The mobile client can monitor the air quality and weather information at any time.

Air quality monitoring; Arduino; Cordova; Subscription and release

TP311.1

A

10.3969/j.issn.1003-6970.2016.12.001

国家自然科学基金项目(61502050);广东省“扬帆计划”引进创新创业团队项目

凌杰(1992-),女,研究生,研究方向:物联网搜索下的排序。

吴帆,女,博士,教授,研究方向:物联网与移动终端。

本文著录格式:凌杰,范文浩,高锦春,等. 基于订阅发布的空气质量监测系统的设计实现[J]. 软件,2016,37(12):01-06

猜你喜欢
空气质量页面消息
刷新生活的页面
“空气质量发布”APP上线
车内空气质量标准进展
重视车内空气质量工作 制造更环保、更清洁、更健康的汽车
开展“大气污染执法年”行动 加快推动空气质量改善
消息
消息
消息
网站结构在SEO中的研究与应用
浅析ASP.NET页面导航技术