張晨洋, 文歡, 李薇, 劉權志, 祁博
(新疆農(nóng)業(yè)大學,計算機與信息工程學院,新疆,烏魯木齊 830052)
隨著社會發(fā)展和科技進步,人們對于物品儲藏的需求更加多樣化。不同的物品有著不同的儲藏溫度,例如,一些特殊藥品需要在0~8 ℃恒溫儲藏,飯菜在60 ℃保溫可防止細菌滋生,紅酒需儲藏在10~15 ℃的溫度條件下,而香煙、茶葉則需低溫儲藏[1-2]。同時,在農(nóng)業(yè)、醫(yī)藥、化學、物流等多領域?qū)ξ锲泛銣貎Υ娣矫娑加兄煌男枨?如農(nóng)業(yè)生產(chǎn)種植過程中對和子的儲存,醫(yī)藥領域常用于血液、藥劑等物品的儲藏,化學實驗室藥品的存放以及物流中對食品的冷鏈運輸?shù)萚3-4]。因此,設計一款可以智能調(diào)節(jié)溫度的儲物柜顯得至關重要。
本文基于AT89C51單片機設計一種智能恒溫儲物柜。當電源開啟時,該恒溫儲物柜內(nèi)溫度檢測模塊開始實時檢測溫度數(shù)據(jù),并通過液晶顯示儲物柜內(nèi)溫度及閾值,在實時溫度超過閾值時聲光報警。使用者無須一直關注儲物柜內(nèi)的溫度,可在聲光報警時查看當前結(jié)果,確定系統(tǒng)是否正常工作[5-7]。
本設計采用AT89C51單片機作為控制主體,DS18B20溫度傳感器模塊實時檢測儲物柜內(nèi)溫度,并將測得的溫度數(shù)據(jù)傳送至單片機進行處理,單片機根據(jù)測得的溫度數(shù)據(jù)通過繼電器驅(qū)動對恒溫控制模塊進行智能控制,實現(xiàn)自動化的恒溫控制功能。同時,將溫度數(shù)值及閾值顯示在LCD1602模塊上,當溫度超過閾值時,進行聲光報警。恒溫控制系統(tǒng)整體設計如圖1所示。
圖1 恒溫控制系統(tǒng)整體設計框圖
智能恒溫儲物柜包括溫度檢測模塊、恒溫控制模塊、顯示模塊、報警模塊及按鍵模塊,其硬件電路設計如圖2所示。
圖2 智能恒溫儲物柜的整體電路原理圖
溫度傳感器是溫度檢測模塊的核心。采用AT89C51作為控制主體,當儲物柜接通電源時,DS18B20溫度傳感器立刻將儲物柜內(nèi)測得的實時溫度發(fā)送至單片機處理,單片機判斷實時溫度超出閾值范圍后,繼電器驅(qū)動相應負載進行工作,從而實現(xiàn)溫度的恒溫控制[8]。
DS18B20是一種體積小、精度高、抗干擾能力強的溫度傳感器。該傳感器精度可達±0.5 ℃,可檢測溫度范圍為-55~125 ℃。DS18B20有3個引腳,分別為電源引腳VCC和GND,以及1個數(shù)據(jù)引腳,用來讀取溫度數(shù)據(jù)[9]。溫度檢測模塊電路如圖3所示。
圖3 溫度檢測模塊電路圖
恒溫控制模塊是儲物柜實現(xiàn)恒溫儲藏的關鍵所在。恒溫控制模塊由繼電器、制熱模塊和制冷模塊構(gòu)成,使智能恒溫儲物柜內(nèi)溫度在0~60 ℃的范圍內(nèi)進行調(diào)節(jié)。其中:繼電器采用PNP型三極管驅(qū)動,低電平導通,同時與LED并聯(lián),通過LED燈的亮滅判斷繼電器是否正在工作;制熱模塊采用220 V加熱片的加熱方式;制冷模塊采用半導體制冷片提供冷氣來源,其外部接有2個風扇,分別達到散熱和風冷的效果,這樣不會使得閾值設置過低,從而發(fā)生恒溫儲物柜內(nèi)起霜的現(xiàn)象。恒溫控制模塊具體電路如圖4所示。
采用LCD1602作為液晶顯示模塊,LCD1602擁有16個引腳,16列2行,可顯示32個字符。1腳VSS接地,2腳VDD接電源正極,3腳VEE控制液晶的清晰度,RS、RW、E為液晶控制引腳,D0~D7為8個數(shù)據(jù)接口[10]。顯示模塊具體電路如圖5所示。
圖5 顯示模塊電路圖
報警模塊由1個蜂鳴器、PNP型三極管和電源構(gòu)成。它的作用是讓使用者知道此時儲物柜內(nèi)的溫度已經(jīng)低于或高于所設置的閾值范圍。通過按鍵手動設置閾值范圍,從上到下3個按鈕依次是:設置鍵、減數(shù)鍵、加數(shù)鍵。按下設置鍵后,首先調(diào)節(jié)的是閾值上限,通過減數(shù)鍵和加數(shù)鍵去調(diào)整閾值。若要調(diào)整閾值下限,再次按下設置鍵即可。報警模塊及按鍵模塊具體電路如圖6所示。
圖6 報警模塊及按鍵模塊電路圖
判斷實時溫度是否超出閾值范圍是軟件設計的核心。本文軟件設計用到功能模塊化的設計方式,利用Keil uVi-sion 5進行編程,智能恒溫儲物柜的軟件結(jié)構(gòu)與硬件設計相對應。其主要分為主程序設計模塊、溫度檢測模塊、恒溫控制模塊、液晶顯示模塊、報警模塊和按鍵模塊6個部分。
當溫度檢測模塊讀取到溫度并將溫度數(shù)據(jù)發(fā)送至單片機后,顯示模塊將溫度數(shù)據(jù)轉(zhuǎn)換成溫度數(shù)值,顯示在LCD1602模塊上,單片機判斷溫度是否超出閾值。若溫度沒有超出閾值,則再次讀取實時溫度數(shù)據(jù);若溫度超出閾值,則繼電器驅(qū)動相應負載進行工作;溫度超出上限則驅(qū)動制冷風扇;溫度低于下限則驅(qū)動加熱片進行工作。負載工作時與其并聯(lián)的LED指示燈保存常亮,故障時蜂鳴器報警。軟件設計流程如圖7所示。
圖7 軟件設計流程圖
3.1.1 溫度檢測模塊及恒溫控制模塊
智能恒溫儲物柜接通電源后,DS18B20溫度傳感器開始檢測儲物柜內(nèi)實時溫度,讀取溫度數(shù)據(jù)。讀取溫度寄存器時,先讀低8位數(shù)據(jù),后讀高8位數(shù)據(jù),然后放大10倍輸出。獲得溫度數(shù)值后,發(fā)送至單片機,與設置的閾值范圍進行對比,驅(qū)動相應的負載進行工作,從而實現(xiàn)恒溫控制。溫度檢測及恒溫控制流程如圖8所示。
圖8 溫度檢測及恒溫控制流程圖
讀取溫度數(shù)據(jù)部分代碼如下所示。
Init_DS18B20();
WriteOneChar(0xCC);
WriteOneChar(0x44);
Init_DS18B20();
WriteOneChar(0xCC);
WriteOneChar(0xBE);
a=ReadOneChar();
b=ReadOneChar();
3.1.2 報警模塊
系統(tǒng)根據(jù)設定好的上限報警溫度和下限報警溫度,通過單片機的判斷,若智能恒溫儲物柜實時溫度超過上、下限報警溫度,則啟動蜂鳴器進行報警,提醒使用者檢查恒溫儲物柜是否正常工作。報警流程如圖9所示。
圖9 報警流程圖
報警模塊部分代碼如下所示。
if(x>=10){beep_st=~beep_st;x=0;}
if(Mode==0)
{
if((c/10)>=TH)
{
ALAM=0;
ALAM1=1;
if(beep_st==1)
BUZZ=0;
else
BUZZ=1;
}
else if((c/10) { ALAM1=0; ALAM=1; if(beep_st==1) BUZZ=0; else BUZZ=1; } else { BUZZ=1; ALAM=1; ALAM1=1; } } 3.1.3 液晶顯示模塊 液晶顯示模塊調(diào)用了液晶寫入指令函數(shù)以及液晶寫入數(shù)據(jù)函數(shù)。智能恒溫儲物柜利用1602液晶顯示模塊,調(diào)用液晶初始化函數(shù)進行工作模式的設置、光標移動、清除顯示等操作。液晶顯示的數(shù)據(jù)內(nèi)容包括儲物柜內(nèi)實時溫度、上限報警溫度和下限報警溫度。液晶顯示流程如圖10所示。 圖10 液晶顯示流程圖 液晶顯示模塊部分代碼如下所示。 void write_1602com(uchar com) { RS=0; rw=0; LCD1602=com; delay(1); EN=1; delay(1); EN=0; } void write_1602dat(uchar dat) { RS=1; rw=0; LCD1602=dat; delay(1); EN=1; delay(1); EN=0; } 3.1.4 設置模塊 這個系統(tǒng)還定義設置鍵、減少鍵以及增加鍵用于設定上限報警溫度和下限報警溫度的數(shù)值。通過代碼編寫,設定當設置鍵按下時,可通過減少鍵和增加鍵進行數(shù)值的加減,通過設置鍵的多次按動,可實現(xiàn)上、下限報警溫度數(shù)值的選擇,當設置模塊啟動時,報警程序不執(zhí)行,蜂鳴器不工作。溫度閾值設置流程如圖11所示。 圖11 溫度閾值設置流程圖 設置模塊部分代碼如下所示。 if(ADD==0&&Mode==1) { BUZZ=0; delay(10); if(ADD==0) { TH++; if(TH>=99) TH=99; write_1602com(0x80+0x40+3); write_1602dat(TH/10+0x30); write_1602dat(TH%10+0x30); write_1602com(0x80+0x40+4); BUZZ=1; } while(ADD==0); } 智能恒溫儲物柜實物如圖12所示。將恒溫儲物柜置于22 ℃的室溫內(nèi)進行測試,通過按鍵模塊設置溫度閾值為20~30 ℃,此時溫度處于閾值范圍內(nèi),無負載工作。當溫度閾值設置為25~30 ℃時,此時室溫低于溫度閾值下限,紅色LED指示燈亮起,繼電器驅(qū)動負載加熱片工作,提高儲物柜內(nèi)溫度。當溫度閾值設置為0~8 ℃時,此時室溫高于溫度閾值上限,黃色LED指示燈亮起,表示繼電器驅(qū)動負載制冷風扇工作,降低儲物柜內(nèi)溫度。實物運行結(jié)果如圖13所示。實物測試結(jié)果如表1所示。 表1 實物測試結(jié)果 圖12 實物圖 圖13 實物運行結(jié)果圖 本文設計了一款基于AT89C51單片機智能恒溫儲物柜,主要闡述了恒溫控制的實現(xiàn)方法。其中,硬件設計包括溫度檢測模塊、恒溫控制模塊、顯示模塊、報警模塊及按鍵模塊5個模塊。軟件設計主要是單片機對溫度傳感器采集數(shù)據(jù)的處理和控制。通過對實物運行結(jié)果的分析,該儲物柜已實現(xiàn)設計方案所預期的功能,可實現(xiàn)智能化、自動化的恒溫儲藏,具備安全性強、制冷制熱效率高等特點,應用前景廣泛。4 實物測試
5 總結(jié)