王保巖 蔣 奇 曹慧英
(1.山東大學控制科學與工程學院;2.山東勞動職業(yè)技術(shù)學院機制工藝系)
基于物聯(lián)感知的空氣質(zhì)量監(jiān)測系統(tǒng)①
王保巖1蔣 奇1曹慧英2
(1.山東大學控制科學與工程學院;2.山東勞動職業(yè)技術(shù)學院機制工藝系)
針對目前中小城市和城鄉(xiāng)郊區(qū)空氣質(zhì)量監(jiān)測網(wǎng)絡(luò)不健全的現(xiàn)狀,基于物聯(lián)感知技術(shù)、嵌入式技術(shù)和Android技術(shù)設(shè)計了一套空氣質(zhì)量實時監(jiān)測系統(tǒng)。該系統(tǒng)以32位嵌入式單片機STM32為控制核心,選用高精度傳感器模組完成對PM2.5、PM10、SO2、CO、O3及NO2等空氣質(zhì)量指標的采集;搭建遠程服務(wù)器完成數(shù)據(jù)存儲,并利用ArcGIS服務(wù)器提供地圖服務(wù),采用Android客戶端和微信公眾號完成數(shù)據(jù)的顯示與管理,具有較好的可靠性、實時性和實用性。
遠程數(shù)據(jù)管理 空氣質(zhì)量實時監(jiān)測系統(tǒng) 物聯(lián)網(wǎng) 嵌入式STM32 ArcGIS Android
隨著我國工業(yè)生產(chǎn)和社會生活的高速發(fā)展,大量污染氣體和顆粒物被排放到大氣中,對人們造成了極大的危害[1]。根據(jù)2015年中國環(huán)境保護部發(fā)布的《2014中國環(huán)境狀況公報》顯示,在開展空氣質(zhì)量監(jiān)測的161個地級和地級以上城市中僅有16個城市的空氣質(zhì)量達標,超標城市占90.1%。建立完善的空氣質(zhì)量監(jiān)測體系,使人民大眾直觀全面地了解當前空氣質(zhì)量,對于指導生活生產(chǎn)具有極其重要的意義。由于區(qū)域經(jīng)濟發(fā)展不平衡,部分地區(qū)在空氣監(jiān)測方面的資金投入不足,導致監(jiān)測站存在基礎(chǔ)設(shè)施不健全、監(jiān)測儀器設(shè)備落后等問題[2,3],因此便攜式空氣質(zhì)量監(jiān)測設(shè)備在空氣應急監(jiān)測方面的作用逐漸增大。目前,常用的空氣質(zhì)量監(jiān)測儀器主要有兩種:一是利用手持式儀器進行人工監(jiān)測,通過液晶模塊顯示實時數(shù)據(jù)[4,5],該儀器存在工作量大、效率低等缺點;二是建立多個空氣質(zhì)量參數(shù)采集點,通過無線方式將數(shù)據(jù)傳輸至主機進行監(jiān)測[6],該方法極大地提高了監(jiān)測效率,但監(jiān)測網(wǎng)絡(luò)布局和覆蓋面存在缺陷,同時對地理信息系統(tǒng)(Geographic Information System,GIS)、高級數(shù)據(jù)庫、三維可視化及數(shù)據(jù)挖掘等技術(shù)的應用還有較大的提升空間[7]。鑒于此,筆者以STM32為硬件控制核心,通過搭建傳感陣列和無線通信模塊,實現(xiàn)對空氣質(zhì)量指標的實時采集、處理和上傳,并利用GIS、數(shù)據(jù)庫、Android開發(fā)及微信公眾平臺開發(fā)等技術(shù)完成數(shù)據(jù)的顯示和管理,建立完善的空氣質(zhì)量監(jiān)測網(wǎng)絡(luò)。
如圖1所示,基于物聯(lián)感知技術(shù)的空氣質(zhì)量監(jiān)測系統(tǒng)主要由嵌入式硬件、遠程服務(wù)器、Android客戶端和微信公眾號組成[8]。
圖1 系統(tǒng)總體框架
系統(tǒng)工作模式分為單機和網(wǎng)絡(luò)兩種。單機模式下,硬件系統(tǒng)通過無線通信模塊直接與Android客戶端進行數(shù)據(jù)交互,系統(tǒng)監(jiān)測到的空氣質(zhì)量數(shù)據(jù)直接在Android客戶端顯示、分析并保存。網(wǎng)絡(luò)模式下,硬件系統(tǒng)采集到的數(shù)據(jù)直接通過無線網(wǎng)絡(luò)上傳至遠程服務(wù)器,單機模式下保存在Android客戶端的數(shù)據(jù)也可以上傳至遠程服務(wù)器,Android客戶端和微信公眾號可以通過網(wǎng)絡(luò)訪問服務(wù)器并實時調(diào)取多個監(jiān)測點的空氣質(zhì)量數(shù)據(jù)。
系統(tǒng)的硬件部分采用嵌入式系統(tǒng)架構(gòu)(圖2),以32位增強型處理器STM32F103RBT6為整個系統(tǒng)的控制核心,外圍設(shè)備包括傳感器陣列、無線通信模塊及電源適配器等。傳感器陣列主要完成CO、SO2、PM2.5及PM10等空氣質(zhì)量指標數(shù)據(jù)的監(jiān)測,并由核心控制器完成相關(guān)數(shù)據(jù)的采集與初步分析。無線通信模塊完成硬件系統(tǒng)與手機端或遠程服務(wù)端的通信。電源適配器或鋰電池為整個硬件系統(tǒng)提供電力支持。
圖2 系統(tǒng)硬件的嵌入式架構(gòu)
系統(tǒng)采用Membrapor電化學氣體傳感器對CO、SO2、NO2及O3等氣體濃度進行測量,該傳感器是利用電導率的變化來探測氣體濃度變化的一種電化學傳感器[9],對污染氣體的分辨率為0.000 1‰,滿足國家大氣監(jiān)測標準的精度要求。采用基于激光散射原理的SDS011粉塵監(jiān)測傳感器監(jiān)測PM2.5和PM10的顆粒濃度[10],其顆粒物直徑分辨率為0.3μm。
無線通信選用USR-WiFi232-T模塊,有AP和STA兩種工作模式。當系統(tǒng)工作在單機模式時,WiFi模塊工作在AP模式下,此時可以通過手機的WiFi功能連接到WiFi模塊,從而實時獲取空氣質(zhì)量指標數(shù)據(jù);當系統(tǒng)工作在網(wǎng)絡(luò)模式時,WiFi模塊工作在STA模式下,可將傳感器陣列采集的空氣質(zhì)量監(jiān)測數(shù)據(jù)上傳至服務(wù)器,供Android客戶端和微信公眾號訪問。
3.1 系統(tǒng)遠程服務(wù)器
遠程服務(wù)器采用EJB組件進行數(shù)據(jù)庫的操作與管理,使用Servlet組件為遠程訪問提供接口(圖3)。Servlet提供了一個請求-響應工作模式,完成與客戶端的數(shù)據(jù)交互。
圖3 遠程服務(wù)器與客戶端的數(shù)據(jù)交互
系統(tǒng)選用MySQL作為后臺數(shù)據(jù)庫,其優(yōu)勢在于小型化、速度快和易于學習。系統(tǒng)要對所有監(jiān)測點位的信息、監(jiān)測點位上傳的空氣質(zhì)量數(shù)據(jù)和用戶信息進行管理,綜合考慮數(shù)據(jù)的查詢速度、更新效率和代碼編寫的方便性,建立用戶表、用戶登錄信息表、監(jiān)測點位表、原始數(shù)據(jù)表、均值數(shù)據(jù)表、上傳文件記錄表和用戶操作足跡表。
GIS服務(wù)為Android客戶端和微信公眾號提供地圖在線訪問功能。系統(tǒng)使用ArcGIS軟件中的ArcGIS Server發(fā)布地圖[11]。在地圖發(fā)布成功之后,使用Catalog做地圖切片,做出的切片作為離線地圖發(fā)布在服務(wù)器上供客戶端下載。
3.2 系統(tǒng)Android客戶端
3.2.1 單機模式下客戶端功能設(shè)計
單機模式下客戶端通過WiFi接收并保存硬件系統(tǒng)發(fā)送的空氣質(zhì)量監(jiān)測數(shù)據(jù),底層硬件系統(tǒng)開啟UDP Server服務(wù),Android客戶端作為UDP Client與硬件系統(tǒng)建立連接。數(shù)據(jù)格式由包頭、命令字節(jié)、數(shù)據(jù)區(qū)和校驗字節(jié)區(qū)組成。數(shù)據(jù)傳輸?shù)臅r間間隔可由用戶在命令下發(fā)頁面進行配置。
如圖4所示,客戶端采用多線程解決方案開發(fā),主線程負責管理和響應各個子線程,即子線程的啟動、掛起及停止等操作。子線程用于數(shù)據(jù)的接收、存儲及曲線繪制等,確保程序多功能的實現(xiàn)。
客戶端首先對所接收數(shù)據(jù)進行簡單的濾波分析處理,然后將數(shù)據(jù)投送到數(shù)據(jù)顯示和數(shù)據(jù)存儲線程。數(shù)據(jù)顯示線程在接收到數(shù)據(jù)后,刷新當前頁面。實時數(shù)據(jù)顯示有表盤和示波器兩種方式,如圖5所示,其中示波器頁面支持單通道和多通道數(shù)據(jù)顯示,支持縮放操作。
圖4 客戶端數(shù)據(jù)處理流程
如圖6所示,實時數(shù)據(jù)在不停的刷新過程中,數(shù)據(jù)存儲線程會對實時數(shù)據(jù)進行不間斷地分析處理,從中提取出時均、日均等數(shù)據(jù),并將數(shù)據(jù)寫入歷史文件中。歷史文件由文件頭、時標區(qū)和數(shù)據(jù)區(qū)構(gòu)成,歷史文件生成時首先生成文件頭,初始化時標區(qū),并啟動AlarmManager整點定時??蛻舳酥芷谛缘嘏cWiFi模塊交互獲取空氣質(zhì)量數(shù)據(jù),文件服務(wù)線程將接收的數(shù)據(jù)寫入數(shù)據(jù)文件的數(shù)據(jù)區(qū),并對接收到的數(shù)據(jù)做累加計數(shù)中間操作。當文件服務(wù)線程接收到AlarmManager整點消息后,依據(jù)累加計數(shù)中間操作進行時均數(shù)據(jù)處理,如果當前時間為凌晨或月末凌晨,則依據(jù)累加計數(shù)中間操作分別做日均和月均數(shù)據(jù)處理,然后將均值數(shù)據(jù)寫入數(shù)據(jù)區(qū)并將此時均值數(shù)據(jù)在文件中的位置寫入時標區(qū),最后累加計數(shù)中間操作數(shù)置零。
圖5 數(shù)據(jù)顯示界面
圖6 歷史文件生成流程
3.2.2 網(wǎng)絡(luò)模式下客戶端功能設(shè)計
網(wǎng)絡(luò)模式下遠程服務(wù)器開啟UDP Server服務(wù),硬件系統(tǒng)作為UDP Client向遠程服務(wù)器發(fā)送數(shù)據(jù)??蛻舳伺c遠程服務(wù)器采用Http Post形式交互。客戶端根據(jù)GPS信號計算需展現(xiàn)的GIS地圖區(qū)域并獲取監(jiān)測點位置信息,然后去查詢離線地圖中是否包含該區(qū)域,如有則展示離線地圖,否則從服務(wù)器獲取地圖(地圖的加載通過移植ArcGIS for Android實現(xiàn))。服務(wù)器根據(jù)監(jiān)測點位位置獲取該點位最近上傳的12組數(shù)據(jù),并將它們封裝成JSON格式,以數(shù)據(jù)流形式返回客戶端??蛻舳私邮盏巾憫獢?shù)據(jù)進行顯示操作。交互過程中在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)采用AES算法進行加密。網(wǎng)絡(luò)模式顯示效果如圖7所示。
圖7 網(wǎng)絡(luò)模式顯示效果
客戶端可將單機模式下存儲的數(shù)據(jù)采用HttpURLConnection方式上傳至服務(wù)器,遠程服務(wù)器接收保存數(shù)據(jù)文件,并啟動數(shù)據(jù)解析進程,解析文件頭、時標區(qū)數(shù)據(jù),逐行獲取空氣質(zhì)量監(jiān)測數(shù)據(jù)并將它們導入數(shù)據(jù)表。
客戶端支持用戶查看測量點周圍的全景圖。通過移植PanoramaGL包實現(xiàn)用戶與全景圖交互的旋轉(zhuǎn)、放縮等事件,所有監(jiān)測點位的全景圖都存放在遠程服務(wù)器上,客戶端從服務(wù)器下載全景圖后進行展示。
為了向用戶推送合適點位的空氣質(zhì)量監(jiān)測數(shù)據(jù),客戶端采用數(shù)據(jù)挖掘算法提取距離用戶最近的監(jiān)測點位信息。數(shù)據(jù)挖掘流程如下:
a. 利用K-Mean算法對后臺記錄的用戶所在位置的GPS信息和調(diào)取點位的位置信息進行聚類分析,一般情況下最多允許將位置數(shù)據(jù)分為3個類別,統(tǒng)計每簇數(shù)據(jù)中數(shù)據(jù)的個數(shù),選取數(shù)據(jù)個數(shù)最多的簇為最終計算結(jié)果;
b. 計算出數(shù)據(jù)簇的中心位置,然后由中心位置坐標逐漸向外延伸直到至少包含一個監(jiān)測點位;
c. 最后利用KNN最鄰近算法,以監(jiān)測點位位置坐標為訓練集數(shù)據(jù),數(shù)據(jù)簇的中心位置為測試數(shù)據(jù),得到距離數(shù)據(jù)簇中心最近的監(jiān)測點位。
客戶端會在用戶登錄時優(yōu)先推送這些點位的監(jiān)測數(shù)據(jù),推送的消息以Notification形式出現(xiàn)在用戶手機的通知欄,用戶只需點擊通知欄信息就可以跳轉(zhuǎn)到遠程數(shù)據(jù)調(diào)取頁面。
3.3 微信公眾平臺開發(fā)
為了方便用戶獲取空氣質(zhì)量數(shù)據(jù),系統(tǒng)微信公眾號提供了GIS地圖、數(shù)據(jù)查詢、使用幫助及AQI指數(shù)簡介等模塊。
微信公眾平臺提供完整的自定義菜單接口,自定義菜單的實現(xiàn)是通過向微信自定義菜單創(chuàng)建接口發(fā)送固定格式的JSON數(shù)據(jù)[12]。該公眾號創(chuàng)建菜單的JSON數(shù)據(jù)如下:
{″button″:[{″name″: ″GIS地圖″:″type″:″view″, ″url″:″****/MapServer″},
{″name″:″數(shù)據(jù)查詢″, ″key″:″KEY_SEARCH″,″type″:″click″},
{″name″:″更多″, ″sub_button″:[
{″name″:″官方APP″, ″key″:″KEY_APP″,″view″:″click″, ″url″:″***″,
{″name″:″AQI指數(shù)″, ″key″:″KEY_AQI″,″type″:″click″},
{″name″:″使用幫助″, ″key″:″KEY_HELP″,
″type″:″click″}]}]}
微信公眾平臺的Web頁面設(shè)計采用了專門針對移動終端設(shè)備瀏覽器的jQuery Mobile腳本框架[13],界面顯示效果如圖8所示。用戶在點擊GIS地圖按鈕后,公眾號會獲取用戶所在地的位置信息并加載地圖網(wǎng)頁,地圖頁面通過引入ArcGIS for JavaScript的JS文件實現(xiàn)。地圖加載前首先根據(jù)微信公眾平臺提供的地理位置接口獲取用戶所處的地理位置信息,然后根據(jù)地理位置信息獲取地圖初始化顯示的區(qū)域和該區(qū)域內(nèi)所有的監(jiān)測點位坐標。地圖加載完成后在地圖上標注監(jiān)測點位圖標,這些圖標可以響應用戶的點擊操作并調(diào)取該監(jiān)測點的空氣質(zhì)量數(shù)據(jù)。數(shù)據(jù)查詢模塊默認獲取的是距離用戶所在位置最近的監(jiān)測點位的數(shù)據(jù),同時系統(tǒng)支持用戶通過回復地名的方式調(diào)取相應地區(qū)的空氣質(zhì)量數(shù)據(jù)。使用幫助、AQI指數(shù)簡介等模塊提供了公眾號的使用說明和常見的我國對AQI指數(shù)說明的介紹。
圖8 微信公眾號界面
筆者設(shè)計的空氣質(zhì)量監(jiān)測系統(tǒng)包括硬件系統(tǒng)和軟件系統(tǒng)兩部分,硬件系統(tǒng)完成空氣質(zhì)量數(shù)據(jù)的采集與傳輸,軟件系統(tǒng)完成空氣質(zhì)量數(shù)據(jù)的管理、分析及顯示等功能。設(shè)計完成后進行的集成測試表明:硬件系統(tǒng)運行穩(wěn)定,客戶端和微信公眾號的GIS地圖加載正常,能實時展示各個監(jiān)測點的空氣質(zhì)量信息,能夠讀取歷史信息。該系統(tǒng)的成本較低,具有一定的實際應用價值。
[1] 劉碩,齊詠生,王林,等.電站鍋爐煤耗與NOx排放混合建模與優(yōu)化[J].石油化工自動化,2016,52(1):30~34.
[2] 劉嬋芳.我國環(huán)境空氣監(jiān)測評價現(xiàn)狀分析與改善建議[J].科技創(chuàng)新與應用,2012,(20):106~107.
[3] 劉蕊,張明順.歐盟空氣質(zhì)量監(jiān)測現(xiàn)狀及加強我國空氣質(zhì)量監(jiān)測體系建設(shè)的建議[J].環(huán)境監(jiān)測管理與技術(shù),2015,27(2):7~10.
[4] 王杰.一種基于PIC單片機的手持式空氣質(zhì)量監(jiān)測儀[J].新技術(shù)新工藝,2015,(5):59~61.
[5] 嚴奉軒,吳霆,趙加鵬,等.基于PIC單片機的手持式空氣質(zhì)量監(jiān)測儀[J].微型機與應用,2013,32(22):29~31.
[6] 盧超.分布式無線空氣質(zhì)量監(jiān)測系統(tǒng)[J].自動化儀表,2014,35(4):57~60.
[7] 鐘流舉,鄭君瑜,雷國強,等.空氣質(zhì)量監(jiān)測網(wǎng)絡(luò)發(fā)展現(xiàn)狀與趨勢分析[J].中國環(huán)境監(jiān)測,2007,23(2):113~118.
[8] 閆濤.基于物聯(lián)網(wǎng)的空氣質(zhì)量監(jiān)測系統(tǒng)設(shè)計與應用技術(shù)研究[D].濟南:山東大學,2016.
[9] 張麗英,莊乾章,聶春艷.二氧化硫氣體在線檢測過程中傳感器輸出信號穩(wěn)定性能的分析[J].傳感器世界,2002,8(5):13~16.
[10] 陳釗.基于激光散射原理的礦用煙霧傳感器檢定裝置[J].光電工程,2015,42(7):67~71.
[11] 池建.精通ArcGIS地理信息系統(tǒng)[M].北京:清華大學出版社,2010.
[12] 劉宏艷.基于JavaEE的微信營銷管理系統(tǒng)的研究與實現(xiàn)[D].北京:華北電力大學,2015.
[13] 徐尤華,熊傳玉.JQuery Mobile1.2移動Web開發(fā)方法研究[J].信息技術(shù),2013,(8):85~88.
AirQualityMonitoringSystemBasedonIOTPerception
WANG Bao-yan1, JIANG Qi1, CAO Hui-ying2
(1.CollegeofControlScienceandEngineering,ShandongUniversity;2.DepartmentofMachineryTechnology,ShandongLaborVocationalandTechnicalCollege)
Considering incomplete air quality monitoring network in small and middle-sized cities and suburbs and basing on IOT perception, embedded and Android technologies, a real-time air quality monitoring system was designed, which has an embedded STM32 SCM taken as the control core, selects high precision sensor to collect the data of PM2.5, PM10 and SO2, CO, O3and NO2and then has the data stored in a remote server established and the ArcGIS server adopted to provide map service as well as both Android client and WeChat official accounts employed to display and manage these data. The air quality monitoring system designed has good reliability, real time performance and practicability.
remote data management,real-time air quality monitoring system, IOT, embedded STM32, ArcGIS, Android
國家自然科學基金項目(61473175);山東省重點研發(fā)計劃項目(2016GGX104015)。
王保巖(1992-),碩士研究生,從事工業(yè)自動化技術(shù)的研究。
聯(lián)系人蔣奇(1973-),教授,從事檢測技術(shù)與自動化裝置、新型傳感和光纖傳感器的研究,jiangqisd@126.com。
TH865,X831
A
1000-3932(2017)06-0581-05
2016-07-22,
2017-03-20)