唐 偉,謝永智
(桂林理工大學(xué)機械與控制工程學(xué)院,廣西桂林 541004)
在當(dāng)前的社會環(huán)境下,住房問題成為了人們關(guān)心的最大問題。在這個背景下,擁有一個綠色的健康的居住環(huán)境是人們共同的追求。
本設(shè)計所指向的應(yīng)用環(huán)境是民用建筑的智能通風(fēng)。利用傳感器的采集空氣數(shù)據(jù)的特性,了解居住環(huán)境的空氣質(zhì)量,由主控芯片進行數(shù)據(jù)的處理,發(fā)送起始信號給執(zhí)行機構(gòu),自動調(diào)節(jié)空氣質(zhì)量。當(dāng)空氣中的環(huán)境質(zhì)量達標(biāo)后,發(fā)送停止信號,執(zhí)行機構(gòu)停止運動。此外還可以通過按鍵開關(guān)單獨控制執(zhí)行機構(gòu)的啟停。
本系統(tǒng)主要由MQ-135空氣質(zhì)量傳感器、MQ-2易燃?xì)怏w檢測傳感器、DHT11 溫濕度傳感器、TFT-LCD 液晶顯示屏、STM32F407ZGT6 單片機、電源模塊、報警裝置和通風(fēng)機構(gòu)組成。通過傳感器檢測各個房間的PM2.5 濃度、易燃?xì)怏w濃度和溫濕度數(shù)據(jù),并在TFT-LCD液晶顯示屏上。將采集到的數(shù)據(jù)與自己預(yù)設(shè)的值相比較,如果大于閾值就會報警并打開通風(fēng)或加濕裝置。其控制功能結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)控制功能結(jié)構(gòu)框圖
單片機最小系統(tǒng)主要分為電源電路、振蕩電路以及復(fù)位電路3部分。電源電路為單片機以及傳感器模塊提供正常工作所需要的電壓;振蕩電路使用了一個振蕩率為12 Hz 的晶振,晶振是一個單片機控制系統(tǒng)的核心,沒有晶振單片機就無法正常工作;復(fù)位電路的作用是使單片機系統(tǒng)恢復(fù)最初始的狀態(tài),隨著程序的運行,有可能無法準(zhǔn)確地判斷程序運行到哪個位置,按下復(fù)位按鍵,使系統(tǒng)復(fù)位回到程序開始運行的初始位置。
DHT11 溫濕度傳感器的濕度測量范圍在20%~90%,溫度測量范圍在0~50 ℃,但是DHT11 的測量精度不是非常高,多用于小規(guī)模的溫濕度檢測。本設(shè)計所指向的是民用建筑的室內(nèi)智能通風(fēng)系統(tǒng),對于溫濕度的精度要求并不高,在滿足測量的條件下,選擇DHT11 的性價比較高。原理圖如圖2所示。
DHT11 傳感器收到主機發(fā)送的開始信號后,從低功耗的休眠模式轉(zhuǎn)換成高速運行模式。等待主機發(fā)送的開始信號結(jié)束后,即主機拉高電平,停止信號的發(fā)送,DHT11 向主機發(fā)送一個低電平的應(yīng)答響應(yīng)信號。在拉高延時準(zhǔn)備輸出,拉低電平同時返回40位的數(shù)據(jù),完成模擬信號的采集,一般都是高位在前,低位在后。采集數(shù)據(jù)完成后,DHT11 返回初始狀態(tài),等待主機再次發(fā)送起始信號如果沒有接收到主機的起始信號,DHT11 不會進行溫濕度采集。
圖2 DHT11溫濕度傳感器
MQ-135 氣體傳感器所使用的氣敏材料是二氧化錫(SnO2),二氧化錫在正??諝猸h(huán)境中電導(dǎo)率較低,而當(dāng)傳感器所處環(huán)境中存在一定含量的污染氣體時,傳感器的電導(dǎo)率隨空氣中污染氣體濃度的增加而增大[1]。它對煙霧和其他有害氣體的檢測也很理想。所以這種傳感器主要用來檢測空氣的質(zhì)量。
MQ-2氣體傳感器多用于家庭的氣體泄漏檢測裝置,主要用于檢測液化氣、酒精、煙霧等易燃?xì)怏w。在氣體傳感器采集到數(shù)據(jù)后,如何將采集到的數(shù)據(jù)轉(zhuǎn)換成空氣中實際濃度的含量,以MQ-2氣體傳感器為例,計算濃度與輸出電壓的關(guān)系如下:
式中:n為常數(shù),與氣體檢測靈敏度有關(guān),除了隨傳感器材料和氣體種類不同而變化外,還會由于測量溫度和激活劑的不同而發(fā)生大幅度的變化[2];m為常數(shù),表示隨氣體濃度而變數(shù)的傳感器的靈敏度(也稱作為氣體分離率)。對于可燃性氣體來說,m的值多數(shù)介于1/2~1/3[2]。
傳感器的電阻阻值的計算如下:
式中:VC為回路電壓;VRL為傳感器4、6腳的輸出電壓;RL為負(fù)載電阻。
根據(jù)以上式子可以求出傳感器電阻RS。根據(jù)MQ-2 傳感器的電導(dǎo)率隨著氣體的濃度增大而增大,得出其輸出電壓的公式如下:
式中:VC為回路電壓,即引腳1、3 之間的電壓;RS為傳感器的阻值;US為傳感器引腳4、6之間的輸出電壓。
如果空氣中的氣體濃度上升,則會導(dǎo)致RS下降,根據(jù)式(3),則輸出電壓值US會增加。所以得到空氣中氣體的濃度與傳感器的輸出電壓值呈正相關(guān)。
一個功能完全的LCD 液晶屏幕顯示系統(tǒng)主要分為3 個部分:第1部分為主控系統(tǒng),控制信號的發(fā)送;第2部分為LCD顯示控制器,控制信號的讀取與寫存,當(dāng)主控系統(tǒng)的CPU 向LCD 顯示控制器發(fā)送信號,將數(shù)據(jù)寫入幀存控制模塊中,幀存控制模塊在整個LCD 顯示系統(tǒng)中起到的作用是給顯示數(shù)據(jù)一個緩沖的時間;第3 部分為LCD 顯示屏,主要將需要顯示的數(shù)據(jù)通過地址總線和數(shù)據(jù)總線,發(fā)送到圖形處理模塊,將傳進來的數(shù)據(jù)進行分析處理后,通過LCD 的時序發(fā)生模塊發(fā)生脈沖波,通過拉高脈沖,把要顯示的數(shù)據(jù)發(fā)給顯示器,數(shù)據(jù)發(fā)送結(jié)束后拉低脈沖。
TFT-LCD液晶顯示電路原理如圖3所示。
圖3 2.8寸TFTLCD液晶顯示屏模塊原理圖
通風(fēng)換氣的模塊通過繼電器串聯(lián)一個5 V直流風(fēng)扇進行控制。正常通電情況下,繼電器接常開,在沒有得到單片機發(fā)送信號時不做動作,如果檢測到溫度過高或者氣體濃度超標(biāo)時,繼電器得電吸合,由常開變?yōu)槌i],風(fēng)扇開始轉(zhuǎn)動。
系統(tǒng)軟件的設(shè)計應(yīng)考慮到產(chǎn)品的功能要求,逐步實現(xiàn)控制要求。功能要求:能夠自動檢測兩個房間的溫濕度與空氣質(zhì)量,設(shè)置報警值并自動控制兩個房間的通風(fēng)裝置的啟停,而且還有能夠具備手動控制風(fēng)扇的啟停的功能[3]。主程序的流程如圖4所示。
圖4 主程序的程序執(zhí)行流程
本設(shè)計中主要使用到了ADC數(shù)模轉(zhuǎn)換的相關(guān)知識。12位ADC數(shù)字模擬轉(zhuǎn)換器有多達18個通道,可測量16個外部信號源和2個內(nèi)部信號源,是一種逐次逼近型的轉(zhuǎn)換器[5]。每個通道的A/D 轉(zhuǎn)換可以單次、連續(xù)掃描或間斷模式執(zhí)行,本設(shè)計中采用到的是A/D轉(zhuǎn)換的單次掃描,將結(jié)果儲存在FSMC寄存器中[5]。
STM32F4 中ADC 的轉(zhuǎn)換分為規(guī)則通道組和注入通道組[6]。其中規(guī)則通道是系統(tǒng)正常運行的程序,而注入通道,就相當(dāng)于中斷函數(shù)[6]。在程序正常執(zhí)行的時候,注入通道的轉(zhuǎn)換可以打斷規(guī)則通道的轉(zhuǎn)換,規(guī)則通道只能在注入通過轉(zhuǎn)換完成后才能夠繼續(xù)轉(zhuǎn)換[6]。
本設(shè)計用到的是STM32F407自帶的ADC時鐘電路,在初始化ADC的時候,需要參考到STM32F407的參考手冊,查閱相關(guān)的時鐘初始化及配置程序。ADC 在開始精確轉(zhuǎn)換之前需要一段穩(wěn)定時間tSTAB,ADC 開始轉(zhuǎn)換并經(jīng)過15 個時鐘周期后,EOC 標(biāo)志置1,轉(zhuǎn)換結(jié)果存放在16 位ADC 數(shù)據(jù)寄存器中[7]。
開啟ADC時鐘后,編寫數(shù)據(jù)讀取函數(shù),使用串口調(diào)試助手,進行數(shù)據(jù)的接收與顯示。這里用到串口調(diào)試,需要編寫串口函數(shù),打開串口。使用Printf函數(shù)打印出MQ-135、MQ-2和兩個DHT11的數(shù)據(jù)。
注意:這里讀取出來的值是在0~4 095之間的一個值。但是無法直觀地感受到空氣中的濃度,所以需要將它轉(zhuǎn)換成百分比來看。用讀取到的值除以4 095,再乘以100%,就可以轉(zhuǎn)換成百分比值,方便比較。
經(jīng)過串口調(diào)試過后的程序,確定各傳感器的數(shù)據(jù)轉(zhuǎn)換與讀取函數(shù)沒有問題,編寫主函數(shù)后,在LCD 屏上顯示自己想要的數(shù)據(jù)。
自從控制部分以房間一為例,當(dāng)檢測到的可燃?xì)怏w的濃度大于預(yù)設(shè)值時,開啟蜂鳴器和繼電器,進行報警以及通風(fēng)。通風(fēng)完成后,關(guān)閉蜂鳴器和繼電器。
手動控制部分以房間二的換氣扇和加濕器進行演示。系統(tǒng)初始化設(shè)置運行模式為自動模式,自動模式下按動按鍵無法觸發(fā)按鍵函數(shù)。在按下模式切換按鍵后,系統(tǒng)執(zhí)行手動控制的函數(shù)。按下KEY1打開繼電器,開啟位于客廳的換氣扇,再次按下則關(guān)閉繼電器。
本文主要研究了如何通過單片機系統(tǒng)對室內(nèi)房間進行智能通風(fēng)換氣的設(shè)計與實現(xiàn)。通過利用STM32F407ZGT6高性能的單片機以及溫濕度和氣體傳感器,實現(xiàn)房間的溫濕度以及空氣質(zhì)量的檢測,能夠通過LCD 顯示屏進行實時顯示、實現(xiàn)超限報警并開啟通風(fēng)的控制要求;同時還能自動或通過按鍵手動控制調(diào)節(jié)裝置。自動控制時,當(dāng)環(huán)境條件高于安全值時開啟報警裝置提醒用戶,并自動通風(fēng)。當(dāng)環(huán)境條件降低到可以接受的范圍時,會停止空氣調(diào)節(jié)裝置的運行;手動控制可以根據(jù)自身的體感舒適度開啟或者關(guān)閉空氣調(diào)節(jié)裝置。