王保巖 蔣 奇 曹慧英
(1.山東大學(xué)控制科學(xué)與工程學(xué)院;2.山東勞動職業(yè)技術(shù)學(xué)院機(jī)制工藝系)
基于物聯(lián)感知的空氣質(zhì)量監(jiān)測系統(tǒng)①
王保巖1蔣 奇1曹慧英2
(1.山東大學(xué)控制科學(xué)與工程學(xué)院;2.山東勞動職業(yè)技術(shù)學(xué)院機(jī)制工藝系)
針對目前中小城市和城鄉(xiāng)郊區(qū)空氣質(zhì)量監(jiān)測網(wǎng)絡(luò)不健全的現(xiàn)狀,基于物聯(lián)感知技術(shù)、嵌入式技術(shù)和Android技術(shù)設(shè)計(jì)了一套空氣質(zhì)量實(shí)時監(jiān)測系統(tǒng)。該系統(tǒng)以32位嵌入式單片機(jī)STM32為控制核心,選用高精度傳感器模組完成對PM2.5、PM10、SO2、CO、O3及NO2等空氣質(zhì)量指標(biāo)的采集;搭建遠(yuǎn)程服務(wù)器完成數(shù)據(jù)存儲,并利用ArcGIS服務(wù)器提供地圖服務(wù),采用Android客戶端和微信公眾號完成數(shù)據(jù)的顯示與管理,具有較好的可靠性、實(shí)時性和實(shí)用性。
遠(yuǎn)程數(shù)據(jù)管理 空氣質(zhì)量實(shí)時監(jiān)測系統(tǒng) 物聯(lián)網(wǎng) 嵌入式STM32 ArcGIS Android
隨著我國工業(yè)生產(chǎn)和社會生活的高速發(fā)展,大量污染氣體和顆粒物被排放到大氣中,對人們造成了極大的危害[1]。根據(jù)2015年中國環(huán)境保護(hù)部發(fā)布的《2014中國環(huán)境狀況公報(bào)》顯示,在開展空氣質(zhì)量監(jiān)測的161個地級和地級以上城市中僅有16個城市的空氣質(zhì)量達(dá)標(biāo),超標(biāo)城市占90.1%。建立完善的空氣質(zhì)量監(jiān)測體系,使人民大眾直觀全面地了解當(dāng)前空氣質(zhì)量,對于指導(dǎo)生活生產(chǎn)具有極其重要的意義。由于區(qū)域經(jīng)濟(jì)發(fā)展不平衡,部分地區(qū)在空氣監(jiān)測方面的資金投入不足,導(dǎo)致監(jiān)測站存在基礎(chǔ)設(shè)施不健全、監(jiān)測儀器設(shè)備落后等問題[2,3],因此便攜式空氣質(zhì)量監(jiān)測設(shè)備在空氣應(yīng)急監(jiān)測方面的作用逐漸增大。目前,常用的空氣質(zhì)量監(jiān)測儀器主要有兩種:一是利用手持式儀器進(jìn)行人工監(jiān)測,通過液晶模塊顯示實(shí)時數(shù)據(jù)[4,5],該儀器存在工作量大、效率低等缺點(diǎn);二是建立多個空氣質(zhì)量參數(shù)采集點(diǎn),通過無線方式將數(shù)據(jù)傳輸至主機(jī)進(jìn)行監(jiān)測[6],該方法極大地提高了監(jiān)測效率,但監(jiān)測網(wǎng)絡(luò)布局和覆蓋面存在缺陷,同時對地理信息系統(tǒng)(Geographic Information System,GIS)、高級數(shù)據(jù)庫、三維可視化及數(shù)據(jù)挖掘等技術(shù)的應(yīng)用還有較大的提升空間[7]。鑒于此,筆者以STM32為硬件控制核心,通過搭建傳感陣列和無線通信模塊,實(shí)現(xiàn)對空氣質(zhì)量指標(biāo)的實(shí)時采集、處理和上傳,并利用GIS、數(shù)據(jù)庫、Android開發(fā)及微信公眾平臺開發(fā)等技術(shù)完成數(shù)據(jù)的顯示和管理,建立完善的空氣質(zhì)量監(jiān)測網(wǎng)絡(luò)。
如圖1所示,基于物聯(lián)感知技術(shù)的空氣質(zhì)量監(jiān)測系統(tǒng)主要由嵌入式硬件、遠(yuǎn)程服務(wù)器、Android客戶端和微信公眾號組成[8]。

