本文提出了一種以智能數字溫度傳感器DS18B20和單片機AT89C52為基礎,可在室內場所(如居室、辦公室、小型倉庫)使用的多點溫度檢測與自動調節(jié)系統(tǒng)設計方案。
1、系統(tǒng)硬件設計
室內溫度檢測與調控系統(tǒng)的基本功能要求是:能夠實時檢測并顯示室內的環(huán)境溫度,并可根據用戶要求設定溫度閾值,當室內溫度在所要求的正常范圍內時,系統(tǒng)將采集到的溫度數據實時顯示,在監(jiān)測到的環(huán)境溫度超過閾值時,系統(tǒng)發(fā)出告警提示并開啟溫度自動調節(jié)開關,控制溫度調節(jié)設備實施環(huán)境溫度自動調節(jié)。根據以上要求,構建系統(tǒng)結構如下圖1所示。
在此次系統(tǒng)設計過程中,溫度傳感器選擇DALLAS公司生產的智能數字溫度傳感器DS18B20。該傳感器因具有的功能集成化、輸出信號數字化,控制簡單化等特點而廣泛應用于溫度檢測系統(tǒng)的設計中。在0~100℃時,DS18B20zui大線形偏差小于1℃:有效的測溫范圍為-55~+125℃;編程實現9~12位的數字值讀數方式,測溫分辨率為0.0625℃;被測溫度用符號擴展的16位數字量方式串行輸出。
DS18B20將地址線、數據線、控制線合為1根雙向串行數據的信號線,并允許在這根信號線上接多個DS18B20;可由單片機處理及控制,多個DS18B20可以并聯到3根或兩根線上,處理器只需1根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路,所設計電路簡潔,抗干擾性能強;其工作電源既可在遠端引入,也而采用寄生電源方式產生。
系統(tǒng)控制器采用AT89C528位單片機,該單片機軟件編程的自由度大,可通過編程實現各種各樣的算術算法和邏輯控制。而且體積小,硬件實現簡單,安裝方便,可以單獨實現對多個DS18B20控制工作。
1.1溫度數據采集
由于室內環(huán)境溫度受光照、儲物密度、人流量等因素的影響較大,為了保證測量數據的準確性和調節(jié)控制功能執(zhí)行的有效性,在實現溫度數據采集時采用多點檢測方式,即通過在室內布設多個溫度檢測點,由各檢測點將采集到的數據送往系統(tǒng)控制器分析比較,當5個檢測點中有3個以上的檢測結果超過閾值后,認定當前環(huán)境溫度超限,實施告警和調節(jié)控制功能。根據以上要求設計的溫度采集模塊結構如下圖2所示。
溫度數據采集模塊中DS18B20采用外部供電方式,理論上可以在一根數據總線上掛256個DS18B20,但實踐中發(fā)現.如果掛接25個以上的DS18B20仍舊有可能產生功耗問題。另外單線長度也不宜超過80m,否則也會影響到數據的傳輸。在這種情況下,可以采用分組的方式,用單片機的多個I/O來驅動多路DS18B20。在實際應用中還可以使用一個MOSFET將I/O口線直接和電源相連,起到上拉的作用。
1.2鍵盤控制模塊
由于在本系統(tǒng)中允許用戶按照實際要求設定溫度閾值,用戶可根據對室內環(huán)境溫度要求,設定所允許的zui高或zui低溫度參數,當環(huán)境溫度超此限度后,實施告警及自動溫度調節(jié)功能。本系統(tǒng)中設置4個按鈕開關,分別與單片機P1.0、P1.1、P1.2、P1.3口相連,分別實現手動復位,閾值設定選擇、數值加、數值減等功能。
1.3系統(tǒng)顯示模塊
通過該模塊實現采集溫度數據的實時顯示功能,給用戶提供直觀的溫度測量數據。該模塊設計采用LCD1602來實現,LCD1602與單片機連接電路如下圖3所示。
1.4報警及溫度自動調節(jié)電路
該模塊的基本功能是在室內實際的測量溫度達到用戶設定閾值的時候實施報警及溫度自動調節(jié)功能。報警功能采用的是zui簡單的蜂鳴器,報警持續(xù)時間可設定為30s(主程序流程圖中在報警控制之后加報警時間判定)。溫度自動調節(jié)功能通過在單片機P1.7口接繼電器J1,繼電器J1作為溫度調節(jié)設備(如空調)的電源通斷開關。當檢測到的溫度數據在正常范圍內時,三極管VQ2處于截止狀態(tài),J1斷開;當超過閾值時P1.7變?yōu)楦唠娖?,三極管由截止變?yōu)轱柡?,J1觸點閉合,則溫度調節(jié)設備的電源開關接通,實施溫度調節(jié),直至溫度達到設定要求,P1.7變?yōu)榈碗娖剑琂1斷開,完成溫度自動調節(jié)過程。該部分電路如下圖4所示。
2、系統(tǒng)軟件設計
DS18B20的信號線與單片機AT89C52的P3.0口相連,通過系統(tǒng)軟件控制,實現信號的輸出或者讀取。其中對溫度數據的讀取包括DS18B20序列號搜索、溫度轉換、溫度數據讀取3個基本過程。系統(tǒng)工作時,首先通過初始化操作,使總線上的所連接DS18B20均被復位,接著發(fā)送ROM搜索指令,使序列號編碼匹配的DS18B20被激活,準備接受RAM訪問指令。RAM訪問指令控制處于激活狀態(tài)的DS18B20工作狀態(tài),完成溫度轉換及讀取等工作。在ROM命令發(fā)送之前,RAM命令不起作用。
本系統(tǒng)中設定5個溫度檢測點,通過在總線上掛接5個DS18B20實現,當其中的某一個DS18B20被激活時,將所采集到的數據通過單片機P3.0送往主控機轉換分析,在主控器上實時顯示,并由主控器對所采集到的數據與設定的閾值比較,每檢測到一次溫度數據超過閾值,超限檢測點數I自加1,直到I的數值大于等于3時,單片機P3.6口輸出控制信號,使蜂鳴器報警,同時P1.7口送出控制電平,使繼電器J1吸合,溫度調節(jié)開關接通,實施溫度調節(jié)功能。