茅天陽++趙亮



摘 要:為了實現對家居環境中溫度、濕度、甲醛、PM2.5、PM10等環境參數的實時監測,文中設計并實現了以STM32開發板為核心,憑借外部搭建的傳感器網絡進行數據采集,并通過LCD屏幕顯示環境數據的家居環境監測系統,該系統測量精度高,具有較好的移植性和易用性。可通過GPRS通信模塊將檢測儀表連入云服務器,并可在遠端PC或移動電話上實時查看,從而節省了現場采集數據的時間并有效避免了有毒氣體對人體的傷害,具有較好的實時性、經濟性和安全性。
關鍵詞:STM32開發板;甲醛;CO;PM2.5;傳感器;GPRS;云服務器
中圖分類號:TP273.5 文獻標識碼:A 文章編號:2095-1302(2017)07-0-04
0 引 言
進入21世紀以來,中國經濟飛速發展,城鎮化道路建設步伐加快,人們在室內活動的時間增多,因此對室內環境的要求也越來越高,人們的辦公及居住空間逐漸增大,室內裝修也更加頻繁。室內空氣污染物主要來源于裝修材料揮發的甲醛、苯等有害物質,可導致呼吸道疾病,長期慢性吸入低濃度甲醛可導致持續性頭痛、失眠、無力、心悸等;還會引發皮炎,過敏者甚至會出現麻疹[1-3]。此外,對于辦公場合,研究表明,良好的室內空氣質量可有效提高工作人員的工作效率[4-6]。因此人們需要對自己的生活環境有一個實時了解,家居環境監測系統應運而生,用戶只需上電啟動,儀器即可監測環境參數,并把相應結果實時顯示在屏幕上,同時還設有云端服務功能,可及時把一定周期內的數據上傳云端,隨時隨地供分析使用。
1 系統方案設計
1.1 系統設計需求
基于STM32單片機開發板設計了一款家居環境監測系統,要求達到輕便、實時準確監測多項環境參數如溫度、濕度、甲醛、CO、PM2.5、PM10等。監測系統應具有實時顯示功能,把相應參數傳輸至液晶屏幕,且該系統具有數據上傳云端功能,可把一定周期內的數據按時間節點上傳到云端服務器,并通過手機App隨時隨地查看數據,以便數據的提取和分析。該系統的主要特點為可準確、方便地測量多種有害氣體,可連入云端,體積小,方便攜帶和使用。
1.2 系統總體框架
根據設計需求分析,系統整體結構分為數據采集模塊,流程控制和數據處理模塊,LCD液晶顯示模塊,數據輸出模塊。
1.2.1 數據采集模塊
數據采集利用STM32自帶的ADC轉換通道對甲醛、CO氣體傳感器進行采樣;利用STM32對DHT11溫濕度傳感器輸出的單總線數字信號進行采集;利用STM32的串口對SDS01PM2.5/PM10傳感器輸出的數據進行接收和解析。
1.2.2 流程控制和數據處理模塊
該模塊是監測儀的核心部分,包括對采集的數據的轉換處理,對各硬件系統的初始化,串口初始化等。
1.2.3 LCD液晶顯示模塊
該模塊主要負責把監測到已經處理的數據在液晶屏幕上實時顯示出來,且顯示實時時鐘。
1.2.4 數據輸出模塊
該模塊負責將監測到的實時數據通過GPRS模塊實時上傳到云端服務器,以便查看。系統結構圖如圖1所示。
2 系統硬件設計
2.1 主控芯片
本次設計采用STM32系列芯片,該系列產品具有價格低、功耗小、性能高等特點[7]。主要應用在嵌入式開發領域,如智能家居,醫療設備等。該芯片含有48 KB SRAM、256 KB Flash,2個基本定時器,4個通用定時器,2個高級定時器, 2個DMA控制器(共12通道),3個SPI,2個I2C,5個串口,1個USB,1個CAN,3個12位ADC,1個12位DAC,1個SDIO接口及52個通用IO口[8-10]。
2.2 液晶顯示模塊
本系統采用2.8寸TFT-LCD模塊以ILI9320控制器為其驅動芯片,ILI9320液晶控制器自帶顯存。模塊可顯示字母、數字符號、中文。本設計通過STM32的普通IO口模擬8080總線來控制TFT-LCD的顯示。
2.3 傳感器選型
2.3.1 DHT11溫濕度傳感器
DHT11溫濕度傳感器是一款集溫濕度測量于一體的數字傳感器。該傳感器多用于需要采集溫度或者濕度的數字化監控系統中,具有較高的準確性和穩定性。傳感器包括一個電阻式測濕元件和一個NTC測溫元件。DHT11與單片機之間能采用簡單的單總線進行通信,只需一個I/O口[11]。因此該產品具有響應速度快、抗干擾能力強、性價比高、純數字化信號輸出等優點。DHT11數字濕溫度傳感器有四個引腳,其硬件接口電路如圖2所示。
2.3.2 MQ-7 一氧化碳傳感器
一氧化碳傳感器選擇MQ-7。該傳感器可檢測含有一氧化碳的混合氣體,是一款應用于低成本領域的氣體傳感器[12]。一氧化碳傳感器接口電路如圖3所示。
2.3.3 ZE08-CH2O甲醛傳感器
ZH08-CH2O甲醛模組是一款通用型、小型化的電化學式甲醛傳感器。利用電化學檢測甲醛原理對空氣中的甲醛進行探測,具有良好的選擇性。該模組內部有溫度傳感器,可自行進行溫度補償,達到更高的準確性。
2.3.4 PM2.5/PM10傳感器
SDS01是一款專業的,一致性好,精度高的PM2.5傳感器。傳感器輸出的數據與官方單位一致,均為μg/m3。上電后數據即可輸出,使用簡單。同時該傳感器還具有快速的場景變換響應,可滿足精確、高效率的檢測需求。
2.4 GPRS模塊
GPRSDTU (Data Terminal Unit)的全稱為數據傳輸單元,是一種物聯網無線數據終端,利用公用運營商網絡GPRS網絡為用戶提供無線長距離數據傳輸功能。USR-GPRS232-710采用工業級嵌入式處理器,內嵌TCP/IP協議棧。為用戶提供高速、穩定可靠,數據終端永遠在線,可多種協議轉換的虛擬專用網絡。支持AT命令配置,支持短信配置和APN配置功能。
3 系統軟件設計
3.1 主控程序
主控程序的第一個功能便是初始化相應硬件設置,如LCD、LED初始化,串口初始化,ADC初始化,RTC時鐘初始化等。其次是對采用時間的控制和數據處理,及控制LCD屏幕輸出與GPRS上傳云端。系統總程序流程如圖4所示。
系統首先調用編寫好的初始化程序進行初始化,初始化內容包括LCD初始化、ADC初始、DMA初始化、串口初始化、RTC時鐘初始化;其次是自檢,查看RTC時鐘和硬件DHT11是否初始化成功,若不成功則退出;自檢結束后顯示時鐘和一些需要顯示的固定標志;通過時鐘控制系統每5 s采樣一次,并在采樣完成后處理數據;將處理后的數據實時顯示到LCD屏幕上;最后每隔1 min將數據通過串口傳輸到GPRS模塊中,GPRS模塊再把數據上傳至云端。
3.2 數據采集程序
3.2.1 CO、甲醛氣體數據采集程序
本系統使用兩種氣體傳感器,分別為甲醛傳感器與CO傳感器,這兩者均輸出電壓信號,使用STM32自帶的ADC采樣輸入,需要三通道輸入,且本系統需連續采樣,故選擇ADC掃描模式輸入。采樣程序流程圖如圖5所示。
采樣流程首先應初始化ADC,配置輸入通道和轉換時間,其次配置DMA通道、輸入輸出目標地址及緩沖區大小。然后由軟件啟動ADC轉換,再通過DMA把數據存儲到數組中,之后關閉ADC轉換,將數組數據轉存到對應數據存儲單元中。判斷是否到達下一次轉換時間,若到達則再次軟件開啟ADC轉換,重復上述過程,若沒到時間則等待,直到下一次轉換時間到,再重復上述過程。
3.2.2 溫濕度數據采集程序
主機發送開始信號后,延時20~40 μs后讀取DHT11的回應信號,讀取時總線電平為低,則說明DHT11已響應,而DHT11發送響應信號后,把總線電平拉高,即為準備發送數據,每一位數據傳輸開始都是低電平。若讀取響應信號時為高電平,則說明DHT11無響應。
串口通訊數據幀見表1所列。DHT11數據采集流程如圖6所示。
3.2.3 PM2.5、PM10數據采集程序
由于SDS01使用串口發送數據,所以需要確定通訊協議。本系統設定的串口波特率為9 600,數據位為8,無校驗位,停止位為1。傳感器一次傳輸的數據幀共10字節,由報文頭、指令號、數據、校驗及報文尾構成。
SDS01先開啟對應串口并使能串口接收中斷,當接收到的數據為0xAA時認為數據幀開始,并把之后的數據存入數組中暫時保存;當接收到0xAB時,認為數據幀發送結束,此時對存入數組的第2~7字節求和,若與校驗和字節的數據一致,則認為成功發送一幀數據,并把相應的數據顯示到液晶屏上。SDS01數據采集流程如圖7所示。
3.3 液晶驅動程序
本系統使用的TFT-LCD由STM32的普通IO口模擬8080總線來控制顯示,并將ILI9320控制器作為其驅動芯片。模塊的8080并口讀/寫應先根據要寫入/讀取的數據類型設置RS為高(數據)/低(命令),然后拉低片選,選中ILI9341,之后根據要求置RD/WR為低。硬復位和初始化序列只需執行一次即可。畫點先設置坐標,寫GRAM指令與顏色數據,然后在LCD上就可看到對應的點顯示寫入的顏色。
3.4 GPRS模塊配置及數據傳輸
3.4.1 Yeelink
物聯網逐漸進入我們的生活,方便我們隨時隨地查看遠端設備的運行狀態并對其進行控制,Yeelink提供了一個很好的云端服務器平臺。該系統采用Node.js語言提供傳感器接入服務,實現了數據超大并發接入;在解決數據存儲問題方面,Yeelink使用Hadoop分布式處理框架,針對傳感器數據在時間上具有的連續性,數據插入時速度相對恒定,數據需要快速取回等特點,做了相應優化工作,使得系統能夠穩定健壯的提供數據存儲服務;在數據獲取方面,Yeelink使用基于RESTful架構的開放API體系,通過統一的Web Service,使用戶在取回和管理自身傳感器數據時的界面更加友好簡單,可使用各種語言實現客戶端系統。設備通過網絡連接到Yeelink服務器,上傳本地檢測數據,電腦或手機可訪問設備數據。
3.4.2 GPRS模塊配置
打開與該GPRS模塊配套的配置軟件USR-GPRS-DTU-V2.3.4.924,在配置界面中選擇工作模式為數據透傳模式,該模式下可實現串口設備與服務器平臺之間的數據通訊;目標IP為42.96.164.52,端口號為80,這是Yeelink的云服務器所在IP,之后的數據包都要發向該端口;設置心跳時間為60 s,心跳包格式為0x50,0x44,心跳包是由GPRS模塊發送給串口的數據,串口接到心跳包數據后開始上傳傳感器數據。
3.4.3 數據包傳輸流程
發送給Yeelink的數據包需要采用HTTP協議和JSON格式,具體格式如圖8所示。
其中,DEVICE_ID,SENSOR_ID,APIkey均在注冊后由網站分配獲得;length是發送內容的長度,即圖中最后一行所包含的字符數;數據打包在圖中“22”所在位置。設備可根據返回的數據判斷是否發送成功。在GPRS數據上傳的流程中,先初始化串口并開啟串口接收中斷,當接收到GPRS模塊發送的心跳包時,認為可上傳數據;主控芯片將數據打包,并依次發送至服務器,每個數據包發送完后需得到服務器響應后才能發送下一個數據包。具體流程如圖9所示。
圖9 GPRS通信流程
4 系統組裝及數據測試
該系統可采用LCD顯示屏實時顯示數據,設計界面上三行分別顯示年份、時間、星期;下面依次顯示溫度、濕度、一氧化碳、甲烷、甲醛的測量數據。傳輸程序及原理圖準備完成后,即完成了對系統的組裝工作。
系統組裝完畢后,在室內條件下對其進行各項數據測試,并在液晶面板上顯示實時監測數據。基于STM32的家居環境監測系統數據測試結果如圖10所示。
將系統數據上傳至云端且在手機應用Yeelink上接收數據的系統調試效果如圖11所示。
至此,系統調試完畢。依據該系統所能實現的功能,可對室內的溫度、濕度、一氧化碳、甲烷、甲醛濃度進行實時監測,并將數據輸送至服務器后上傳至云端,用戶即可通過互聯網獲得房屋內部相關信息。
5 結 語
本文采用STM32F103芯片作為核心處理器,外部連接各類傳感器,設計并實現了家居環境監測系統的硬件電路及軟件程序開發。該系統能夠自動檢測室內一氧化碳、甲醛、PM2.5等有害物質濃度及環境溫濕度,通過GPRS模塊將數據上傳云端,易于監控和管理。經測試,系統可成功采集數據并上傳云端。本系統采用模塊化設計,具有較好的移植性,便于進行功能擴展,具有較高的研究和應用價值。
參考文獻
[1]張曉輝,李雙石,曹奇光,等.室內空氣污染的危害及其防治措施研究[J].環境科學與管理,2009, 34(7):22-25.
[2]王勝娥.甲醛含量的檢測以及甲醛傳感器的研究[D].長沙:湖南大學,2005.
[3]孫建中.常用氣體傳感器原理與應用[J].中國電子商務,2013(4):76.
[4] P W argocki,DP Wyon,PO Fangeret,et al. Perceived air quality, sick building syndrome(SB) symptoms and productivity in an office with two different pollution loads[J].Indoor Air,1999,9(3):165-179.
[5]錢建華.室內空氣品質的影響及改善措施[J].黑龍江科技信息,2011(26):76.
[6] Kroner WM, et al.Employee productivity an the intelligent workplace[C].Proceedings of the International Conference on Creating the Productive Workplace, London, 1997.
[7]吳廣.基于STM32的汽車室內空氣污染物監測系統設計[D].武漢:武漢紡織大學,2014.
[8]葛年明,殷彩萍,邵文學.基于STM32的室內有害氣體檢測系統設計[J].微型機與應用, 2015,34(23):20-22.
[9]唐密媛,張根寶.基于ARM Cortex-M3的便攜式智能瓦檢儀的設計[J].計算機測量與控制,2009,17(12):2562-2563.
[10]郎寶華,蔡莉媛.基于STM32的多氣體檢測系統設計[J].計算機與數字工程,2016,44(3):552-544.
[11] Z.A.Rashid,S.A.Al Junid.Trees cooling effect on surrounding air temperature monitoring system: Implementation and observation[J].International Journal of Simulation: System, Science and Technology,2014,2(15):70-77.
[12]李軒.基于單片機控制的室內有害氣體監測系統的研究[J].東方教育,2014(10):256.