圖1 系統(tǒng)總體框架
系統(tǒng)工作模式分為單機(jī)和網(wǎng)絡(luò)兩種。單機(jī)模式下,硬件系統(tǒng)通過無線通信模塊直接與Android客戶端進(jìn)行數(shù)據(jù)交互,系統(tǒng)監(jiān)測到的空氣質(zhì)量數(shù)據(jù)直接在Android客戶端顯示、分析并保存。網(wǎng)絡(luò)模式下,硬件系統(tǒng)采集到的數(shù)據(jù)直接通過無線網(wǎng)絡(luò)上傳至遠(yuǎn)程服務(wù)器,單機(jī)模式下保存在Android客戶端的數(shù)據(jù)也可以上傳至遠(yuǎn)程服務(wù)器,Android客戶端和微信公眾號可以通過網(wǎng)絡(luò)訪問服務(wù)器并實(shí)時調(diào)取多個監(jiān)測點(diǎn)的空氣質(zhì)量數(shù)據(jù)。
系統(tǒng)的硬件部分采用嵌入式系統(tǒng)架構(gòu)(圖2),以32位增強(qiáng)型處理器STM32F103RBT6為整個系統(tǒng)的控制核心,外圍設(shè)備包括傳感器陣列、無線通信模塊及電源適配器等。傳感器陣列主要完成CO、SO2、PM2.5及PM10等空氣質(zhì)量指標(biāo)數(shù)據(jù)的監(jiān)測,并由核心控制器完成相關(guān)數(shù)據(jù)的采集與初步分析。無線通信模塊完成硬件系統(tǒng)與手機(jī)端或遠(yuǎn)程服務(wù)端的通信。電源適配器或鋰電池為整個硬件系統(tǒng)提供電力支持。

圖2 系統(tǒng)硬件的嵌入式架構(gòu)
系統(tǒng)采用Membrapor電化學(xué)氣體傳感器對CO、SO2、NO2及O3等氣體濃度進(jìn)行測量,該傳感器是利用電導(dǎo)率的變化來探測氣體濃度變化的一種電化學(xué)傳感器[9],對污染氣體的分辨率為0.000 1‰,滿足國家大氣監(jiān)測標(biāo)準(zhǔn)的精度要求。采用基于激光散射原理的SDS011粉塵監(jiān)測傳感器監(jiān)測PM2.5和PM10的顆粒濃度[10],其顆粒物直徑分辨率為0.3μm。
無線通信選用USR-WiFi232-T模塊,有AP和STA兩種工作模式。當(dāng)系統(tǒng)工作在單機(jī)模式時,WiFi模塊工作在AP模式下,此時可以通過手機(jī)的WiFi功能連接到WiFi模塊,從而實(shí)時獲取空氣質(zhì)量指標(biāo)數(shù)據(jù);當(dāng)系統(tǒng)工作在網(wǎng)絡(luò)模式時,WiFi模塊工作在STA模式下,可將傳感器陣列采集的空氣質(zhì)量監(jiān)測數(shù)據(jù)上傳至服務(wù)器,供Android客戶端和微信公眾號訪問。
3.1 系統(tǒng)遠(yuǎn)程服務(wù)器
遠(yuǎn)程服務(wù)器采用EJB組件進(jìn)行數(shù)據(jù)庫的操作與管理,使用Servlet組件為遠(yuǎn)程訪問提供接口(圖3)。Servlet提供了一個請求-響應(yīng)工作模式,完成與客戶端的數(shù)據(jù)交互。

