李 強,田國棟
(長安大學 信息工程學院,陜西 西安 710064)
溫度在工農業生產中起著舉足輕重的作用,在冶金、醫藥、食品制造和化學制造業等行業尤其顯得重要。在適當的溫度下生產的產品質量、產量和合格率會大大的提高。有些藥品的生產和存儲要在很低的溫度下進行;石油分餾的過程中在不同的溫度下才能分離出汽油、柴油、煤油、硫化物;食品的制造和存儲也要在特定的溫度下才能保證質量。在農業大棚蔬菜和室內圈養牲畜對于環境溫度的要求也很高,大棚蔬菜的溫度基本上要保證在20~30℃,雞舍的育雛期溫度要控制在36℃左右。隨著社會生產力和科學技術的發展,工農業生產對于溫度的要求會越來越高,這樣就需要系統不但可以測出室內的實際溫度,還可以通過上位機來進行實時的控制,調整環境的溫度。
本系統分為上位機模塊、單片機模塊、溫度采集模塊、加熱模塊。上位機采用的是用VC++6.0的軟件環境來編寫一個控制界面,用來控制下位機的ATmage8單片機,并且與其通信,傳遞命令和接收信號,上位機和下位機之間利用RS232串口來進行連接;單片機模塊編程來控制和采集DS18B20的溫度信號;ATmage8和DS18B20之間采用單總線的方式來連接。單片機模塊和加熱模塊之間接繼電器,由單片機來控制[1]。上位機設定溫度范圍,發送給單片機,單片機接收到后采集溫度傳感器的溫度信號,處理后得到的溫度值進行閾值匹配,控制繼電器的閉合,并傳給上位機,顯示在上位機界面。當溫度低于設定最低閾值時,開啟繼電器,加熱模塊開始工作,當到達最高閾值時,閉合繼電器,加熱模塊停止工作。這樣就達到了控制溫度的目的。
ATmage8是一款采用低功耗CMOS工藝生產的基于AVR RISC結構的8位單片機。它承襲了AT90系列所具有的特定,并增加了更多的接口功能,而且在省電性、穩定性、抗干擾性及靈活性方面更加的靈活和周全,它所有的寄存器都直接與ALU相連,這樣提高了代碼的效率;含有32個8位通用寄存器,8k字節的Flash程序存儲器可擦寫大于10000次;帶有兩個預分頻的8位定時器/計數器[2]、一個帶預分頻的16位定時/計數器;3個PMW通道,可實現任意16位以相位和頻率的可調PMW脈寬調制輸出;一個10位的AD轉換,基本滿足大部分的信息采集;片內自帶的晶振也是非常的方便;I/O口的拉電流能力可以達到40 mA,這樣比51單片機的驅動能力大了很多,在此系統中也就可以直接驅動繼電器。
傳統的溫度傳感器往往采用模擬技術進行設計,這樣的話就會遇到線性誤差補償、多點測量中的切換誤差和信號的調理電路的誤差等問題,這些問題都可以造成系統的不穩定,所以數字化、集成化的溫度傳感器成為發展的方向。DS18B20溫度傳感器[3]是DALLAS公司生產的新一代數字溫度傳感器。該傳感器將地址線、數據線和控制線合為一根雙向串行數據的信號線,并且允許連接多個DS18B20。它具有3引腳的T0-92小體積封裝;測量范圍在-55~+125℃,測量的精度也小于1℃;3引腳分別接在電源、地和一個I/O端口上,十分方便。
室內智能溫度調節系統的硬件設計部分主要由單片機模塊、溫度采集模塊和加熱模塊組成,圖1為系統的組成框圖。

圖1 系統的組成框圖Fig.1 The system hardware diagram
其中上位機和單片機之間是互相通信的,上位機發送溫度閾值和命令給單片機,單片機發送當前溫度值給上位機;單片機和DS18B20之間也是互相通信,單片機發送初始化和控制命令給溫度傳感器,溫度傳感器把檢測到的溫度信號傳給單片機處理;單片機控制加熱模塊,經過溫度采集模塊進行反饋。這樣就形成可一個完整的系統。
2.3.1 單片機模塊
整個系統中ATmage8是核心的內容,它不僅負責和上位機之間的通信、處理溫度傳感器的信號,轉化成溫度值,并且控制電子開關繼電器,以此來控制加熱模塊。圖2為ATmage8模塊的電路圖。

