摘要: 目前市面上的空氣質量檢測儀通常只能檢測少數幾種氣體,面對空氣中多種有害氣體,就要使用不同的檢測儀器。針對現有檢測系統功能不全等問題,開發了由STM32單片機、各類傳感器、LCD顯示屏和WiFi通信模塊組成的多功能檢測系統,并利用機智云物聯網平臺傳輸數據到用戶終端。該檢測系統能夠實現對空氣中的CO、CO2、PM2.5、TVOC、甲醛的含量以及溫濕度進行實時監測,并具有超標報警功能。
1引言
空氣中的有害物質直接影響人們的心身健康,室內空氣的危害氣體主要有CO、CO2、PM2.5、甲醛等[1]。溫濕度對人的舒適度有較大影響,低濕度環境對人有多種不利影響[2-4]。因此,對空氣中的有害氣體及環境的溫濕度進行檢測是必要的,對人員密集、活動頻繁的室內公共場所進行空氣質量檢測尤為重要。空氣質量檢測方法可以根據檢測內容的不同進行設計。采用STC系列單片機可設計出室內溫濕度、PM2.5顆粒物濃度檢測方法[5]。
利用STM32單片機能實現對室內溫濕度、PM2.5以及甲醛濃度檢測,數據可采用藍牙通信方式傳輸到手機[8],也可利用網絡和Lo Ra(Long Range)無線通信技術實時地將檢測結果上傳至上位機[9]。上述方法對空氣質量的檢測主要對象是溫濕度、PM2.5、CO、CO2甲醛濃度等,而且一臺檢測設備也難以完成這些目標的同時檢測。在數據傳輸方面,藍牙通信距離短、可靠性不高,Lo Ra無線通信技術系統較復雜,成本相對高。
實際上,空氣中的有毒有害氣體比較多,例如空氣中的TVOC(TotalVolatile Organic Compounds總揮發性有機物,簡稱TVOC)對空氣質量影響大,引起了人們的高度重視。因此,針對目前空氣質量檢測系統功能少的現狀提出了一個新的設計方案,系統設計以STM32單片機為主控器,由有關功能傳感器和Wi Fi無線通信模塊組成,利用機智云和Wi Fi無線通信技術將數據傳輸到用戶終端,實現數據共享。該方案可完成多種有害氣體的檢測,同時能對溫濕度進行監測。
2 系統設計方案
空氣質量檢測系統可檢測多種有害氣體,對環境的溫度、濕度能進行監測,檢測到的數據信息可上傳到機智云物聯網云平臺,并發送到用戶終端,設計目標和技術指標如下:
2.1 設計目標與技術指標
2.1.1 設計目標
(1) 具有能夠檢測CO、CO2、甲醛、TVOC、PM2.5和溫濕度檢測功能。
(2) 能夠在LCD屏上實時的顯示相關檢測數據。
(3) 利用Wi Fi無線通信技術上傳數據到機智云物聯網云平臺。
(4) 能將數據發送到用戶終端,實現用戶手機及電腦等設備遠距離傳輸。
(5) 具有對有害氣體超標提示與報警功能。
2.1.2 主要技術指標
系統設計的技術指標如表1所示:
表1技術指標要求
2.2 系統組成與模塊選型
2.2.1 系統組成
根據設計目標構建系統組成,如圖1所示,系統主控制器為STM32,數據采集部分由二氧化碳(TVOC、溫濕度)傳感器模塊、甲醛傳感器模塊、PM2.5采集模塊以及一氧化碳采集模塊構成,此外還有顯示、報警以及Wi Fi無線通信模塊。
圖1 空氣質量檢測系統組成框圖
2.2.2 功能模塊的選擇
(1)系統主控制芯片的選擇
控制器是系統的主要器件,在滿足功能要求的情況下主要考慮性價比,通過對目前市面上比較流行的幾大主流單片機芯片對比分析,系統設計宜選用STM32F407ZGT6單片機,該芯片具多個串口,主時鐘頻率達到168MHz。
(2)PM2.5傳感器的選擇
PM2.5傳感器種類多,有普通傳感器,也有激光傳感器,可根據精度要求和價格進行選擇,相對于普通傳感器,激光PM2.5傳感器精度高但價格貴許多,本次設計選用價格低的夏普GP2Y1014AU作為PM2.5傳感器。
(3)二氧化碳(TVOC)與溫濕度傳感器選擇
考慮到系統功能需求,采用CCS811傳感器,它既可檢測二氧化碳,又能作為TVOC傳感器使用。溫濕度傳感器選用HDC1080模塊,它與二氧化碳(TVOC)傳感器集成在一起,采用IIC總線傳輸數據,體積小。IIC總線類型的傳感器結合在一起有利于節省I/O口資源。
(4)一氧化碳以及甲醛傳感器模塊的選擇
一氧化碳(CO)與甲醛屬于高危氣體,考慮到安全性要求,CO傳感器選用ZET07-CO模塊,甲醛傳感器采用英國達特SMT8404數字式模塊,主要是因為這兩款傳感器是以串口方式傳輸信號,而且數字信號傳輸不易受到外界干擾。
3 系統硬件設計
系統硬件設計主要是對各種傳感器、Wi Fi無線通信模塊等功能器件與STM32單片機的接口電路設計。功能單一的傳感器接口電路簡單,下面介紹主要的模塊接口電路。
3.1 CJMCU-8118傳感器模塊采集電路設計
CJMCU-8118模塊就是CCS811二氧化碳(TVOC)傳感器與HDC1080溫濕度傳感器組合體,采用IIC總線,CJMCU-8118模塊與STM32單片機的連接方式如圖2所示,其中SCL是IIC數據傳輸的時鐘,SDA為IIC的數據線,WAK是一個使能信號線。
3.2 串口數據傳輸器件電路設計
系統設計使用四個串口類型的數據傳輸器件,分別是CO傳感器模塊、甲醛傳感器模塊、串口LCD屏幕以及Wi Fi8266模塊。這四個串口類型模塊與STM32單片機的連接方式如圖3所示。采用5V供電電壓,其中CO模塊連接的是單片機的串口P4,甲醛模塊連接的是單片機的串口P3,LCD屏幕連接的是單片機的串口P2,Wi Fi8633模塊連接單片機時,需要GBC_LED與GBC_KEY作為控制信號設置Wi Fi8266模塊的工作模式。
圖2 CJMCM-8118與STM32接口電路
圖3串口類模塊與單片機連接圖
4 系統軟件設計
4.1 主控程序設計
在系統運行時可能會出現外界的干擾,為了防止系統在遇到干擾時無法正常運行,系統在軟件設計上加入了看門狗程序,保障系統運行不出差錯,程序流程圖如圖4所示。STM32F4的中斷系統可配置16個不同優先級別的中斷,并且中斷之間還可以嵌套中斷。首先對單片機初始化,進行優先級分組,在此配置兩個響應優先級和兩個搶斷優先級。
統滴答計時器的初始化是為了做精準的延時而準備的,延時函數在每個模塊基本上都有調用。最后對各個模塊初始化,主要是對STM32F4最小系統I/O口的參數以及模式進行配置,主要有串口的配置、ADC、IIC、PWM的功能配置。完成了初始化后,系統開始檢測Wi Fi模塊有沒有成功連接路由器。在Wi Fi成功連接之后開始接收數據,與設定數據進行比較,是否有CO、甲醛超標,有超標則蜂鳴器警報,并通過通信方式向手機APP或者PC端發送警報。沒有超標將會繼續判斷CO2、TVOC、溫濕度、PM2.5是否超標,如果有超標,系統顯示屏將會紅色提示,否則,顯示屏將會是藍色,表示正常。
圖4主程序流程圖
4.2 WiFi模塊程序設計
在對Wi Fi模塊進行編程之前,先要對WiFi模塊進行固件庫改寫,在固件庫改寫成功之后才能進行編程,程序流程圖如圖5所示。圖中的喂狗就是上一節提到的看門狗程序,協議處理可直接調用庫函數實現。WiFi設備通過配置入網,可由按鍵啟動相應的連接模式,并對配置好的路由器進行連接。
WiFi設備與機智云服務器是雙向通信,APP端的操作信息通過機智云服務器發送到Wi Fi設備,WiFi設備接收完成后,單片機(MCU)將會收到協議幀格式的數據,緩沖區將會儲存數據。每隔一段時間都會進行一次抓包,然后將數據進行解析,解析后的數據能被MCU識別從而發起事件處理。傳感器采集的數據能夠被MCU儲存,然后這些數據通過協議封裝成數據幀發送到WiFi設備,WiFi設備將數據輸送至機智云平臺的云端服務器,再傳輸到用戶終端。
圖5 WiFi模塊工作流程圖
4.3 傳感器模塊程序設計
4.3.1 PM2.5傳感器模塊程序設計
PM2.5傳感器主要用到了ADC變換以及PWM脈沖信號配合才能得到采集的數據。采樣程序是根據夏普官方說明書中提到要接入一個280us低電平和9720us高電平的PWM信號作為啟動信號。通過計算PWM的周期能達到10ms,PM2.5模塊只有在PWM低電平280us后才開啟轉換,因此這時候的ADC采樣才是有效的。程序設計時ADC的初始化是通過配置寄存器把管腳功能復用為ADC,PWM初始化是配置PA4管腳相關參數。
根據夏普PM2.5官方提供的典型粉塵電壓轉換圖,如圖6所示,可計算粉塵濃度。但是由于起始電壓的典型值在不同的地區會有不一樣的取值,實際上在很多地區的無塵電壓為0V。由圖6可知,電壓變化范圍在0.0V~3.5V時,粉塵濃度與電壓呈線性關系。
圖6粉塵電壓轉換圖
電壓值的轉換計算:
粉塵轉換計算:
由公式(1)(2)得出總的計算公式:
注:因ADC是12位,212的值是4096,但計算機中12位的非負數補碼最大值是4095,公式(3)需要進行修正,修正值為500/4095=0.12,因此,公式(3)要減去0.12,這樣實際測量值更準確。
4.3.2 CJMCU-8118模塊程序設計
CJMCU-8118模塊的信息采集是通過IIC總線進行的,IIC協議啟動、停止、等待ACK到來的時序都是通用時序。在IIC總線的通信中要求時鐘速度不能過快,否則將會丟失數據,導致無法進行數據的采集。IIC協議內容也相對比較簡單,在使用時可以直接調用相應的庫函數。IIC總線中規定讀取寄存器數據必須選擇對應的地址,寫入信息之后停止,重新啟動才能真正開始讀取儲存器的數值。
要讀取相應的CO2、TVOC、溫濕度大小必須將其地址寫入傳感器,才能獲取相應的轉化值。寫入地址信息以及配置好模塊的模式之后,要用IIC的讀數據方式。讀完數據之后沒有應答信號,結束一次數據的讀取。程序設計時二氧化碳與TVOC直接是16位的ADC轉換值,溫濕度計算轉換根據官方資料提供的公式。
溫度計算公式:
濕度計算公式:
4.3.3 甲醛與一氧化碳模塊程序設計
這兩個傳感器使用的傳輸方式都是串口方式,并且在數據傳輸上是一致性,所以兩個模塊的程序設計方法相同。串口通信(USART)初始化是配置好相應的復用功能,串口采用中斷接收的方式,下一步就是要對中斷服務函數初始化。在中斷數據接收中判斷數據是否為0xff的16進制編碼,如果是則進一步開始保存相應的數據,當數據達到8位的時候停止接收。經過這一個流程就能完成一次數據的接收。程序設計時根據表2計算CO濃度與甲醛濃度,具體計算公式如下:
表2 串口通信數據傳輸表
甲醛濃度計算公式:
甲醛濃度(ug/m3)=(高位×256+低位)/10(6)
CO濃度計算公式:
5 系統集成與測試
各功能模塊設計、調試完成后,集成為一個系統,再進行系統功能測試。根據實際測量得到的粉塵濃度數據如圖7所示。圖中數據是在高濃度的粉塵下進行的測試,該測試結果能夠驗證公式(3)計算的正確性。圖8是系統集成圖,圖中所示信息是在一個VR室測試的空氣質量數據,測試結果說明了系統實現了相關功能。
圖7實際測量粉塵濃度與電壓關系圖
圖8VR室的實際檢測數據效果圖
6 結語
項目系統硬件設計了多種不同功能傳感器、WiFi無線通信模塊與主控制器STM32芯片的接口電路。根據傳感器的工作原理設計了相關程序,并以機智云物聯網平臺和WiFi無線通信模塊原理編寫了通信程序。實現了對室內空氣中的CO、CO2、PM2.5、TVOC、甲醛的含量以及溫濕度的實時監測,檢測到的數據可在LCD液晶屏顯示,同時通過WiFi無線通信技術和機智云物聯網平臺傳輸到用戶終端,并具有超標報警功能。該空氣質量檢測系統在VR室得到測試,性能穩定,數據準確,具有實際應用價值。
-
WIFI
+關注
關注
81文章
5289瀏覽量
203309
發布評論請先 登錄
相關推薦
評論