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

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

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

圖3 遠程服務器與客戶端的數據交互
系統選用MySQL作為后臺數據庫,其優勢在于小型化、速度快和易于學習。系統要對所有監測點位的信息、監測點位上傳的空氣質量數據和用戶信息進行管理,綜合考慮數據的查詢速度、更新效率和代碼編寫的方便性,建立用戶表、用戶登錄信息表、監測點位表、原始數據表、均值數據表、上傳文件記錄表和用戶操作足跡表。
GIS服務為Android客戶端和微信公眾號提供地圖在線訪問功能。系統使用ArcGIS軟件中的ArcGIS Server發布地圖[11]。在地圖發布成功之后,使用Catalog做地圖切片,做出的切片作為離線地圖發布在服務器上供客戶端下載。
3.2 系統Android客戶端
3.2.1 單機模式下客戶端功能設計
單機模式下客戶端通過WiFi接收并保存硬件系統發送的空氣質量監測數據,底層硬件系統開啟UDP Server服務,Android客戶端作為UDP Client與硬件系統建立連接。數據格式由包頭、命令字節、數據區和校驗字節區組成。數據傳輸的時間間隔可由用戶在命令下發頁面進行配置。
如圖4所示,客戶端采用多線程解決方案開發,主線程負責管理和響應各個子線程,即子線程的啟動、掛起及停止等操作。子線程用于數據的接收、存儲及曲線繪制等,確保程序多功能的實現。
客戶端首先對所接收數據進行簡單的濾波分析處理,然后將數據投送到數據顯示和數據存儲線程。數據顯示線程在接收到數據后,刷新當前頁面。實時數據顯示有表盤和示波器兩種方式,如圖5所示,其中示波器頁面支持單通道和多通道數據顯示,支持縮放操作。

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

圖5 數據顯示界面

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