圖3 遠(yuǎn)程服務(wù)器與客戶端的數(shù)據(jù)交互
系統(tǒng)選用MySQL作為后臺數(shù)據(jù)庫,其優(yōu)勢在于小型化、速度快和易于學(xué)習(xí)。系統(tǒng)要對所有監(jiān)測點(diǎn)位的信息、監(jiān)測點(diǎn)位上傳的空氣質(zhì)量數(shù)據(jù)和用戶信息進(jìn)行管理,綜合考慮數(shù)據(jù)的查詢速度、更新效率和代碼編寫的方便性,建立用戶表、用戶登錄信息表、監(jiān)測點(diǎ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 單機(jī)模式下客戶端功能設(shè)計(jì)
單機(jī)模式下客戶端通過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ū)和校驗(yàn)字節(jié)區(qū)組成。數(shù)據(jù)傳輸?shù)臅r間間隔可由用戶在命令下發(fā)頁面進(jìn)行配置。
如圖4所示,客戶端采用多線程解決方案開發(fā),主線程負(fù)責(zé)管理和響應(yīng)各個子線程,即子線程的啟動、掛起及停止等操作。子線程用于數(shù)據(jù)的接收、存儲及曲線繪制等,確保程序多功能的實(shí)現(xiàn)。
客戶端首先對所接收數(shù)據(jù)進(jìn)行簡單的濾波分析處理,然后將數(shù)據(jù)投送到數(shù)據(jù)顯示和數(shù)據(jù)存儲線程。數(shù)據(jù)顯示線程在接收到數(shù)據(jù)后,刷新當(dāng)前頁面。實(shí)時數(shù)據(jù)顯示有表盤和示波器兩種方式,如圖5所示,其中示波器頁面支持單通道和多通道數(shù)據(jù)顯示,支持縮放操作。

圖4 客戶端數(shù)據(jù)處理流程
如圖6所示,實(shí)時數(shù)據(jù)在不停的刷新過程中,數(shù)據(jù)存儲線程會對實(shí)時數(shù)據(jù)進(jìn)行不間斷地分析處理,從中提取出時均、日均等數(shù)據(jù),并將數(shù)據(jù)寫入歷史文件中。歷史文件由文件頭、時標(biāo)區(qū)和數(shù)據(jù)區(qū)構(gòu)成,歷史文件生成時首先生成文件頭,初始化時標(biāo)區(qū),并啟動AlarmManager整點(diǎn)定時。客戶端周期性地與WiFi模塊交互獲取空氣質(zhì)量數(shù)據(jù),文件服務(wù)線程將接收的數(shù)據(jù)寫入數(shù)據(jù)文件的數(shù)據(jù)區(qū),并對接收到的數(shù)據(jù)做累加計(jì)數(shù)中間操作。當(dāng)文件服務(wù)線程接收到AlarmManager整點(diǎn)消息后,依據(jù)累加計(jì)數(shù)中間操作進(jìn)行時均數(shù)據(jù)處理,如果當(dāng)前時間為凌晨或月末凌晨,則依據(jù)累加計(jì)數(shù)中間操作分別做日均和月均數(shù)據(jù)處理,然后將均值數(shù)據(jù)寫入數(shù)據(jù)區(qū)并將此時均值數(shù)據(jù)在文件中的位置寫入時標(biāo)區(qū),最后累加計(jì)數(shù)中間操作數(shù)置零。

圖5 數(shù)據(jù)顯示界面

圖6 歷史文件生成流程
3.2.2 網(wǎng)絡(luò)模式下客戶端功能設(shè)計(jì)
網(wǎng)絡(luò)模式下遠(yuǎn)程服務(wù)器開啟UDP Server服務(wù),硬件系統(tǒng)作為UDP Client向遠(yuǎn)程服務(wù)器發(fā)送數(shù)據(jù)。客戶端與遠(yuǎn)程服務(wù)器采用Http Post形式交互。客戶端根據(jù)GPS信號計(jì)算需展現(xiàn)的GIS地圖區(qū)域并獲取監(jiān)測點(diǎn)位置信息,然后去查詢離線地圖中是否包含該區(qū)域,如有則展示離線地圖,否則從服務(wù)器獲取地圖(地圖的加載通過移植ArcGIS for Android實(shí)現(xiàn))。服務(wù)器根據(jù)監(jiān)測點(diǎn)位位置獲取該點(diǎn)位最近上傳的12組數(shù)據(jù),并將它們封裝成JSON格式,以數(shù)據(jù)流形式返回客戶端。客戶端接收到響應(yīng)數(shù)據(jù)進(jìn)行顯示操作。交互過程中在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)采用AES算法進(jìn)行加密。網(wǎng)絡(luò)模式顯示效果如圖7所示。