圖2 ATmage8模塊的電路圖Fig.2 ATmage8 module circuit diagram
其中PC6接的是復位電路,PB6和PB7這連接的是單片機的振蕩電路,PC6口連接的是R1和C3組成的復位電路;PD0和PD1是讀寫口,通過MAX232電平轉換芯片和串口連接,和上位機進行通信。
2.3.2 溫度采集模塊
由于我們要控制的是整個室內的溫度,這樣的話一個DS18B20顯然是不能滿足要求的,本系統采用的是多個溫度傳感器共同來工作,在室內的多點放置傳感器,這樣就形成一個多點[4]的溫度采集系統。每個DS18B20都有一個唯一的序列號,這樣CPU只需要一根端口線就可以和多個DS18B20通信,連接十分的方便,由于考慮功耗[5],本系統選取了4個溫度傳感器。圖3為DS18B20和單片機之間的連接圖。

圖3 DS18B20模塊的電路圖Fig.3 DS18B20 module circuit diagram
DS18B20有兩種電源接法,外部方式供電和寄生電源供電,由于寄生供電方式有可能產生電壓不夠,所以本系統采用外部電源供電,用一個上拉電阻使它的電壓穩定。圖中1腳接的是地,3腳接的是電源,2腳和單片機的I/O口連接,為數據線。
2.3.3 加熱模塊
單片機用一個PB1來控制繼電器的開斷,加熱器隨之開斷。當單片機得到溫度傳感器的信號,經過處理后得到溫度值和設定的溫度范圍比較,如果小于最小值,繼電器打開,加熱器開始工作,當溫度在閾值范圍內或者高于最大值時,繼電器閉合,加熱器隨之關閉。
此模塊也可以在每個溫度傳感器的旁邊設置一個加熱裝置,哪個溫度傳感器區域溫度較低,則控制哪個區域加熱。也可以根據實際的需要來調整各個區域的溫度,將室內分成幾個區域進行控制,設定不同的閾值進行比較。
軟件部分主要涉及上位機軟件和下位機ATmage8單片機的程序,上位機的軟件部分只需要編輯一個GUI用戶界面,在里面實現和單片機之間的通信即可,圖4為上位機的GUI界面。

圖5 程序的流程圖Fig.5 The program flow diagram

圖4 上位機的GUI界面Fig.4 The PC GUI interface
上位機的程序只是起控制溫度閾值和現實當前溫度的功能,在這個界面上,我們就可以很清楚的看出每個傳感器的溫度值,由于傳感器分別分布在室內的4個區域,則顯示的當前溫度就是室內四個區域的溫度。這樣工作人員就可以按實際的情況分別修改幾個區域的溫度閾值,來智能的控制室內的溫度,達到生產要求。
單片機的程序主要和上位機通信,控制傳感器和繼電器,圖5為下位機程序的流程圖
DS18B20和外部中斷初始化后,系統就開始進入while循環,等待外部中斷的產生,當上位機的閾值發生改變并且通過串口發送給單片機,程序開始進入中斷,中斷里面是發送程序,接收到上位機的指示就發送當前的溫度給上位機;同時主程序里開始進行溫度的采集和閾值[6]的對比,利用程序來進行判斷,判斷如果不匹配的話,溫度低了就加熱,溫度高了就定制加熱,保證溫度在合適的范圍內。
本系統是采用高性能的ATmage8單片機和高精度的數字溫度傳感器設計的一個室內智能溫度調節系統,采用上位機控制溫度的閾值,傳達給單片機執行。實驗驗證,很好的體現了DS18B20很好的精度性能,誤差控制在0.5℃之內,適合小面積的工農業生產和生活應用,具有很高的使用價值。
[1]李群芳.單片機微型計算機與接口技術[M].3版.北京:電子工業出版社,2010.
[2]胡漢才.高檔AVR單片機原理及應用[M].北京:清華大學出版社,2008.
[3]王戰備.室內溫度多點檢測系統設計[J].信息技術,2011(1):20-22.
WANG Bei-zhan.Design of indoor temperature multi-point detection system[J].Information Technology,2011(1):20-22.
[4]余威明.DS18B20高精度多點溫度檢測顯示系統 [J].儀表技術,2007(3):37-38.
YU Wei-ming. Multidrug high precision temperature detecting and display system based on DS18B20[J].Instrument Technology,2007(3):37-38.
[5]孔慶霞,朱全銀.基于DS18B20的遠距離分布式溫度數據采集系統[J].電子測量技術,2009(4):154-156.
KONG Qing-xia,ZHU Quan-yin.Temperature data sampling system for distributed long-distance based on DS18B20[J].Electronic Measurement Technology,2009(4):154-156.
[6]李振東.蔬菜溫室大棚溫度控制系統[D].青島:中國海洋大學,2010.