王青楊 谷鈞桐 丁佩豪 高占良 王 翔
(1.河北師范大學(xué)中燃工學(xué)院,河北 石家莊 430072;2.河北鵬博通信設(shè)備有限公司,河北 滄州 061000)
溫度測量方法較多,根據(jù)溫度傳感器的使用方式,通??梢园褱囟葴y量方法分為接觸式法測溫法和非接觸式法測溫法。
熱敏電阻是最常用的接觸式測溫法之一,其廣泛應(yīng)用于工農(nóng)業(yè)生產(chǎn)中。傳統(tǒng)的熱敏電阻傳感器需要搭配測量電路和其他電路進(jìn)行信號處理,導(dǎo)致其可靠性、準(zhǔn)確度和精確度降低[1]。針對上述問題,美國DALLAS 公司新推出了一種新型數(shù)字溫度傳感器-DS18B20,它具有功耗低、抗干擾能力強等優(yōu)點[2]。該文介紹了一種以DS18B20 數(shù)字傳感器和AT89C51 系列單片機為核心的環(huán)境溫度測量報警系統(tǒng),該系統(tǒng)不僅可以實時測量溫度,而且還可以根據(jù)用戶需要,當(dāng)環(huán)境溫度出現(xiàn)異常時進(jìn)行報警提醒。同時,測得的溫度數(shù)據(jù)會實時顯示在輸出設(shè)備上,為用戶提供實時溫度。其硬件部分主要包括時鐘電源電路、數(shù)碼管顯示電路、溫度測量報警電路以及獨立開關(guān)按鍵電路,軟件部分主要包括獨立按鍵觸發(fā)檢測程序、溫度異常判決程序。該系統(tǒng)結(jié)構(gòu)簡單、成本較低且抗干擾能力極高,可以應(yīng)用于農(nóng)業(yè)種植溫室室溫監(jiān)測等場景,幫助相關(guān)產(chǎn)業(yè)提高工作效率,降低建設(shè)和維護(hù)所需的成本。
DS18B20 模塊是一款由美國DALLAS 半導(dǎo)體公司設(shè)計的數(shù)字溫度傳感器,它具有成本低廉、傳輸高效以及電路簡單的特點。該模塊工作電壓范圍寬(3.0 V~5.5 V),并且當(dāng)電源反接時不會立即燒毀。
DS18B20 模塊具有4 種工作模式,對應(yīng)4 種不同的分辨率和轉(zhuǎn)換時間。通過改變配置寄存器中的R1位和R0位(R0R1是配置寄存器中的2 個數(shù)位)可以對DS18B20 模塊的工作模式進(jìn)行設(shè)置,不同模式的工作參數(shù)見表1。
整個測溫系統(tǒng)分為的4 個板塊(如圖1 所示),通過與AT89C51 系列單片機進(jìn)行交互,共同完成環(huán)境溫度監(jiān)測報警工作。時鐘和電源為整個系統(tǒng)提供工作環(huán)境,獨立按鍵可以幫助用戶設(shè)置溫度的上、下限,DS18B20 模塊將測得的實時溫度發(fā)送給單片機,單片機將數(shù)據(jù)輸出至顯示模塊(反饋給用戶)。
硬件系統(tǒng)主要由3 個電路組成,分別是作為輸入端的溫度測量報警電路、作為輸出端的顯示電路以及維持單片機工作的時鐘和電源電路。其中,電源和時鐘電路給整個系統(tǒng)提供工作環(huán)境,試驗?zāi)P碗娐返妮斎氩糠种饕捎?個獨立按鍵開關(guān)來收集用戶的操作信息并傳遞給單片機,試驗?zāi)P碗娐返妮敵霾糠种饕捎? 位數(shù)碼管顯示模塊和蜂鳴器向用戶反饋實時數(shù)據(jù)。
微控制器電路如圖2(a)所示,它是整個系統(tǒng)的核心,需要1 個時鐘信號才能工作, 執(zhí)行單片機指令、傳輸數(shù)據(jù)都是以時鐘信號為參考。通常,1 個系統(tǒng)共用1 個晶振, 便于各部分保持同步。電源電路為整個系統(tǒng)提供直流電源,為電路中起到功放作用的三極管和所有模塊內(nèi)部的半導(dǎo)體邏輯器件提供靜態(tài)偏置。
該系統(tǒng)模型圍繞12 MHz 晶振搭建時鐘信號電路,并使用3 節(jié)LR6 1.5 V 電池串聯(lián)供電。時鐘和電源電路原理如圖2(b)所示,P2模塊是電源接入模塊,獨立按鍵是單片機復(fù)位按鈕。顯示電路原理圖如圖2(c)所示。考慮電路和程序的簡潔性,采用較為簡單的DS04 數(shù)碼管來輸出溫度值,精確到0.1 ℃。P1負(fù)責(zé)傳輸溫度值對應(yīng)的段碼,P3的后4 位則是傳輸位碼,決定數(shù)碼管輸出段碼的數(shù)位。這里也可以采用74HC573 鎖存器作為單片機和數(shù)碼管信息交互橋梁,可以節(jié)約引腳資源,為后續(xù)的開發(fā)和改進(jìn)預(yù)留空間。
溫度測量報警電路的原理圖如圖2(d)所示,它以DS18B20 模塊為核心,將AT89C51 系列單片機的P2.4口作為傳感器與單片機的交互I/O 端口,通過程序控制上電來操作傳感器。報警電路有3 個獨立按鍵,分別代表“溫限加”“溫限減”和“模式切換”,3 個按鍵分別連接51 單片機的P2.4、P2.2和P2.1引腳,以便檢測模式切換信號和溫度上、下限改變信號。DS18B20 的測溫過程主要依靠對溫度敏感度性差別較大的2 個晶振元件的震蕩次數(shù)進(jìn)行計數(shù),以得到環(huán)境溫度值。其中,高溫度系數(shù)晶振的震蕩頻率往往隨溫度的變化而變化,而低溫度系數(shù)晶振的震蕩頻率幾乎不隨環(huán)境溫度的變化而變化。
該文所用的DS18B20 模塊型號為TO-92 封裝形式,外觀上與三極管較相似。模塊共有3 個引腳,分別為電源VCC引腳、數(shù)據(jù)I/O 引腳以及接地端。通過給數(shù)據(jù)引腳接高低電平并延時進(jìn)行讀寫操作。當(dāng)數(shù)據(jù)分辨率的需求越高時,每單位分辨率所需的時間代價增加得也越來越快。因此,在高精度的工作要求下,該系統(tǒng)的工作速率會降低。
軟件系統(tǒng)主要包括整個系統(tǒng)的初始化程序、獨立按鍵觸發(fā)檢測程序和溫度異常判決程序。初始化主要包括DS18B20 模塊的上電初始化、變量引腳之間的對應(yīng)關(guān)系和EEPROM 的初始化。EEPROM 是51 單片機中寫入相應(yīng)字節(jié)的數(shù)據(jù)自動保存的存儲器,需要用C 程序打開,同時也可以通過相應(yīng)操作對所存的數(shù)據(jù)進(jìn)行擦除[3]。從EEPROM中讀取數(shù)據(jù)并存入目標(biāo)變量中,與預(yù)設(shè)的溫度上、下限進(jìn)行比較,當(dāng)實時溫度高于上限溫度或低于下限溫度時,蜂鳴器報警。
通過P2和0x0f 位依次檢測4 個獨立按鍵是否接地,如果檢測到低電平輸入,就讀取鍵值并反應(yīng)。按鍵檢測部分的部分代碼如下。
static uchar key_new =0,key_old=0,key_value=0;
If(key_new==0)
If((P2 & 0x0f)== 0x0f)key_value ++;
從節(jié)約能源的角度出發(fā),在用戶進(jìn)入溫度上、下限調(diào)節(jié)程序后,計時器開始計時,如果用戶長時間未進(jìn)行操作,那么系統(tǒng)將在15 s 后自動退出設(shè)置模式。
標(biāo)準(zhǔn)水銀溫度計直到現(xiàn)在仍然是溫度測量領(lǐng)域重要的標(biāo)準(zhǔn)器之一[4]。該試驗(如圖3 所示)以普通水銀溫度計提供的數(shù)據(jù)為標(biāo)準(zhǔn)溫度進(jìn)行誤差計算。共設(shè)置3 組:低溫組(10℃以下)、常溫組(10℃~20℃)和高溫組(30℃以上),每組各進(jìn)行5 次試驗。為了保證每組試驗數(shù)據(jù)盡量不受其他因素的干擾,該試驗在同一試驗場所完成。
圖3 溫度測量試驗
經(jīng)過不同時間段的3 組試驗測量后,得到最終數(shù)據(jù)(見表2)。通過試驗數(shù)據(jù)可知,該測溫系統(tǒng)在環(huán)境溫度為0 ℃~50 ℃的條件下基本可以準(zhǔn)確無誤地完成溫度測量報警工作。同時,反應(yīng)時間不超過5 s,可以在相關(guān)行業(yè)發(fā)揮應(yīng)有的作用。值得注意的是,當(dāng)溫度處于過高或過低的狀態(tài)時,該系統(tǒng)的工作性能明顯下降。
表2 試驗測量數(shù)據(jù)
使用引用誤差來衡量該測溫系統(tǒng)的可靠性,引用誤差是絕對誤差與測量系統(tǒng)量程的比值,通常以百分?jǐn)?shù)表示,如公式(1)所示。
式中:r0為引用誤差;δ為絕對誤差(測量值-真實值);L為測量系統(tǒng)量程。
取所有絕對誤差的平均值作為該測量系統(tǒng)在0 ℃~50 ℃的絕對誤差參考值(試驗測試的溫度區(qū)間),再引入平均相對誤差計算公式,如公式(2)所示。
式中:r1為n次測量平均誤差;δi為第i次試驗的絕對誤差;L為測量系統(tǒng)量程。
將表2 的數(shù)據(jù)代入公式(1)、公式(2),計算得到該系統(tǒng)的平均相對誤差r1=1.4%。
絕對誤差與環(huán)境溫度的散點圖如圖4 所示,將絕對誤差絕對值大于0.5 ℃的樣本標(biāo)為實心圓,高溫組(30 ℃以上)測量結(jié)果的絕對誤差全都大于0.5 ℃,低溫組(10 ℃以下)中出現(xiàn)了1 組絕對誤差大于0.5 ℃的數(shù)據(jù),常溫組(10 ℃~20 ℃)的絕對誤差均在0.5 ℃以內(nèi)。綜上所述,該溫度測量報警系統(tǒng)模型在常溫條件(10 ℃~20 ℃)下的測量誤差較小,在低溫條件(10 ℃以下)下的測量誤差基本滿足需求,高溫條件的測量結(jié)果的絕對誤差較大。
圖4 絕對誤差與環(huán)境溫度的關(guān)系
該系統(tǒng)可以在0 ℃~30 ℃的區(qū)間內(nèi)比較精確地進(jìn)行實時溫度檢測與測量(分辨率為0.1 ℃),高溫環(huán)境下的測量精度不高,未來可以在試驗電路的基礎(chǔ)上使用溫度補償電路進(jìn)行改進(jìn)。以數(shù)字傳感器為核心的溫度測量系統(tǒng)未來可以與多種網(wǎng)絡(luò)信息傳輸模塊兼容使用,進(jìn)一步提高該系統(tǒng)的工作效率。