圖7 網(wǎng)絡(luò)模式顯示效果
客戶端可將單機(jī)模式下存儲的數(shù)據(jù)采用HttpURLConnection方式上傳至服務(wù)器,遠(yuǎn)程服務(wù)器接收保存數(shù)據(jù)文件,并啟動數(shù)據(jù)解析進(jìn)程,解析文件頭、時標(biāo)區(qū)數(shù)據(jù),逐行獲取空氣質(zhì)量監(jiān)測數(shù)據(jù)并將它們導(dǎo)入數(shù)據(jù)表。
客戶端支持用戶查看測量點(diǎn)周圍的全景圖。通過移植PanoramaGL包實(shí)現(xiàn)用戶與全景圖交互的旋轉(zhuǎn)、放縮等事件,所有監(jiān)測點(diǎn)位的全景圖都存放在遠(yuǎn)程服務(wù)器上,客戶端從服務(wù)器下載全景圖后進(jìn)行展示。
為了向用戶推送合適點(diǎn)位的空氣質(zhì)量監(jiān)測數(shù)據(jù),客戶端采用數(shù)據(jù)挖掘算法提取距離用戶最近的監(jiān)測點(diǎn)位信息。數(shù)據(jù)挖掘流程如下:
a. 利用K-Mean算法對后臺記錄的用戶所在位置的GPS信息和調(diào)取點(diǎn)位的位置信息進(jìn)行聚類分析,一般情況下最多允許將位置數(shù)據(jù)分為3個類別,統(tǒng)計(jì)每簇?cái)?shù)據(jù)中數(shù)據(jù)的個數(shù),選取數(shù)據(jù)個數(shù)最多的簇為最終計(jì)算結(jié)果;
b. 計(jì)算出數(shù)據(jù)簇的中心位置,然后由中心位置坐標(biāo)逐漸向外延伸直到至少包含一個監(jiān)測點(diǎn)位;
c. 最后利用KNN最鄰近算法,以監(jiān)測點(diǎn)位位置坐標(biāo)為訓(xùn)練集數(shù)據(jù),數(shù)據(jù)簇的中心位置為測試數(shù)據(jù),得到距離數(shù)據(jù)簇中心最近的監(jiān)測點(diǎn)位。
客戶端會在用戶登錄時優(yōu)先推送這些點(diǎn)位的監(jiān)測數(shù)據(jù),推送的消息以Notification形式出現(xiàn)在用戶手機(jī)的通知欄,用戶只需點(diǎn)擊通知欄信息就可以跳轉(zhuǎn)到遠(yuǎn)程數(shù)據(jù)調(diào)取頁面。
3.3 微信公眾平臺開發(fā)
為了方便用戶獲取空氣質(zhì)量數(shù)據(jù),系統(tǒng)微信公眾號提供了GIS地圖、數(shù)據(jù)查詢、使用幫助及AQI指數(shù)簡介等模塊。
微信公眾平臺提供完整的自定義菜單接口,自定義菜單的實(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è)計(jì)采用了專門針對移動終端設(shè)備瀏覽器的jQuery Mobile腳本框架[13],界面顯示效果如圖8所示。用戶在點(diǎn)擊GIS地圖按鈕后,公眾號會獲取用戶所在地的位置信息并加載地圖網(wǎng)頁,地圖頁面通過引入ArcGIS for JavaScript的JS文件實(shí)現(xiàn)。地圖加載前首先根據(jù)微信公眾平臺提供的地理位置接口獲取用戶所處的地理位置信息,然后根據(jù)地理位置信息獲取地圖初始化顯示的區(qū)域和該區(qū)域內(nèi)所有的監(jiān)測點(diǎn)位坐標(biāo)。地圖加載完成后在地圖上標(biāo)注監(jiān)測點(diǎn)位圖標(biāo),這些圖標(biāo)可以響應(yīng)用戶的點(diǎn)擊操作并調(diào)取該監(jiān)測點(diǎn)的空氣質(zhì)量數(shù)據(jù)。數(shù)據(jù)查詢模塊默認(rèn)獲取的是距離用戶所在位置最近的監(jiān)測點(diǎn)位的數(shù)據(jù),同時系統(tǒng)支持用戶通過回復(fù)地名的方式調(diào)取相應(yīng)地區(qū)的空氣質(zhì)量數(shù)據(jù)。使用幫助、AQI指數(shù)簡介等模塊提供了公眾號的使用說明和常見的我國對AQI指數(shù)說明的介紹。

