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

圖3 溫度測量試驗
經過不同時間段的3 組試驗測量后,得到最終數據(見表2)。通過試驗數據可知,該測溫系統在環境溫度為0 ℃~50 ℃的條件下基本可以準確無誤地完成溫度測量報警工作。同時,反應時間不超過5 s,可以在相關行業發揮應有的作用。值得注意的是,當溫度處于過高或過低的狀態時,該系統的工作性能明顯下降。

表2 試驗測量數據
使用引用誤差來衡量該測溫系統的可靠性,引用誤差是絕對誤差與測量系統量程的比值,通常以百分數表示,如公式(1)所示。
式中:r0為引用誤差;δ為絕對誤差(測量值-真實值);L為測量系統量程。
取所有絕對誤差的平均值作為該測量系統在0 ℃~50 ℃的絕對誤差參考值(試驗測試的溫度區間),再引入平均相對誤差計算公式,如公式(2)所示。
式中:r1為n次測量平均誤差;δi為第i次試驗的絕對誤差;L為測量系統量程。
將表2 的數據代入公式(1)、公式(2),計算得到該系統的平均相對誤差r1=1.4%。
絕對誤差與環境溫度的散點圖如圖4 所示,將絕對誤差絕對值大于0.5 ℃的樣本標為實心圓,高溫組(30 ℃以上)測量結果的絕對誤差全都大于0.5 ℃,低溫組(10 ℃以下)中出現了1 組絕對誤差大于0.5 ℃的數據,常溫組(10 ℃~20 ℃)的絕對誤差均在0.5 ℃以內。綜上所述,該溫度測量報警系統模型在常溫條件(10 ℃~20 ℃)下的測量誤差較小,在低溫條件(10 ℃以下)下的測量誤差基本滿足需求,高溫條件的測量結果的絕對誤差較大。

圖4 絕對誤差與環境溫度的關系
該系統可以在0 ℃~30 ℃的區間內比較精確地進行實時溫度檢測與測量(分辨率為0.1 ℃),高溫環境下的測量精度不高,未來可以在試驗電路的基礎上使用溫度補償電路進行改進。以數字傳感器為核心的溫度測量系統未來可以與多種網絡信息傳輸模塊兼容使用,進一步提高該系統的工作效率。