宋昌偉
(安康學院電子與信息工程學院,陜西安康,725000)
近些年來,伴隨著居民生活水平的提高,人們對居住條件的要求也在逐漸提高,但在享受現代文明的同時,大氣污染和天燃氣等燃料的使用,導致室內的污染問題越來越嚴重,甚至威脅到居民的個人健康。所以,有效的監測室內的煙霧濃度、粉塵濃度和溫濕度是保障居民身體健康和良好工作生活環境的重要前提。現有的空氣質量監測裝置的各方面性能仍有較大的提升空間,很多監測裝置存在性能單一、實時性差,信息交換不直觀等缺點,已很難滿足日益增長的健康需求[1-4]。因此,對現有的監測裝置進行改進,研發一個監測功能齊全,報警響應快,信息交互簡單直觀的室內空氣質量監測系統是非常必要的。
室內空氣質量監測系統工作后,根據PM2.5傳感器、溫濕度傳感器和煙霧濃度傳感器的輸出結果分別確定出室內的PM2.5濃度、溫濕度和煙霧濃度。根據按鍵輸入的信號確定出粉塵和煙霧濃度的報警值,根據語音識別模塊的輸出結果確定出用戶輸入的語音命令,以上數據送入到主控制芯片進行分析和處理,得到的結果在本機的顯示器件同步輸出。當PM2.5濃度和煙霧濃度的測量結果超過上限報警值時,報警器件會自動輸出聲音報警提示信息。另外,當語音識別模塊檢測到用戶輸入的合法口令時,語音播放模塊可以自動播放出溫濕度、PM2.5濃度和煙霧濃度的測量結果。系統的總體框架如圖1所示。

圖1 空氣質量監測系統框圖
(1)系統硬件選型
本系統主控核心板上使用的STM32F103芯片是基于Cortex-M3內核擴展的32位可編程芯片,芯片內集成了定時器、ADC模數轉換器、數據交互接口(串口、I2C和SPI)、Flash存儲器和IO控制口等多種開發資源,并且該芯片主要的優點是應用范圍大,具備很好的實時性能、較小的功耗控制性能。
數據采集模塊主要有:環境煙霧濃度檢測使用的MQ-2氣體傳感器;PM2.5濃度檢測模塊使用的GP2Y1014AU傳感器[5-6];環境溫濕度檢測使用的DTH11傳感器。顯示模塊采用的是OLED液晶屏;交互模塊主要有:環境語音檢測使用的LD3320語音識別模塊。
(2)系統硬件電路設計
核心板的硬件由STM32F103 芯片、晶振、電容和電阻等組成,電路設計時,主控芯片外連的擴展電路如圖2所示。
在圖2中,晶振X1、貼片電容C1和C2組成了時鐘電路,該電路為主處理芯片提供基礎的工作時鐘,X1晶振輸出的信號經過芯片內部的鎖相環9倍頻后得到72MHz時鐘為主處理芯片的串口、ADC轉換單元和PA~PC口的工作提供所需的時鐘源。電容C1和C2可以穩定X1晶振頻率,并濾除晶振工作時可能產生的干擾信號。

圖2 核心板硬件電路圖
PM2.5濃度檢測電路設計時,傳感器工作所需的正電源在P2端的6腳接入,負電源在P2端子的4腳接入,LED燈的負極和地相連,LED的正極接線腳和5V電源通過150Ω的電阻R6相連,數字信號輸入腳LED和地相連,模擬量輸出引腳AO和STM32芯片的PA0腳相連。粉塵濃度檢測電路的連線方法如圖3所示。
在圖3中,GP2Y1014AU傳感器的監測結果通過PA1腳輸入到主處理芯片,軟件中將PA1腳的功能設置為模擬量檢測腳,通過對PA1腳輸入的量化結果進行處理,即可計算出傳感器周圍的粉塵濃度值。

圖3 粉塵濃度檢測模塊電路圖
溫濕度檢測電路設計時,傳感器的正電源腳VCC直接接入5V電壓,GND腳直連0V電壓。數據輸出腳DATA通過上拉電阻R7直連在PB5腳。溫濕度檢測電路的連線方法如圖4所示。

