凌 杰,范文浩,高錦春,吳 帆
(北京郵電大學(xué)電子工程學(xué)院,北京 100876)
基于訂閱發(fā)布的空氣質(zhì)量監(jiān)測系統(tǒng)的設(shè)計實現(xiàn)
凌 杰,范文浩,高錦春,吳 帆
(北京郵電大學(xué)電子工程學(xué)院,北京 100876)
近幾年空氣污染愈發(fā)嚴重,空氣質(zhì)量問題不容小覷。本文設(shè)計并實現(xiàn)了基于訂閱發(fā)布的空氣質(zhì)量監(jiān)測系統(tǒng),包括便攜式、低功耗的傳感器模塊,發(fā)布訂閱服務(wù)端系統(tǒng)和跨平臺移動客戶端。其中,底層傳感器節(jié)點是以Arduino擴展板進行編程集成的,能夠通過若干個感知設(shè)備對空氣中CO、PM2.5、PM10、03、VOC、NO2、溫濕度等進行監(jiān)測。同時傳感器節(jié)點和移動端能通過無線、有線、藍牙等方式與發(fā)布訂閱服務(wù)器系統(tǒng)進行通信,接收服務(wù)端推送的訂閱或發(fā)布信息,移動端接收感知信息后,可實時動態(tài)展示空氣質(zhì)量信息和城市天氣信息,以便用戶隨時監(jiān)測空氣質(zhì)量。
空氣質(zhì)量監(jiān)測;Arduino;Cordova;發(fā)布訂閱
最近幾年,各大城市頻頻發(fā)生的空氣污染嚴重地威脅了人們的身體健康[1]。如何在空氣質(zhì)量發(fā)生變化時,準確實時地進行監(jiān)測和報警[2],以便進一步采取相應(yīng)的措施,將其負面影響降到最低,是一個亟待解決的問題。同時,傳統(tǒng)的自動化空氣質(zhì)量檢測站主要部署在各大城市及其周邊地區(qū),監(jiān)測站設(shè)備價格高、建站成本高、站點分布密度小,且以地區(qū)總體的平均值代表城市的整體空氣質(zhì)量,對于農(nóng)村地區(qū)、工廠地區(qū)、人們?nèi)粘I畹霓k公樓、室內(nèi)、小區(qū)、街道等的空氣質(zhì)量卻無法進行實時監(jiān)測。
針對上述問題,本項目基于無線傳感器網(wǎng)絡(luò)和發(fā)布訂閱技術(shù)建立了空氣質(zhì)量實時監(jiān)測系統(tǒng),通過部署無線傳感器節(jié)點來采集多種空氣質(zhì)量監(jiān)測指標,然后利用移動網(wǎng)絡(luò)、有線網(wǎng)、WiFi等將采集到的數(shù)據(jù)實時上傳到發(fā)布訂閱服務(wù)系統(tǒng),并由該服務(wù)系統(tǒng)將數(shù)據(jù)實時推送到移動訂閱終端,以實現(xiàn)端到端之間的高度信息共享,具有部署簡單、靈活[3],監(jiān)測節(jié)點便攜性強等特點,個人、相關(guān)部門等可利用實時共享的空氣質(zhì)量信息高效地采取相應(yīng)措施解決各種空氣質(zhì)量問題。
本文的空氣質(zhì)量監(jiān)測系統(tǒng)是由傳感器節(jié)點、發(fā)布訂閱系統(tǒng)和移動端組成,如圖1所示。
(1)傳感器節(jié)點負責采集PM2.5、PM10、甲醛等多種空氣質(zhì)量監(jiān)測指標,并通過移動網(wǎng)絡(luò)、WiFi、有線網(wǎng)等上傳到服務(wù)器——發(fā)布訂閱實時信息推送系統(tǒng);
(2)發(fā)布訂閱系統(tǒng)負責將傳感器節(jié)點上傳的數(shù)據(jù)實時推送給訂閱目標,同時,也負責接收客戶端的訂閱信息,進行傳感器節(jié)點的實時數(shù)據(jù)抓取等;
(3)移動端接收服務(wù)器的數(shù)據(jù)并展示,同時也能進行傳感器站點的自主訂閱,訂閱城市和傳感器站點,實現(xiàn)高度的信息共享。
整個系統(tǒng)以多節(jié)點傳感器為基礎(chǔ),通過移動網(wǎng)絡(luò)、有線網(wǎng)、WiFi等與骨干網(wǎng)相連,能夠構(gòu)建龐大的分布式服務(wù)器集群,有效地保證高并發(fā)實時信息共享與交互。
圖1 系統(tǒng)總體架構(gòu)圖
空氣質(zhì)量監(jiān)測系統(tǒng)的硬件模塊包括部署安裝在室內(nèi)外的傳感器節(jié)點和集成在節(jié)點上的通信功能模塊。硬件采集模塊負責采集傳感器數(shù)據(jù),進行處理后轉(zhuǎn)換為標準形式并通過網(wǎng)絡(luò)將數(shù)據(jù)上傳至服務(wù)器。硬件采集模塊設(shè)備部署如圖2所示。
系統(tǒng)中使用的傳感器的類型有三類:中立格林-MSM-1多參數(shù)傳感模塊,攀藤科技-DS-HCHO和顆粒物傳感器PMSX00X系列,硬件采集模塊需要使用Arduino平臺分別采集上述三類傳感器中的數(shù)據(jù)。
其中,DS-HCHO 是一款高度集成、高精度、高穩(wěn)定性的數(shù)字輸出式甲醛傳感器,采用電化學(xué)方法實時檢測各應(yīng)用場景下的甲醛含量,無須采樣,具有測量精準、體積小,使用方便等特點,家居和工業(yè)均可使用[4]。
數(shù)字式通用顆粒物濃度傳感器是一款數(shù)字式通用顆粒物濃度傳感器,可以用于獲得單位體積內(nèi)空氣中懸浮顆粒物個數(shù)及質(zhì)量,即顆粒物濃度,并以數(shù)字接口形式輸出。該傳感器可嵌入各種與空氣中懸浮顆粒物濃度相關(guān)的儀器儀表或環(huán)境改善設(shè)備,為其提供及時準確的濃度數(shù)據(jù)[5]。
Arduino是一款便捷靈活的開源電子原型平臺,本項目選擇的型號是Arduino mega2560,以太網(wǎng)和WIFI通信均能實現(xiàn),通過對Arduino的編程來實現(xiàn)了掛載集成多個種類傳感器。采集到的各類數(shù)據(jù)的單位如下:PM2.5(ug/m^3),PM10(ug/m^3),溫度(℃),濕度(RH%),CO2(ppm),TVOC(mg/m^3),HCHO(mg/m^3)。
圖2 硬件采集模塊設(shè)備部署圖
傳感器采集信息后,按照一定頻率上次信息至服務(wù)器,其中上傳至服務(wù)器的信息格式是:發(fā)布者ID,傳感器ID,監(jiān)測內(nèi)容,監(jiān)測數(shù)值和發(fā)布時間。同時,硬件采集模塊也能夠解析服務(wù)器發(fā)來的采集信息指令,并進行相應(yīng)的采集上傳操作。
3.1 發(fā)布訂閱服務(wù)端系統(tǒng)架構(gòu)
服務(wù)器系統(tǒng)分為客戶端SDK模塊和發(fā)布訂閱服務(wù)模塊。服務(wù)器端接收處理的消息主要分為兩類:上行消息有客戶端向服務(wù)器訂閱、發(fā)布、查詢等;下行消息有服務(wù)器向客戶端發(fā)送消息、通知提醒等。整個系統(tǒng)具備響應(yīng)時間短、資源占用低、運行周期短等特點。
3.1.1 客戶端SDK模塊
客戶端SDK模塊向移動端提供調(diào)用接口,封裝通信過程,使用socket保持與客戶端的長連接,該模塊包括如下三個層次,其功能都分別如下所示:
1)應(yīng)用編程接口層,為客戶端通信、登錄、注冊、訂閱服務(wù)提供調(diào)用的API接口;
2)加解密/認證層,該層封裝了登錄注冊密碼加密、解密,消息推送前的數(shù)據(jù)加密和接收后數(shù)據(jù)解密的功能,消息認證功能等;
3)通信接口層,該層封裝了客戶端socket連接,可通過該鏈接進行消息推送,訂閱指令監(jiān)聽等操作。
3.1.2 服務(wù)端模塊結(jié)構(gòu)
發(fā)布訂閱服務(wù)模塊的結(jié)構(gòu)圖如3所示,該模塊主要進行消息的發(fā)布訂閱功能,包括通信接口層、管理域、數(shù)據(jù)流轉(zhuǎn)域和數(shù)據(jù)存儲這四大層級。通信接口層也封裝了socket連接、推送、監(jiān)聽消息等操作。管理域是負責系統(tǒng)的用戶信息、用戶空間信息、用戶秘鑰信息、服務(wù)規(guī)則匹配信息等的增刪查改功能。其中的用戶管理是管理用戶的身份信息和用戶注冊、用戶秘鑰生成發(fā)放、用戶服務(wù)空間申請,規(guī)則匹配管理則是消息分發(fā)的匹配規(guī)則。
數(shù)據(jù)流轉(zhuǎn)域是系統(tǒng)消息的處理流程,其中的加解密認證層具有數(shù)據(jù)的加解密和數(shù)據(jù)認證功能,接入控制層是接入用戶的權(quán)限管理,路由服務(wù)層管理消息接收和分發(fā),消息隊列層用來緩存離線用戶的訂閱消息。
數(shù)據(jù)存儲層位于底層,存儲客戶的基本信息,訂閱發(fā)布信息及客戶的詳細訂閱歷史記錄等。
3.1.3 服務(wù)端工作流程
小節(jié)3.1.2介紹了服務(wù)端的系統(tǒng)功能模塊,本節(jié)主要介紹空氣質(zhì)量監(jiān)測系統(tǒng)的服務(wù)端主要功能模塊的工作流程,包括接入鑒權(quán)管理的流程,消息訂閱和發(fā)布的工作流程,分別如圖4所示。
圖3 發(fā)布訂閱服務(wù)模塊結(jié)構(gòu)
圖4 接入鑒權(quán)管理流程圖
圖4 所示為接入鑒權(quán)管理的系統(tǒng)流程圖,在客戶端發(fā)起接入請求時,調(diào)用系統(tǒng)封裝的客戶端接入相關(guān)API,通過把接入請求的關(guān)鍵信息加密,然后通過調(diào)用通信接口層發(fā)送給服務(wù)器,服務(wù)器對加密信息的處理時,會先后調(diào)用服務(wù)端的解密認證、接入管理層,對客戶請求進行處理,同時把處理信息進行數(shù)據(jù)存儲,處理結(jié)果按照原通信鏈路返回到客戶端。
消息訂閱和發(fā)布的流程圖如圖5和圖6所示。當用戶進行消息訂閱時,會首先調(diào)用客戶端訂閱的API,然后進行訂閱消息的加密,利用通信接口層將信息傳送到服務(wù)器的對應(yīng)模塊,進行消息認證和解密,然后由路由管理層進行業(yè)務(wù)操作,同時進行數(shù)據(jù)存儲,最后將處理消息按照數(shù)據(jù)流鏈路返回到移動端,移動端接收到處理結(jié)果進行展示。當用戶進行消息發(fā)布時,首先會通過調(diào)用客戶端API將發(fā)布的消息封裝,然后加密封裝后的統(tǒng)一格式消息,調(diào)用通信接口層將信息傳輸?shù)椒?wù)端,服務(wù)端接收到消息首先進行認證和解密,然后由路由管理層進行相應(yīng)的存儲操作,以及消息放入規(guī)定的消息隊列,若訂閱用戶在線,則立即進行消息的發(fā)布,若訂閱用戶不在線,則放入消息隊列,待用戶上線立即推送歷史數(shù)據(jù)。
圖5 消息訂閱流程圖
圖6 消息發(fā)布流程圖
3.2 移動端結(jié)構(gòu)設(shè)計
移動客戶端按功能主要分為兩大模塊,分別為用戶信息管理模塊和空氣質(zhì)量信息訂閱展示模塊。用戶信息管理模塊主要包括用戶的注冊、登錄以及用戶信息的修改,空氣質(zhì)量信息訂閱展示模塊則分為兩大信息流和兩大功能,信息流一是室內(nèi)空氣質(zhì)量,信息流二是室外空氣質(zhì)量包括天氣信息和若干氣體指標,可向用戶展示實時監(jiān)測到的室內(nèi)傳感器數(shù)據(jù)和城市天氣、室外氣體信息數(shù)據(jù),功能一是室內(nèi)、室外傳感器節(jié)點的訂閱,功能二是室內(nèi)外空氣質(zhì)量的消息接收展示。移動端是基于Cordova跨平臺開發(fā),能夠在Android和ISO平臺等上運行。
移動端頁面設(shè)計界面設(shè)計如下所示,主要包括主頁面、室外信息詳情頁、室內(nèi)信息詳情頁和我的賬戶頁面。其中,室外信息詳情頁包括兩個子頁面,包括已訂閱城市列表展示頁、室外傳感器訂閱頁,室內(nèi)信息詳情頁包括兩個子頁面,包括已訂閱傳感器信息列表展示頁、室內(nèi)傳感器訂閱頁。
圖7 移動客戶端總體架構(gòu)圖
主頁面如圖8所示,頁面上半部分是室外概要展示(圖中為用戶訂閱城市北京),包括北京的天氣狀況陰、晴等,溫度、城市的空氣質(zhì)量、城市的AQI指數(shù)。中半部分包括室內(nèi)傳感器信息概要展示,與室外、城市的概要展示項目相同。
圖8 移動端的主頁面實現(xiàn)圖
頁面的下半部分包括方塊圖形生活指數(shù)和室內(nèi)外條狀氣體指數(shù)。生活指數(shù)信息是訂閱城市的生活指數(shù),包括防曬指數(shù)、穿衣指數(shù)、運動適宜與否指數(shù)、洗車指數(shù)、晾曬指數(shù)和限行指數(shù)。
緊接著生活指數(shù)區(qū)域的是室內(nèi)外條形指數(shù)包括室內(nèi)的六種氣體PM10、PM2.5、03、VOC、NO2、CO,條形圖上左端標明了氣體種類,右端標明了氣體的指數(shù),而條形圖的顏色標明了污染的程度。分為4個等級,綠色、橙色、灰色、紅色,表示氣體質(zhì)量優(yōu),污染輕,橙色表示該氣體污染程度為良,灰色表示污染程度為輕度污染,紅色表示重度污染。
頁面最下方有4個按鈕,分別為首頁、室外、室內(nèi)和我的賬戶。
室外頁面如圖9所示,以北京為例,頁面頂部的城市名稱右部也即右上角為鏈接,鏈接到已訂閱城市的列表,城市名稱的正下方是代表訂閱城市的數(shù)目。圖左和圖右拼接起來為室外信息展示頁。圖左包括城市的天氣信息,當天信息和四天的預(yù)測天氣信息、溫度和天氣,圖右偏下為天氣詳情,包括濕度、風(fēng)力和紫外線指數(shù)。頁面的最下方是該城市的條形指數(shù)圖,室外條形指數(shù)包括室外的六種氣體PM10、PM2.5、03、VOC、NO2、CO,條形圖上左端標明了氣體種類,右端標明了氣體的指數(shù),而條形圖的顏色標明了污染的程度。
圖9 移動端的室外信息展示頁面
室內(nèi)空氣質(zhì)量檢測頁面,該頁面展示訂閱的傳感器信息,包括傳感器的室內(nèi)空氣質(zhì)量,空氣AQI指數(shù),室內(nèi)的溫度。支持訂閱指定的傳感器,能夠獲取該傳感器采集的室內(nèi)的PM2.5,PM10,甲醛等多種氣體的實時濃度和氣體污染程度的彩條展示,直觀明了地展示污染氣體的濃度水平。室內(nèi)溫度和AQI歷史變化狀況以曲線形式展示,以便用戶直觀了解變化趨勢。
本系統(tǒng)搭建完成后,在北京市的郵電大學(xué)若干點對部分功能進行了測試,實驗表明,該系統(tǒng)可連續(xù)運轉(zhuǎn)2400小時無故障,傳感器采集發(fā)送頻率可達到3 s/次,移動端的信息更新頻率可達到15 ms/次,能夠滿足大規(guī)模系統(tǒng)的應(yīng)用。發(fā)布訂閱服務(wù)器的并發(fā)量測試性能如圖10所示。
如圖10所示,仿真測試的環(huán)境是ubuntu系統(tǒng),Intel(R) Core i5-2557 M 1.70 GHz CPU,8 GB RAM,在其中進行仿真測試得到的登錄并發(fā)量到15000次,注冊的并發(fā)量達到2000,同時進行發(fā)布、訂閱的系統(tǒng)操作更加復(fù)雜,所耗資源更多,并發(fā)量較少,分別為100、200次。訂閱發(fā)布系統(tǒng)的吞吐量在一定范圍內(nèi)隨發(fā)布數(shù)目及訂閱數(shù)目的增大而增大,吞吐量峰值可達到百萬字節(jié)每秒。
圖10 發(fā)布訂閱服務(wù)器的并發(fā)量測試圖
本文設(shè)計實現(xiàn)了基于發(fā)布訂閱的空氣質(zhì)量監(jiān)測系統(tǒng),可以對室內(nèi)、街道等任意地點的空氣質(zhì)量進行實時監(jiān)測,并通過移動客戶端實現(xiàn)信息交互和數(shù)據(jù)共享。空氣質(zhì)量監(jiān)測系統(tǒng)包括底層傳感器節(jié)點、服務(wù)器端和移動客戶端三大部分,其中傳感器節(jié)點具有便攜性強、功耗低、成本低、性能穩(wěn)定的特點,基于訂閱發(fā)布的服務(wù)端系統(tǒng)能夠支持大規(guī)模并發(fā)量,可達到百萬級吞吐,同時支持萬級以上的移動端信息訂閱和空氣質(zhì)量的實時展示,移動端也具有界面友好、并發(fā)量大的特點。綜上所述,整個空氣質(zhì)量監(jiān)測系統(tǒng)具有非常大的使用價值和推廣價值。
[1] 李德平, 程興宏, 于永濤等. 北京地區(qū)三級以上污染日的氣象影響因子初步分析[J]. 氣象與環(huán)境學(xué)報, 2010, 26(3): 7-13.
[2] 龔發(fā)根, 汪煒, 秦拯. 基于ZigBee無線傳感器網(wǎng)絡(luò)的工業(yè)廢氣監(jiān)控系統(tǒng)[J]. 傳感器與微系統(tǒng), 2011, 30(1): 86-89.
[3] 吳迪, 皇潤風(fēng), 柯燕燕等. 基于無線傳感網(wǎng)絡(luò)的空氣污染實時監(jiān)測系統(tǒng)[J]. 計算機測量與控制, 2013, 21(7).
[4] 何道清. 傳感器與傳感器技術(shù)[M]. 北京: 科學(xué)出版社, 2003, 377-396.
[5] 王雪文, 張志勇. 傳感器原理及應(yīng)用[M]. 北京: 化學(xué)工業(yè)出版社, 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
國家自然科學(xué)基金項目(61502050);廣東省“揚帆計劃”引進創(chuàng)新創(chuàng)業(yè)團隊項目
凌杰(1992-),女,研究生,研究方向:物聯(lián)網(wǎng)搜索下的排序。
吳帆,女,博士,教授,研究方向:物聯(lián)網(wǎng)與移動終端。
本文著錄格式:凌杰,范文浩,高錦春,等. 基于訂閱發(fā)布的空氣質(zhì)量監(jiān)測系統(tǒng)的設(shè)計實現(xiàn)[J]. 軟件,2016,37(12):01-06