周 信 馬 禎 蔣 奇 王 艷 閆 濤
(1.山東大學控制科學與工程學院,濟南 250061;2.內蒙古大學物理科學與技術學院,呼和浩特 010021)
溫度與濕度是糧倉、農業大棚及化工等領域的重要參數,因此必須對環境中的溫度和濕度進行實時檢測。傳統的溫濕度檢測完全依賴人工手段。這種方法不僅效率低下而且不能準確、實時地得出測量結果。近年來國內微機化溫濕度測控系統絕大部分采用模擬信號的溫濕度傳感器,測試點到控制器的接線為點到點,因而系統前向通道為模擬信號傳輸方式,這種方式接線復雜、布線困難,還存在抗干擾能力差、工作不穩定記系統測試精度低等問題。這種輸出模擬信號的傳感器往往需要對信號進行采集、放大、濾波及A/D轉換等,不僅硬件系統比較復雜而且系統容易出現故障[1,2]。鑒于此,筆者采用了數字式傳感器DHT11提出了一種溫濕度測控系統的設計與模擬,實現了實時多點監測溫濕度的功能,而且在溫濕度超過設定值時能及時報警并啟動風機或空調器改變溫濕度。
系統中所用的傳感器為含有已校準數字信號輸出的溫濕度復合傳感器DHT11。單片機采用型號為AT89C51系列的單片機。該系列單片機算術運算功能強、軟件編程靈活、自由度大,可用軟件編程實現各種算法和邏輯控制,并且由于其功耗低、體積小、技術成熟及成本低等優點,在各個領域得到應用廣泛[3]。報警器采用蜂鳴器進行報警。繼電器采用國產常開型過零繼電器SSR-H220D15。驅動電路采用一塊8路達林頓管驅動集成電路ULN2803。當輸入為低電平時,輸出達林頓管截止,負載無電流。當輸入為高電平時,輸出達林頓管飽和,負載就有電流流入輸出口。系統由數字式傳感器DHT11采集溫濕度,并將采集到的數據送給單片機進行處理,由LCD12864將采集到的數據進行顯示。當溫濕度值達到報警上、下限時,報警電路工作并發出報警聲,同時控制電路使能繼電器工作從而驅動風機和空調器。由鍵盤電路對報警上、下限進行設定,復位電路可以方便地實現對單片機的復位。系統的總體結構如圖1所示。

圖1 系統總體結構框圖
1.1.1檢測電路
檢測電路為由數據選擇器74L151構成的8路采集電路。數據選擇器的8路數據端子分別接8個DHT11的DATE端,數據選擇器的3個地址端分別接入開關K3、K4、K5的同時也接入單片機的P1.4、P1.6、P2.3引腳。數據選擇器根據K3、K4、K5的按下情況來決定接通哪一路傳感器。同時由單片機的引腳P1.4、P1.6、P2.3來判斷當前接入的是哪一路信號并在LCD上顯示通道序號。而且當這3個引腳中有任何一個引腳的值發生改變時系統都需要控制單片機復位一次而且僅復位一次,以免傳感器的時序發生錯誤造成讀取數據錯誤,這一點非常重要,可由軟件來實現。軟件中只需加入單片機的復位控制判斷程序即可。數據選擇器的輸出端接入單片機的P1.7引腳。檢測電路如圖2所示。

圖2 多路檢測電路的結構
DHT11數字傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能單片機連接。每個DHT11傳感器都在極為精確的濕度校驗室中進行校準。校準系數以程序的形式存在OTP內存中,傳感器內部在檢測信號的處理過程中要調用這些校準系數。傳感器的內部結構如圖3所示。

圖3 DHT11的內部結構
數據線DATA上傳輸的二進制數據0和1是由時序中的高電平所占時間來表示的。當數據傳送距離大于20m時,電源引腳(VDD、GND)之間應該增加一個100μF的電容,用以去耦濾波。一次完整的數據傳輸為40bit用時4ms左右,數據分小數部分和整數部分,應該注意的是DHT11傳感器的當前小數部分用于以后擴展,現讀出為零。因此本系統在LCD12864中顯示數據時只顯示到整數部分。
用戶MCU發送一次開始信號后,DHT11從低功耗模式轉換到高速模式,等待主機開始信號結束后,DHT11發送響應信號,送出40bit的數據,并觸發一次信號采集,用戶可選擇讀取部分數據。從模式下,DHT11接收到開始信號就觸發一次溫濕度采集,如果沒有接收到,主機發送開始信號,DHT11不會主動進行溫濕度采集。采集數據后轉換到低速模式。具體通信過程如圖4所示。

圖4 DHT11的通信過程
1.1.2單片機接口電路
鍵盤是一組按鍵的組合,該系統中使用獨立連接式非編碼鍵盤,每一個鍵占一個IO口線,按鍵功能可以根據需要靈活設計,軟件編程簡單。本系統中只需要兩個按鍵(K1、K2),用來調節報警值的上、下限。K1為上調,K2為下調。鍵盤與單片機的接口電路如圖5所示。本系統采用LCD12864顯示,其與單片機的接口電路如圖6所示。

圖5 鍵盤與單片機的接口電路
輸出驅動電路所控制的設備主要包括風機和空調器。可分別采用過零型固態繼電器來控制。本系統采用ULN2803作為驅動電路,ULN2803為8路達林頓管集成電路,有8路輸入和對應的8路輸出,輸入5V的TTL或CMOS電壓可直接驅

