基于DS18B20的室內(nèi)智能溫度控制系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:對(duì)于一些特定的室內(nèi)農(nóng)業(yè)和工業(yè)生產(chǎn),提出了一種DS18B20溫度傳感器和ATmage8單片機(jī)結(jié)合的智能溫度控制系統(tǒng)。該系統(tǒng)主要可分為上位機(jī)系統(tǒng)和下位機(jī)系統(tǒng),上位機(jī)設(shè)定溫度范圍井控制下位機(jī)。ATmage8單片機(jī)通過(guò)DS18B20采集溫度信號(hào),處理后將溫度值與上位機(jī)設(shè)定閾值作比較。單片機(jī)控制加熱模塊的工作,并且通過(guò)串口傳給上位機(jī)顯示當(dāng)前溫度。在經(jīng)過(guò)實(shí)際的測(cè)試,該系統(tǒng)的性能穩(wěn)定,誤差控制在0.5℃,滿足了小面積的室內(nèi)應(yīng)用。
關(guān)鍵詞:智能調(diào)節(jié);ATmage8單片機(jī);溫度傳感器;上位機(jī)
溫度在工農(nóng)業(yè)生產(chǎn)中起著舉足輕重的作用,在冶金、醫(yī)藥、食品制造和化學(xué)制造業(yè)等行業(yè)尤其顯得重要。在適當(dāng)?shù)臏囟认律a(chǎn)的產(chǎn)品質(zhì)量、產(chǎn)量和合格率會(huì)大大的提高。有些藥品的生產(chǎn)和存儲(chǔ)要在很低的溫度下進(jìn)行;石油分餾的過(guò)程中在不同的溫度下才能分離出汽油、柴油、煤油、硫化物;食品的制造和存儲(chǔ)也要在特定的溫度下才能保證質(zhì)量。在農(nóng)業(yè)大棚蔬菜和室內(nèi)圈養(yǎng)牲畜對(duì)于環(huán)境溫度的要求也很高,大棚蔬菜的溫度基本上要保證在20~30℃。雞舍的育雛期溫度要控制在36℃左右。隨著社會(huì)生產(chǎn)力和科學(xué)技術(shù)的發(fā)展,工農(nóng)業(yè)生產(chǎn)對(duì)于溫度的要求會(huì)越來(lái)越高,這樣就需要系統(tǒng)不但可以測(cè)出室內(nèi)的實(shí)際溫度,還可以通過(guò)上位機(jī)來(lái)進(jìn)行實(shí)時(shí)的控制,調(diào)整環(huán)境的溫度。
1 系統(tǒng)的整體想路
本系統(tǒng)分為上位機(jī)模塊、單片機(jī)模塊、溫度采集模塊、加熱模塊。上位機(jī)采用的是用VC++6.0的軟件環(huán)境來(lái)編寫(xiě)一個(gè)控制界面,用來(lái)控制下位機(jī)的ATmage8單片機(jī),并且與其通信,傳遞命令和接收信號(hào),上位機(jī)和下位機(jī)之間利用RS232串口來(lái)進(jìn)行連接;單片機(jī)模塊編程來(lái)控制和采集DS18B20的溫度信號(hào);ATmage8和DS18B20之間采用單總線的方式來(lái)連接。單片機(jī)模塊和加熱模塊之間接繼電器,由單片機(jī)來(lái)控制。上位機(jī)設(shè)定溫度范圍,發(fā)送給單片機(jī),單片機(jī)接收到后采集溫度傳感器的溫度信號(hào),處理后得到的溫度值進(jìn)行閾值匹配,控制繼電器的閉合,并傳給上位機(jī),顯示在上位機(jī)界面。當(dāng)溫度低于設(shè)定最低閾值時(shí),開(kāi)啟繼電器,加熱模塊開(kāi)始工作,當(dāng)?shù)竭_(dá)最高閾值時(shí),閉合繼電器,加熱模塊停止工作。這樣就達(dá)到了控制溫度的目的。
2 硬件部分設(shè)計(jì)
2. 1 ATmage8單片機(jī)簡(jiǎn)介
ATmage8是一款采用低功耗CMOS工藝生產(chǎn)的基于AVR RISC結(jié)構(gòu)的8位單片機(jī)。它承襲了AT90系列所具有的特定,并增加了更多的接口功能,而且在省電性、穩(wěn)定性、抗干擾性及靈活性方面更加的靈活和周全,它所有的寄存器都直接與ALU相連,這樣提高了代碼的效率;含有32個(gè)8位通用寄存囂,8k字節(jié)的Flash程序存儲(chǔ)器可擦寫(xiě)大于10000次;帶有兩個(gè)預(yù)分頻的8位定時(shí)器/計(jì)數(shù)器、一個(gè)帶預(yù)分頻的16位定時(shí)/計(jì)數(shù)器;3個(gè)PMW通道,可實(shí)現(xiàn)任意16位以相位和頻率的可調(diào)PMW脈寬調(diào)制輸出;一個(gè)10位的AD轉(zhuǎn)換,基本滿足大部分的信息采集;片內(nèi)自帶的晶振也是非常的方便;I/O口的拉電流能力可以達(dá)到40 mA,這樣比51單片機(jī)的驅(qū)動(dòng)能力大了很多,在此系統(tǒng)中也就可以直接驅(qū)動(dòng)繼電器。
2.2 溫度傳感器DS18B20
傳統(tǒng)的溫度傳感器往往采用模擬技術(shù)進(jìn)行設(shè)計(jì),這樣的話就會(huì)遇到線性誤差補(bǔ)償、多點(diǎn)測(cè)量中的切換誤差和信號(hào)的調(diào)理電路的誤差等問(wèn)題,這些問(wèn)題都可以造成系統(tǒng)的不穩(wěn)定,所以數(shù)字化、集成化的溫度傳感器成為發(fā)展的方向。DS18B20溫度傳感器是DMLLAS公司生產(chǎn)的新一代數(shù)字溫度傳感器。該傳感器將地址線、數(shù)據(jù)線和控制線合為一根雙向串行數(shù)據(jù)的信號(hào)線,并且允許連接多個(gè)DS18B20。它具有3引腳的T0-92小體積封裝;測(cè)量范圍在-55~+125℃,測(cè)量的精度也小于1℃;3引腳分別接在電源、地和一個(gè)I/O端口上,十分方便。
2.3 硬件部分
室內(nèi)智能溫度調(diào)節(jié)系統(tǒng)的硬件設(shè)計(jì)部分主要由單片機(jī)模塊、溫度采集模塊和加熱模塊組成,圖1為系統(tǒng)的組成框圖。
其中上位機(jī)和單片機(jī)之間是互相通信的,上位機(jī)發(fā)送溫度閾值和命令給單片機(jī),單片機(jī)發(fā)送當(dāng)前溫度值給上位機(jī);單片機(jī)和DS18B20之間也是互相通信,單片機(jī)發(fā)送初始化和控制命令給溫度傳感器,溫度傳感器把檢測(cè)到的溫度信號(hào)傳給單片機(jī)處理;單片機(jī)控制加熱模塊,經(jīng)過(guò)溫度采集模塊進(jìn)行反饋。這樣就形成可一個(gè)完整的系統(tǒng)。
2.3.1 單片機(jī)模塊
整個(gè)系統(tǒng)中ATmage8是核心的內(nèi)容,它不僅負(fù)責(zé)和上位機(jī)之間的通信、處理溫度傳感器的信號(hào),轉(zhuǎn)化成溫度值,并且控制電子開(kāi)關(guān)繼電器,以此來(lái)控制加熱模塊。圖2為ATmage8模塊的電路圖。
其中PC6接的是復(fù)位電路,PB6和PB7這連接的是單片機(jī)的振蕩電路,PC6口連接的是R1和C3組成的復(fù)位電路;PD0和PD1讀寫(xiě)口,通過(guò)MAX232電平轉(zhuǎn)換芯片和串口連接,和上位機(jī)進(jìn)行通信。
2. 3.2 溫度采集模塊
由于我們要控制的是整個(gè)室內(nèi)的溫度。這樣的話一個(gè)DS18B20顯然是不能滿足要求的,本系統(tǒng)采用的是多個(gè)溫度傳感器共同來(lái)工作,在室內(nèi)的多點(diǎn)放置傳感器,這樣就形成一個(gè)多點(diǎn)的溫度采集系統(tǒng)。每個(gè)DS18B20都有一個(gè)唯一的序列號(hào),這樣CPU只需要一根端口線就可以和多個(gè)DS18B20通信,連接十分的方便,由于考慮功耗,率系統(tǒng)選取了4個(gè)溫度傳感器。圖3為DS18B20和單片機(jī)之間的連接圖。
DS18B20有兩種電源接法,外部方式供電和寄生電源供電,由于寄生供電方式有可能產(chǎn)生電壓不夠,所以本系統(tǒng)采用外部電源供電,用一個(gè)上拉電阻使它的電壓穩(wěn)定。圖中1腳接的是地,3腳接的是電源,2腳和單片機(jī)的I/O口連接,為數(shù)據(jù)線。
2. 3. 3加熱模塊
單片機(jī)用一個(gè)PBI來(lái)控制繼電器的開(kāi)斷,加熱器隨之開(kāi)斷。當(dāng)單片機(jī)得到溫度傳感器的信號(hào),經(jīng)過(guò)處理后得到溫度值和設(shè)定的溫度范圍比較,如果小于最小值,繼電器打開(kāi),加熱器開(kāi)始工作,當(dāng)溫度在閾值范圍內(nèi)或者高于最大值時(shí),繼電器閉合,加熱器隨之關(guān)閉。
此模塊也可以在每個(gè)溫度傳感器的旁邊設(shè)置一個(gè)加熱裝置,哪個(gè)溫度傳感器區(qū)域溫度較低,則控制哪個(gè)區(qū)域加熱。也可以根據(jù)實(shí)際的需要來(lái)調(diào)整各個(gè)區(qū)域的溫度,將室內(nèi)分成幾個(gè)區(qū)域進(jìn)行控制,設(shè)定不同的閾值進(jìn)行比較。
3 軟件部分設(shè)計(jì)
軟件部分主要涉及上位機(jī)軟件和下位機(jī)ATmage8單片機(jī)的程序,上位機(jī)的軟件部分只需要編輯一個(gè)GUI用戶界面,在里面實(shí)現(xiàn)和單片機(jī)之間的通信即可,圖4為上位機(jī)的GUI界面。
上位機(jī)的程序只是起控制溫度閾值和現(xiàn)實(shí)當(dāng)前溫度的功能,在這個(gè)界面上,我們就可以很清楚的看出每個(gè)傳感器的溫度值,由于傳感器分別分布在室內(nèi)的4個(gè)區(qū)域,則顯示的當(dāng)前溫度就是室內(nèi)四個(gè)區(qū)域的溫度。這樣工作人員就可以按實(shí)際的情況分別修改幾個(gè)區(qū)域的溫度閾值,來(lái)智能的控制室內(nèi)的溫度,達(dá)到生產(chǎn)要求。
單片機(jī)的程序主要和上位機(jī)通信,控制傳感器和繼電器,圖5為下位機(jī)程序的流程圖。
DS18B20和外部中斷初始化后,系統(tǒng)就開(kāi)始進(jìn)入while循環(huán),等待外部中斷的產(chǎn)生,當(dāng)上位機(jī)的閾值發(fā)生改變并且通過(guò)串口發(fā)送給單片機(jī),程序開(kāi)始進(jìn)入中斷,中斷里面是發(fā)送程序,接收到上位機(jī)的指示就發(fā)送當(dāng)前的溫度給上位機(jī);同時(shí)主程序里開(kāi)始進(jìn)行溫度的采集和閾值的對(duì)比,利用程序來(lái)進(jìn)行判斷,判斷如果不匹配的話,溫度低了就加熱,溫度高了就定制加熱,保證溫度在合適的范圍內(nèi)。
4 結(jié)束語(yǔ)
本系統(tǒng)是采用高性能的ATmage8單片機(jī)和高精度的數(shù)字溫度傳感器設(shè)計(jì)的一個(gè)室內(nèi)智能溫度調(diào)節(jié)系統(tǒng),采用上位機(jī)控制溫度的閾值,傳達(dá)給單片機(jī)執(zhí)行。實(shí)驗(yàn)驗(yàn)證,很好的體現(xiàn)了DS18B20很好的精度性能,誤差控制在0.5℃之內(nèi),適合小面積的工農(nóng)業(yè)生產(chǎn)和生活應(yīng)用,具有很高的使用價(jià)值。