圖8 微信公眾號界面
筆者設(shè)計(jì)的空氣質(zhì)量監(jiān)測系統(tǒng)包括硬件系統(tǒng)和軟件系統(tǒng)兩部分,硬件系統(tǒng)完成空氣質(zhì)量數(shù)據(jù)的采集與傳輸,軟件系統(tǒng)完成空氣質(zhì)量數(shù)據(jù)的管理、分析及顯示等功能。設(shè)計(jì)完成后進(jìn)行的集成測試表明:硬件系統(tǒng)運(yùn)行穩(wěn)定,客戶端和微信公眾號的GIS地圖加載正常,能實(shí)時展示各個監(jiān)測點(diǎn)的空氣質(zhì)量信息,能夠讀取歷史信息。該系統(tǒng)的成本較低,具有一定的實(shí)際應(yīng)用價(jià)值。
[1] 劉碩,齊詠生,王林,等.電站鍋爐煤耗與NOx排放混合建模與優(yōu)化[J].石油化工自動化,2016,52(1):30~34.
[2] 劉嬋芳.我國環(huán)境空氣監(jiān)測評價(jià)現(xiàn)狀分析與改善建議[J].科技創(chuàng)新與應(yīng)用,2012,(20):106~107.
[3] 劉蕊,張明順.歐盟空氣質(zhì)量監(jiān)測現(xiàn)狀及加強(qiáng)我國空氣質(zhì)量監(jiān)測體系建設(shè)的建議[J].環(huán)境監(jiān)測管理與技術(shù),2015,27(2):7~10.
[4] 王杰.一種基于PIC單片機(jī)的手持式空氣質(zhì)量監(jiān)測儀[J].新技術(shù)新工藝,2015,(5):59~61.
[5] 嚴(yán)奉軒,吳霆,趙加鵬,等.基于PIC單片機(jī)的手持式空氣質(zhì)量監(jiān)測儀[J].微型機(jī)與應(yīng)用,2013,32(22):29~31.
[6] 盧超.分布式無線空氣質(zhì)量監(jiān)測系統(tǒng)[J].自動化儀表,2014,35(4):57~60.
[7] 鐘流舉,鄭君瑜,雷國強(qiáng),等.空氣質(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è)計(jì)與應(yīng)用技術(shù)研究[D].濟(jì)南:山東大學(xué),2016.
[9] 張麗英,莊乾章,聶春艷.二氧化硫氣體在線檢測過程中傳感器輸出信號穩(wěn)定性能的分析[J].傳感器世界,2002,8(5):13~16.
[10] 陳釗.基于激光散射原理的礦用煙霧傳感器檢定裝置[J].光電工程,2015,42(7):67~71.
[11] 池建.精通ArcGIS地理信息系統(tǒng)[M].北京:清華大學(xué)出版社,2010.
[12] 劉宏艷.基于JavaEE的微信營銷管理系統(tǒng)的研究與實(shí)現(xiàn)[D].北京:華北電力大學(xué),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
國家自然科學(xué)基金項(xiàng)目(61473175);山東省重點(diǎn)研發(fā)計(jì)劃項(xiàng)目(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)