圖7 網絡模式顯示效果
客戶端可將單機模式下存儲的數據采用HttpURLConnection方式上傳至服務器,遠程服務器接收保存數據文件,并啟動數據解析進程,解析文件頭、時標區數據,逐行獲取空氣質量監測數據并將它們導入數據表。
客戶端支持用戶查看測量點周圍的全景圖。通過移植PanoramaGL包實現用戶與全景圖交互的旋轉、放縮等事件,所有監測點位的全景圖都存放在遠程服務器上,客戶端從服務器下載全景圖后進行展示。
為了向用戶推送合適點位的空氣質量監測數據,客戶端采用數據挖掘算法提取距離用戶最近的監測點位信息。數據挖掘流程如下:
a. 利用K-Mean算法對后臺記錄的用戶所在位置的GPS信息和調取點位的位置信息進行聚類分析,一般情況下最多允許將位置數據分為3個類別,統計每簇數據中數據的個數,選取數據個數最多的簇為最終計算結果;
b. 計算出數據簇的中心位置,然后由中心位置坐標逐漸向外延伸直到至少包含一個監測點位;
c. 最后利用KNN最鄰近算法,以監測點位位置坐標為訓練集數據,數據簇的中心位置為測試數據,得到距離數據簇中心最近的監測點位。
客戶端會在用戶登錄時優先推送這些點位的監測數據,推送的消息以Notification形式出現在用戶手機的通知欄,用戶只需點擊通知欄信息就可以跳轉到遠程數據調取頁面。
3.3 微信公眾平臺開發
為了方便用戶獲取空氣質量數據,系統微信公眾號提供了GIS地圖、數據查詢、使用幫助及AQI指數簡介等模塊。
微信公眾平臺提供完整的自定義菜單接口,自定義菜單的實現是通過向微信自定義菜單創建接口發送固定格式的JSON數據[12]。該公眾號創建菜單的JSON數據如下:
{″button″:[{″name″: ″GIS地圖″:″type″:″view″, ″url″:″****/MapServer″},
{″name″:″數據查詢″, ″key″:″KEY_SEARCH″,″type″:″click″},
{″name″:″更多″, ″sub_button″:[
{″name″:″官方APP″, ″key″:″KEY_APP″,″view″:″click″, ″url″:″***″,
{″name″:″AQI指數″, ″key″:″KEY_AQI″,″type″:″click″},
{″name″:″使用幫助″, ″key″:″KEY_HELP″,
″type″:″click″}]}]}
微信公眾平臺的Web頁面設計采用了專門針對移動終端設備瀏覽器的jQuery Mobile腳本框架[13],界面顯示效果如圖8所示。用戶在點擊GIS地圖按鈕后,公眾號會獲取用戶所在地的位置信息并加載地圖網頁,地圖頁面通過引入ArcGIS for JavaScript的JS文件實現。地圖加載前首先根據微信公眾平臺提供的地理位置接口獲取用戶所處的地理位置信息,然后根據地理位置信息獲取地圖初始化顯示的區域和該區域內所有的監測點位坐標。地圖加載完成后在地圖上標注監測點位圖標,這些圖標可以響應用戶的點擊操作并調取該監測點的空氣質量數據。數據查詢模塊默認獲取的是距離用戶所在位置最近的監測點位的數據,同時系統支持用戶通過回復地名的方式調取相應地區的空氣質量數據。使用幫助、AQI指數簡介等模塊提供了公眾號的使用說明和常見的我國對AQI指數說明的介紹。

圖8 微信公眾號界面
筆者設計的空氣質量監測系統包括硬件系統和軟件系統兩部分,硬件系統完成空氣質量數據的采集與傳輸,軟件系統完成空氣質量數據的管理、分析及顯示等功能。設計完成后進行的集成測試表明:硬件系統運行穩定,客戶端和微信公眾號的GIS地圖加載正常,能實時展示各個監測點的空氣質量信息,能夠讀取歷史信息。該系統的成本較低,具有一定的實際應用價值。
[1] 劉碩,齊詠生,王林,等.電站鍋爐煤耗與NOx排放混合建模與優化[J].石油化工自動化,2016,52(1):30~34.
[2] 劉嬋芳.我國環境空氣監測評價現狀分析與改善建議[J].科技創新與應用,2012,(20):106~107.
[3] 劉蕊,張明順.歐盟空氣質量監測現狀及加強我國空氣質量監測體系建設的建議[J].環境監測管理與技術,2015,27(2):7~10.
[4] 王杰.一種基于PIC單片機的手持式空氣質量監測儀[J].新技術新工藝,2015,(5):59~61.
[5] 嚴奉軒,吳霆,趙加鵬,等.基于PIC單片機的手持式空氣質量監測儀[J].微型機與應用,2013,32(22):29~31.
[6] 盧超.分布式無線空氣質量監測系統[J].自動化儀表,2014,35(4):57~60.
[7] 鐘流舉,鄭君瑜,雷國強,等.空氣質量監測網絡發展現狀與趨勢分析[J].中國環境監測,2007,23(2):113~118.
[8] 閆濤.基于物聯網的空氣質量監測系統設計與應用技術研究[D].濟南:山東大學,2016.
[9] 張麗英,莊乾章,聶春艷.二氧化硫氣體在線檢測過程中傳感器輸出信號穩定性能的分析[J].傳感器世界,2002,8(5):13~16.
[10] 陳釗.基于激光散射原理的礦用煙霧傳感器檢定裝置[J].光電工程,2015,42(7):67~71.
[11] 池建.精通ArcGIS地理信息系統[M].北京:清華大學出版社,2010.
[12] 劉宏艷.基于JavaEE的微信營銷管理系統的研究與實現[D].北京:華北電力大學,2015.
[13] 徐尤華,熊傳玉.JQuery Mobile1.2移動Web開發方法研究[J].信息技術,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);山東省重點研發計劃項目(2016GGX104015)。
王保巖(1992-),碩士研究生,從事工業自動化技術的研究。
聯系人蔣奇(1973-),教授,從事檢測技術與自動化裝置、新型傳感和光纖傳感器的研究,jiangqisd@126.com。
TH865,X831
A
1000-3932(2017)06-0581-05
2016-07-22,
2017-03-20)