圖4 溫濕度檢測模塊電路圖
在圖4中,軟件中將PB5腳設置為輸出引腳,此時利用PB5腳將控制命令發送給DHT11傳感器,控制傳感器讀取環境的溫濕度數據。然后將PB5腳設置為數據輸入腳,利用PB5腳接收DHT11傳感器返回的監測結果。最后根據保存的32個數據即可計算出環境的溫度和濕度值。
語音識別電路設計時,LD3320模塊的正電源腳VCC直連在5V電壓,負電源腳GND直連在0V電壓。數據輸出腳TXD和主控芯片的PB10引腳直連,數據輸入腳RXD和主控芯片的PB11引腳直連。語音識別電路的具體連線方法如圖5所示。

圖5 語音識別模塊電路圖
電路工作時,LD3320識別語音模塊會自動檢測周圍的聲音信息,當識別到“環境質量”語音指令時,語音識別模塊會向通過串口向STM32處理芯片發送語音識別成功指令,STM32芯片通過對處理串口3的接收中斷事件即可接收到語音檢測模塊的識別結果。
語音播放電路設計時,MY1680語音模塊的正電源腳VCC直連在5V電壓,負電源腳GND直連在0V電壓。數據輸出腳TXD和主控芯片的PA10引腳直連,數據輸入腳RXD和主控芯片的PA9引腳直連。語音播放電路的具體連線方法如圖6所示。

圖6 語音播放模塊電路圖
電路工作時,STM32芯片會通過PA9腳將語音播放指令和播放文件的地址發送給MY1680模塊,語音模塊接收到控制命令時,會自動播放出該文件中存儲的語音信息內容。
為了確保空氣質量系統硬件可以有序工作,本系統將在keil4開發環境中對硬件各模塊電路的控制原理及工作順序進行規劃。系統軟件整體實現了兩個功能,一是對硬件進行初始化配置,明確器件的初始狀態,二是控制器件按照固定地邏輯有序地工作。主程序的執行流程如圖7所示。

圖7 主程序執行流程圖
數據采集模塊以粉塵濃度傳感器為例,粉塵濃度檢測程序通過啟動PA1腳的電壓測量功能,實現對GP2Y1014A輸出電壓的檢測,并根據檢測的結果通過數學轉換關系M=(5Vout-3)/29×1000確定出室內的粉塵濃度煙值。粉塵濃度檢測程序的執行流程如圖8所示。

圖8 粉塵濃度檢測子程序執行流程圖
按煙霧濃度程序執行時,先打開PA口的是時鐘,配置PA1口作為輸出引腳使用。其次使能PA1腳的模數轉換功能,并輸出采樣控制信號,即采樣的通道設置為1,采樣的周圍設置為239.5μs。最后根據PA1腳接收的電壓值量化結果計算出環境周圍的粉塵濃度值。
系統設計實物圖如圖9所示,測試時,分為單一模塊測試和系統整體測試兩個部分。通過單一模塊測試和設置相應模塊的濃度閾值,當超過閾值時,發生報警。當對LD3320語音識別模塊說出“環境質量”口令時,MY1680模塊會自動播放出溫濕度、煙霧濃度和粉塵濃度的監測結果。系統聯調時,通過改變環境溫濕度、煙霧濃度和粉塵濃度的測試條件模擬出變化的測試條件,液晶屏上同步顯示出各個監測參數的測量結果為:環境溫度18℃、濕度為66%RH、煙霧濃度為18ppm、粉塵濃度為26ug/m3,且粉塵濃度監測數值與真實值的相對誤差<7%,溫度絕對誤差<2℃,濕度絕對誤差<4%RH。各模塊運行正常,整體運行良好[7]。

圖9 系統實物圖
隨著人們生活水平的提高,每個家庭的室內環境空氣質量也就成為了重中之重。為了能夠實時的提醒和檢測家中的空氣質量,本文研究并設計了一個基于STM32實現的空氣質量監測系統,該系統可實現如下功能:
(1)可實現對室內環境溫濕濕度、煙霧濃度和粉塵濃度的檢測。
(2)當溫濕濕度、煙霧濃度或粉塵濃度超標時可以輸出報警信息。
(3)當接收到用戶輸入的語音信息播放命令時,可以控制系統的聲音輸出模塊自動播放出實時的監測結果。
通過系統測試,本系統具有檢測數據準確可靠、信息交互簡單直觀等優點,適合在普通家庭中推廣應用,可為居民提供更好的生活及居住環境。