


摘 ?要: 設計了一種基于STM32F103C8T6單片機的室內有害氣體云端監測系統。硬件部分包括環境參數感知單元、報警與控制單元、無線數據傳輸單元;軟件部分包括云服務器設計,數據庫交互,監測界面設計。硬件部分采用ESP8266的透傳模式進行wifi傳輸,并使用Json打包技術保證數據的準確性和完整性。云服務器端使用jsonToBean對json包進行解析,并使用Springboot和mybatis框架對接收數據進行控制和處理,前端采用http協議和thymeleaf模板實時展示數據庫存儲的數據。
關鍵詞: 有害氣體檢測;無線數據傳輸;云服務器;數據庫
中圖分類號: TP311 ? ?文獻標識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2019.12.035
本文著錄格式:呂斌,孫玉國. 室內有害氣體云端監測系統設計[J]. 軟件,2019,40(12):158162
Design of Cloud Monitoring System for Indoor Hazardous Gases
LV Bin, SUN Yu-guo*
(School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 200093)
【Abstract】: A cloud monitoring system for indoor hazardous gases based on STM32F103C8T6 microcontroller is designed. The hardware part includes the environmental parameter perception unit, the alarm and control unit, the wireless data transmission unit, and the software part includes the cloud server design, the database interaction, and the monitoring interface design. The hardware portion uses ESP8266's transmission mode for wifi transmission and uses Json packaging technology to ensure the accuracy and completeness of the data. The cloud server ?uses jsonToBean to parse the json package, controling and processing the receiving data using the Springboot and mybatis frameworks, with the front end using http protocols and thymeleaf templates to present the data stored in the database in real time.
【Key words】: Harmful gas detection; Wireless data transmission; Cloud servers; Database
0 ?引言
隨著人們生活水平日漸提高,室內裝飾材料及家具的污染是目前造成室內空氣污染的主要方面,主要包括甲醛、苯、甲苯、乙醇、氯仿等有機蒸 ? ? 氣[1-4]。同時,室內烹飪與吸煙的燃燒產物具有致癌性。因此,如何可靠、及時、安全地監測出有毒有害氣體,并及時為監測人員提供決策依據顯得尤為關鍵。
為了解決上述問題,提出了有害氣體云端監測系統的設想,該系統是將傳感器、無線通信技術、計算機軟件編程等技術融為一體,以科學的方法監測有害氣體濃度值變化。云平臺可以保證24小時對應用服務的運維監控,公共外網可以實現隨時隨地
對服務器端進行http請求,并查詢數據庫。云平臺具有多地域、全方位、立體式、智能化的IT運維監控的特點[5]。本文借助云平臺搭建了一套全方位發揮作用的高效、準確、實時的有害氣體云端監測 ? 系統。
1 ?整體設計框圖
有害氣體濃度檢測報警系統框圖如圖1有害氣體監測系統所示:系統由一個負責與PC機通信的主機節點和多個采集數據節點模塊組成檢測網絡,每個數據采集節點通過MQ系列的氣體傳感器采集甲醛氣體、CO等氣體濃度數據。整個監測系統主要由監測終端模塊、WiFi模塊、數據處理單元、主機
服務器和遠程云服務器構成。
數據處理單元接收各采集節點傳輸來的數據,接收到數據之后,微處理器MCU對有效數據進行處理,并送至PC服務器和云服務器。在瀏覽器中輸入網址即可。
將室內環境參數實時顯示給用戶。同時,當室內的有害氣體濃度高于設定的安全值時,數據處理單元會對數據進行分析并觸發報警系統,以便降低有害氣體帶來的危害。
圖1 ?有害氣體監測系統
Fig.1 ?Hazardous Gas Monitoring System
系統軟件部分基于javaSocket編程,結合springBoot框架,在云端部署了一套java代碼,可以隨時隨地通過url訪問檢測到的氣體濃度,服務器監測端如圖2所示。
圖2 ?服務器監測端
Fig.2 ?Server Monitoring End
2 ?系統硬件設計
硬件設計部分由5部分組成,分別為環境參數感知單元、人機交互單元、無線數據傳輸單元、報警與控制單元和數據處理單元,如圖3系統硬件設計示意圖所示。
本系統檢測的氣體分別為一氧化碳、甲醛、甲烷、油煙和空氣質量傳感器。傳感器選擇MQ系列的半導體氣體傳感器,因為其反應速度快,結構簡單、檢測靈敏度高的特點[6],能夠保證參數獲取的精準性和穩定性。 室內有害氣體經由傳感器感知的電壓值,傳遞給數據處理單元的MCU接收處理,進行相應的AD轉換。然后,在MCU內部經修正、分析、判斷后,按照空氣質量的標準判定出空氣質量的評價等級,若數據超過一定指標,則立即發出聲光報警同時,MCU通過wifi模塊,將數據傳送給java服務器端主程序。
2.1 ?環境參數感知單元
環境感知單元由氣體傳感器組成,分析比較了以下四類傳感器的優缺點后,選擇了半導體氣體傳感器半導體氣體傳感器具有結構簡單、檢測靈敏、反應時間短以及成本低廉等優點[7]。
本系統選擇了MQ系列的半導體傳感器,分別為一氧化碳(MQ7)、甲醛(MQ135)、甲烷(MQ4)、油煙(MQ-5)。
2.2 ?報警與控制單元單元
報警與控制單元的氣體濃度報警閾值參考國家室內統計監管標準GB50325設計完成[8],具體指標如表1室內空氣質量標準一覽表所示。
表1 ?室內空氣質量標準一覽表
Tab.1 ?List of indoor air quality standards
氣體名稱 標準值/(mg/m3) 氣體名稱 標準值/(mg/m3)
甲醛 0.08 氨 0.20
PM10 0.15 苯 0.11
二氧化硫 0.50 一氧化碳 10
二氧化氮 0.15 二氧化碳 1260
蜂鳴器驅動電路由蜂鳴器、電阻和三級晶體管構成。使用STM32的定時模式設置參數,產生翻轉電平,使蜂鳴器的周期為400 us。其后,通過晶體管組成的放大電路讓蜂鳴器工作。收集到的氣體濃度信號由數字處理單元的A/D轉換為數字信號,由處理單元分析處理,判斷相應氣體濃度是否符合正常范圍。若超出表2所述范圍,輸出電壓驅動蜂鳴器警報。
2.3 ?無線數據傳輸單元
無線通信技術選用wifi傳輸技術,成本低、覆蓋范圍廣、速度快[9]。無線數據傳輸單元選擇ESP8266模塊。
在ESP8266模塊的串口透傳功能下有3種工作模式[10],如表2所示。
表2 ?ESP8266透傳的3種工作模式
Tab.2 ?Three modes of operation for
ESP8266 transmission
模式 充當角色 作用
STA模式 路由器 通過互聯網對設備遠程控制
AP模式 熱點 直接與模塊通信
STA+AP模式 共存 共存
本系統使用STA+AP模式,進行數據透傳。數據處理單元將處理好的數據進行json格式打包,發送給java服務器。
3 ?系統軟件設計
服務器端采用socket網絡編程,接收Esp8266發送的json包,實現對遠程數據進行解析、處理和實時查詢、歷史數據查詢等功能。
相較于傳統的C/S模式,本文采用了B/S模式。云服務端采用springboot微服務框架和mybatis實現了一個統一的http數據請求接口服務。在此基礎上,采用了thymeleaf前端開發框架對數據請求頁面進行布局和渲染。軟件設計系統整體框圖如圖3所示。
圖3 ?系統軟件設計框圖
Fig.3 ?System Software Design Frame
3.1 ?云服務器端設計
本文STM32單片機與服務器之間的交互通訊采用java socket網絡編程來實現。如果把單片機作為客戶端,網絡上的兩端通過一個單向的連接,即客戶端向服務器實現數據的傳遞,這條鏈路的java服務器端稱為Socket[11]。在Java環境下,套接字Socket主要是指基于TCP/IP協議的網絡編程,一個Socket由一個IP地址和一個端口號唯一確定。依據TCP協議,在瀏覽器-服務器模式架構的通訊過程中,服務器的Socket動作如下:
(1)服務器端,自行設置一個端口來實例化一個 ServerSocket對象,這個端口號一般選擇8080以上的閑置端口號。端口設置完畢后,服務器就開始時刻監聽這個端口從wifi模塊發送來的連接請求。
(2)調用ServerSocket的accept方法,開始監聽從端口上發來的連接請求[12]。
(3)利用accept方法返回的客戶端的Socket對象,進行讀寫IO的操作。
通訊完成后,關閉打開的流和Socket對象。Socket通信模型如圖4所示。
圖4 ?socket通信模型圖
Fig.4 ?Socket communication model diagram
服務器程序使用阿里巴巴開發的開源fastjson jar包對json格式的數據進行實體類轉換,如圖5所示并存入數據庫。
圖5 ?json數據存儲展示圖
參考文獻
[1]Cincinelli A, Martellini T. Indoor Air Quality and Health[J].
Atmospheric Environment, 2017, 14(11): 4535-4564.
[2]Afshari A, Anderson H R, Cohen A, et al. WHO guidelines for indoor air quality: dampness and mould[M]. World Health
Organization, 2009.
[3]藺雪芹, 王岱. 中國城市空氣質量時空演化特征及社會經濟驅動[J]. 地理學報, 2016, 71(08): 1357-1371.
[4]吳娜. 甲醛氣敏元件研制及靈敏度特性研究[D].大連理工大學, 2006.
[5]何東, 寧文慧. 基于云服務器和Zig Bee無線傳感網絡的茶園遠程監控系統的設計[J]. 安徽農業科學, 2018, 46(10): 189-190.
[6]馬戎, 周王民, 陳明. 氣體傳感器的研究及發展方向[J]. 航空計測技術, 2004, 04: 1-4.
[7]閆軍. 工作區有害氣體檢測的五種常用傳感器[J]. 儀器儀表與分析監測. 2001, (2): 6-7.
[8]徐驁博. 室內空氣質量檢測系統的研究[D]. 黑龍江大學, 2016.
[9]夏少波, 許娥. 無線傳感器網絡WSN探究[J]. 通信技術, 2010, 08: 0018-0020.
[10]程傳明, 王平, 施文灶, 等. 有害氣體監測中無線傳感網絡節點的設計與實現[J]. 電子測量技術, 2009, 01: 154-157.
[11]CameronWalker, Mlehae1OSullivan, TimothyThomPson, A mixed-integer approach to Core-Edge design of Storagearea networks[J]. Computers & Operations Research 34(2007): 2976-3000.
[12]方騰飛, 魏鵬, 程曉明. Java 并發編程的藝術[M] . 北京: 機械工業出版社, 2015.
[13]陳瑞. 基于springBoot高并發Java Web開發模式[J]. 軟件開發與應用, 2019, 4(009): 27-30.
[14]楊慧. 基于Spring MVC與iBATIS框架的企業工單管理系統的設計與實現[D]. 北京: 中國科學院大學(工程管理與信息技術學院), 2015.