倪 瑞,張萬達
(青島大學 自動化學院,青島266071)
目前隨著人們生活質量的不斷提高,對環境的溫濕度的需求也相應提高。為滿足人們對自身健康狀態和生活品質的追求,對溫濕度的監測和控制系統的研究就具有實際的應用價值。一些溫濕度系統使用二極管作為傳感器,其互換性差[1],為了滿足人們最佳的環境生活,我們需要研究一種簡單、高效的溫濕度檢測和控制裝置[2],便于提醒和控制人們工作和生活的溫濕度, 在不同的氣候和環境需求下,進行一定程度的調整,以便達到最佳的居住環境。針對這種需求,本文設計了基于AT89S51 單片機[3]和DHT11 溫濕度傳感器[4]的溫濕度監測與控制系統。
溫濕度監測和控制系統,主要功能為監測當前環境的溫濕度值;當溫濕度值高于系統設定的溫濕度閾值時,監測功能將以蜂鳴的形式報警,將溫濕度值傳輸到CPU 中進行處理,控制相應的繼電器吸合,進行加熱、降溫、加濕、除濕的操作,達到系統控制環境溫濕度的目的。本系統由5 個部分組成:溫濕度采集、數據處理、用戶交互、系統控制、上位機顯示。
溫濕度采集由DHT11 傳感器實現,它可以將采集到的數據傳遞到AT89S51 芯片中;數據處理通過AT89S51 單片機進行數據處理, 經過它的運算分析,將沒有超過預設值的溫濕度數值在LCD 屏上顯示,完成環境檢測功能。假設當前溫濕度值超過了設定的閾值,則指示蜂鳴器報警,并引導系統控制模塊中的相應裝置運行;用戶交互包含按鍵、蜂鳴器、液晶屏等硬件,用于設定溫濕度閾值、報警、實時獲取溫濕度值, 給用戶進行參考; 系統控制由AT89S51、繼電器、加熱裝置、降溫風扇、干燥器、加濕器組成, 通過系統控制模塊可以控制本設備加熱、降溫、加濕、除濕操作;上位機顯示,在計算機端顯示實時溫濕度數據,溫濕度變化實時,與液晶顯示屏數據一致。
依據以上對系統的功用剖析系統的結構原理圖即圖1所示。

圖1 溫濕度監測與控制系統架構圖Fig.1 Architecture of temperature and humidity monitoring and control system
通過上圖可以看出,AT89S51 是整個系統的核心, 各個分模塊圍繞AT89S51 展開功能, 其中DHT11 傳感器是經校準的數字信號輸出復合傳感器,負責測量和傳輸溫濕度數據[5];LCD 顯示部分完成了在系統裝置上的顯示;上位機部分實現了在計算機端的顯示;按鈕完成初始數值的預設;蜂鳴報警器完成了報警功能; 系統控制部分完成了加熱、散熱、加濕、除濕功能的實現。
1.2.1 溫濕度傳感器DHT11
DHT11 溫濕度傳感器通過內部取值,將采集到的溫濕度模擬量轉換成數據量,直接進行取值和運算,性能穩定、可靠。DHT11 傳感器內含了溫濕度數據校準功能,可以將校準后的溫濕度數字送入自帶的緩存中,進行存儲,待和單片機建立通訊后,可以將這些數據送入芯片中進行通訊。DHT11 響應快速,抗干擾強,信號傳輸距離遠,性價比高[6]。
1.2.2 AT89S51 單片機
AT89S51 具有編程的功能,特別對于聯機設備,可在不停機的情況下,執行嵌入式在線編程,重置后方可查看實際的效果。它的存儲功能,即使出現了突然斷電等異常情況,仍然能良好的保存先期存儲數據。
1.2.3 LCD 液晶顯示屏
本系統的液晶顯示屏,要能顯示中文、英文、數字和溫濕度單位,為此我們使用LCD1602 字符型液晶屏。對于功能較為強大的顯示器,因為限制于裝置的問題, 加之與之通信的單片機通信能力有限,所以一定要等液晶屏初始化之后,才能良好的顯示數據。
溫濕度監測的流程:當系統開始運行后,全部裝置進行初始化操作, 蜂鳴報警器初始化鳴叫后,證明其功能正常;LCD1602 液晶屏初始化后, 顯示預設值, 并等待數據傳輸;DHT11 溫濕度傳感模塊開始采集環境中的溫濕度值, 并通過數據轉換,傳送給AT89S51 單片機;AT89S51 根據DHT11 傳來的溫濕度數據值做出判斷,如果溫濕度數值沒有超過預設值,則與LCD1602 液晶屏通信,完成當前溫濕度值顯示,若溫濕度數值超過閾值,則報警器報警,監測流程如圖2所示。

圖2 溫濕度監測流程Fig.2 Flow chart of temperature and humidity monitoring
系統控制的過程如下:當AT89S51 單片機在執行完檢測功能后,判斷出當前的溫濕度數值超出了預設值,則通過內部程序處理,將相關繼電器吸合,從而為加熱裝置、降溫裝置、加濕裝置、除濕裝置加電,完成控制相對應的外設設備的啟動;當外界溫濕度數值在預設值范圍后,AT89S51 要關閉繼電器,為相應的外設設備斷電,溫濕度系統控制流程如圖3所示。

圖3 溫濕度系統控制流程Fig.3 Flow chart of temperature and humidity control system
為保證上位機與LCD1602 顯示的數據同步,采用RS232 串口通訊,使用Visual Basic 編程。上位機界面顯示了預先設置的溫度上限值, 溫度下限值,當前溫度值,濕度上限值,濕度下限值,當前濕度值。加濕繼電器、去濕繼電器、加熱繼電器、降溫繼電器的開關狀態。上位機運行界面如圖4所示。

圖4 上位機運行界面Fig.4 Operating interface of host computer
此界面顯示溫度上限值是30 ℃,溫度下限值是6 ℃,當前溫度是25 ℃,濕度上限值是74%,濕度下限值是40%,當前濕度值是30%。因為當前濕度值在預設的濕度下限值以下,于是加濕繼電器呈現打開狀態,使當前濕度增大,達到預設的濕度范圍。
經過對溫濕度監測與控制系統的硬件及軟件環節的調試,本次溫濕度檢測與控制系統功能得到了實現,達到了系統設計之初,對生活環境溫濕度的實時監測與控的各項目的。此外,該系統也可用于其他環境下得溫濕度監測與控制,具有很好的移植性和廣泛的應用性。