圖6 LCD12864與單片機的接口電路
動。輸出為500mA、50V。因為輸出是集電極開路,所以輸出負載的另一端需接正電源。10腳為8路輸出的續流二極管公共端,它是在驅動感性負載時用的,驅動感性負載時10腳接負載電源+V。9腳接地。繼電器采用國產交流固態繼電器SSR-H220D15。它是一種全部由固態電子元件組成的無觸點開關器件,利用電子元器件的特點,即磁和光特性來完成輸入與輸出的可靠隔離,并采用了大功率三極管、功率場效應管[4]。當單片機檢測到溫濕度值超過預警值時,P2.4、P2.5輸出控制信號觸發繼電器啟動外圍設備。ULN2803與單片機的接口電路如圖7所示。

圖7 ULN2803與單片機的接口電路
該系統是以AT89C51單片機為核心,采用C語言編程,模塊化設計。由主程序、讀出溫濕度程序、LCD12864顯示程序以及有關DHT11讀寫程序等組成。采取的模式為生產者與消費者結構。本系統設計的工作流程為:開始并初始化后,通過K1、K2按鍵改變溫濕度報警值,單片機復位,傳感器讀取溫濕度值,讀取成功后,線性擬合數據,然后LCD顯示數據,如果溫濕度過限則啟動報警并使能控制設備;如果數據在溫濕度上、下限范圍內,則顯示溫濕度值。同時可以通過K3、K4、K5改變采集通道。系統程序流程如圖8所示。
為了測試系統采集數據的可靠性與實用性,故對系統的數據采集部分進行了一系列測試實

圖8 系統軟件總體流程
驗。實驗在型號為DHG-9145的電熱恒溫鼓風干燥箱中進行。
測試系統溫度采集的時間響應曲線。系統的時間響應是指系統的輸出在時域上的表現形式。將測試時環境溫度(20.3℃)設為輸入最小值,觀察系統的輸出為20℃。打開干燥箱電源,設定溫度為50℃,將此溫度設置為輸入最大值。干燥箱中的溫度從室溫開始上升,待溫度達到設定值后,將系統放入烤箱,同時記錄系統在干燥箱中的溫度輸出值隨時間的變化,所得曲線如圖9a所示。當系統輸出穩定后,從干燥箱中拿出測試系統,放置于室溫下同時記錄系統的輸出隨時間下降的響應曲線,如圖9b所示。

圖9 系統采集溫度的時間響應曲線
測試系統濕度采集的時間響應曲線。取空氣中的濕度(29%RH)作為系統濕度輸入最小值,關閉電熱恒溫鼓風干燥箱電源,開啟加濕器,待電熱恒溫鼓風干燥箱空間中的相對濕度達到65%RH(系統濕度輸入最大值)后將系統放入該空間中,同時記錄系統輸出和相應的時間,當系統輸出達到設定值后關閉加濕器,同時拿出系統放置于空氣中并記錄系統的輸出和相應的時間,分別作出兩種情況下的時間響應曲線(圖10)。

圖10 系統采集相對濕度的時間響應曲線
系統重復性是指系統在檢測同一物理量時每次測量的不一致程度,也叫穩定性。將烤箱溫濕度分別設置為40℃、55%RH。重復6次對烤箱空間內的溫濕度進行測量得到系統的重復性曲線(圖11)。
在規定條件下系統的校準曲線與擬合直線間的最大偏差(ΔYmax)與滿量程輸出(Y)的百分比,稱為線性度,也稱為非線性誤差,該值越小,表明線性特性越好,表示為δ=ΔYmax/Y×100%[5]。將烤箱內溫濕度按10℃的梯度依次增加,分別測量每次的溫濕度。取6個點得到的線性度擬合曲線如圖12所示。

圖12 系統線性度曲線
經過上述對系統的各種實驗測試,可以得出系統的相關指標。系統的檢測精確度為:濕度±2%RH,溫度±1.5℃,分辨率為:濕度1%RH,溫度1℃。系統檢測溫濕度時的超調量幾乎為0,檢測溫度上升過程中的過度時間Ts最大為90s,檢測溫度下降過程中的Ts最大為93s。檢測濕度上升過程中的Ts最大為75s,檢測濕度下降過程中的Ts最大為90s。系統的線性度為1.5%。重復性:濕度2%RH,溫度1℃。溫濕度的檢測范圍:濕度20%RH~90%RH,溫度0~60℃。需要注意的是在50~60℃之間,系統的精確度、穩定性和時間響應都要受到影響。系統的上述指標能夠滿足測量過程中的檢測要求。
設計的溫濕度數據采集與控制系統利用74L151集成電路模塊完成了多點數據采集與控制功能。這種多點檢測的方法簡單可靠,能夠達到應用現場要求的性能指標。此外該系統還具有很好的可擴展性,可以添加中、短程無線通信模塊,使系統能夠在比較惡劣及危險等不適合人到達的地方進行工作,提高了系統的實用性;還可以利用串口與PC機相連接,將采集的信息在PC機上進行處理,例如可以繪制時間-溫濕度曲線,也可將信息發布到Web上,進行遠程操控。