徐長(zhǎng)志+陳莉
摘要:該文設(shè)計(jì)了一個(gè)保鮮庫智能溫度監(jiān)控系統(tǒng),利用傳感器AD590進(jìn)行溫度數(shù)據(jù)采集,使用單片機(jī)STC12C5A進(jìn)行溫度采樣,AD轉(zhuǎn)換測(cè)量、控制、顯示、并在溫度超出控制范圍時(shí)報(bào)警,通過NRF24L01射頻模塊進(jìn)行遠(yuǎn)程通信、數(shù)據(jù)傳輸、遠(yuǎn)程觀察保鮮庫狀態(tài)。硬件設(shè)計(jì)包括STC12C5A單片機(jī)最小系統(tǒng)、測(cè)溫電路、數(shù)碼管顯示電路,報(bào)警電路、射頻模塊等組成。軟件設(shè)計(jì)包括主程序、讀出溫度子程序、溫度計(jì)算子程序、數(shù)碼管顯示子程序設(shè)計(jì)。該系統(tǒng)可以實(shí)現(xiàn)溫度的采集、顯示,監(jiān)測(cè)、溫報(bào)警、遠(yuǎn)程數(shù)據(jù)傳輸。
關(guān)鍵詞:STC12C5A;保鮮庫;AD590;溫度監(jiān)控;遠(yuǎn)程監(jiān)控
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)27-0134-03
保鮮庫對(duì)環(huán)境溫度有一定的要求,當(dāng)環(huán)境溫度超出預(yù)定溫度時(shí),保鮮庫就不能起到保鮮作用,因此對(duì)溫度的檢測(cè),顯示,控制很重要。文獻(xiàn)[1]-[4]設(shè)計(jì)了基于單片機(jī)的溫度檢測(cè)或采集系統(tǒng),達(dá)到了對(duì)溫度的采集,顯示及控制功能;采用的單片機(jī)為DS18B20、 AT89C52或8051,本文采用STC12C5A八位單片機(jī)、傳感器AD590、及nRF24L01射頻模塊設(shè)計(jì)了一
用于溫度遠(yuǎn)程控制的遠(yuǎn)程監(jiān)控系統(tǒng),實(shí)現(xiàn)對(duì)環(huán)境溫度的采集、檢測(cè)、顯示、報(bào)警及遠(yuǎn)程數(shù)據(jù)傳輸。
1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)采用STC12C5A八位機(jī)作為微處理控制單元,使用4×4鍵盤將要設(shè)定的溫度最高值和最低值數(shù)據(jù)并完成溫度檢測(cè)功能的轉(zhuǎn)換,使用溫度傳感器AD590采集溫度信號(hào),將信號(hào)送入單片機(jī)STC12C5A處理,用LED顯示器顯示環(huán)境溫度,檢測(cè)范圍0攝氏度到90攝氏度,設(shè)計(jì)了報(bào)警電路,在環(huán)境溫度超出設(shè)定溫度時(shí)實(shí)現(xiàn)報(bào)警,使用射頻模塊nRF24L01進(jìn)行當(dāng)前環(huán)境溫度數(shù)據(jù)的遠(yuǎn)程傳送。
系統(tǒng)結(jié)構(gòu)框圖如圖1所示:
2 系統(tǒng)硬件設(shè)計(jì)
2.1 單片機(jī)最小系統(tǒng)的設(shè)計(jì)
STC12C5A單片機(jī)是與工業(yè)標(biāo)準(zhǔn)MCS-51指令集和輸出管腳相兼容的單片機(jī),指令代碼完全兼容傳統(tǒng)8051單片機(jī),速度高于傳統(tǒng)51單片機(jī)8-12倍具有速度高,功耗低,抗干擾能力強(qiáng)等優(yōu)點(diǎn),同時(shí)自帶8路高速10位A/D轉(zhuǎn)換,。
2.2溫度傳感電路設(shè)計(jì)
AD590的性能特點(diǎn):AD590是美國AD公司的單片集成兩端感溫電流源,其輸出電流與絕對(duì)溫度成比例。在4V至30V電源電壓范圍內(nèi),可充當(dāng)高阻抗,恒流調(diào)節(jié)器,適用于150℃以下的溫度檢測(cè)應(yīng)用。成本低,單芯片集成,無需支持電路,如線性化電路,精密電壓放大器,電阻測(cè)量電路或者冷結(jié)補(bǔ)償。
與常用的DS18B20不同,AD590提供高阻抗電流輸出,對(duì)長(zhǎng)線路上的壓降不敏感,適用于任何絕緣良好的雙絞線,與接受電路的距離可以達(dá)到數(shù)百英尺,甚至還可以實(shí)現(xiàn)多路的復(fù)用,可通過一個(gè)CMOS多路復(fù)用器進(jìn)行輸出的切換,特別適合遠(yuǎn)程檢測(cè)應(yīng)用,這有利于在大型保鮮庫內(nèi)分散式布置溫度傳感器,并集中控制。
溫度傳感器電路的輸出經(jīng)過電阻產(chǎn)生的壓差送入STC12C5A自帶的ADC,讀出數(shù)值記錄并供單片機(jī)處理。
2.3 溫度控制電路的設(shè)計(jì)
溫度控制電路如圖5所示:將P0.0、P0.1、P0.7端口與三極管的基極連接,用于控制溫度和實(shí)現(xiàn)報(bào)警。P0.0、P0.1、P0.7端口的輸出為高低電平,將事先設(shè)定的溫度值與實(shí)際測(cè)量溫度值比較,用比較的差值控制P0.0、P0.1、P0.7端口的高低電平,溫度檢測(cè)范圍為0攝氏度到90攝氏度檢測(cè)范圍,當(dāng)測(cè)量的溫度超過設(shè)定的最高溫度時(shí),端口由高電平變成低電平,基極輸入為“0”,這時(shí)三極管導(dǎo)通推動(dòng)報(bào)警器和控制電路工作,反之,當(dāng)端口為高電平時(shí),基極輸入為“1”,三極管不導(dǎo)通,報(bào)警器和控制電路都不工作。因此溫度控制電路實(shí)際是通過檢測(cè)值和設(shè)定值控制單片機(jī)的P0.0、P0.1、P0.7口的高低電平,用于控制報(bào)警器和控制電路就可以控制模擬電路的工作。
2.4顯示電路的設(shè)計(jì)
采用四位數(shù)碼管設(shè)計(jì)顯示電路,當(dāng)位選打開時(shí),送入相應(yīng)的段碼,則相應(yīng)的數(shù)碼管打開,關(guān)掉位選,打開另一個(gè)位選,每次打開關(guān)掉相應(yīng)的位選時(shí),時(shí)間間隔低于20ms,人類視覺的角度上看,全部數(shù)碼管是同時(shí)顯示的。4位數(shù)碼管由三極管8550驅(qū)動(dòng),驅(qū)動(dòng)電路如圖6所示。
2.5繼電器
繼電器是控制系統(tǒng)中一種重要的元件,它的作用就是按照某種要求接通或斷開控制系統(tǒng)的電路,是根據(jù)某種物理量的變化來改變其觸點(diǎn)狀態(tài)的控制元件。設(shè)計(jì)中繼電器用來控制加熱和制冷系統(tǒng)。繼電器在控制系統(tǒng)中的作用有兩點(diǎn):
(1)傳遞信號(hào)。它用觸電的轉(zhuǎn)換接通或斷開電路以傳遞控制信號(hào);
(2)功率放大。使繼電器動(dòng)作的功率通常是非常小的,而被其觸點(diǎn)所控制電路的功率要大得多,因此繼電器電路必須有放大功率的作用,從而可以實(shí)現(xiàn)對(duì)電路的控制。
2.6 射頻模塊
nRF24L01是一款工作在2.4GHz~2.5GHz的ISM 頻段的單片無線收發(fā)器芯片,極低的電流消耗:當(dāng)工作在發(fā)射模式下發(fā)射功率為0dBm 時(shí)電流消耗為11.3mA ,接收模式時(shí)為12.3mA,掉電模式和待機(jī)模式下電流消耗更低,既能滿足保鮮庫內(nèi)范圍要求,有能保證較低的功耗,增加續(xù)航。
3系統(tǒng)軟件設(shè)計(jì)
3.1 主程序流程圖
主程序負(fù)責(zé)讀出、處理、顯示AD590的測(cè)量的當(dāng)前環(huán)境溫度值,溫度測(cè)量每1s進(jìn)行一次。其程序流程見圖7所示。通過調(diào)用讀溫度子程序把存入內(nèi)存儲(chǔ)中的整數(shù)部分與小數(shù)部分分開存放在不同的兩個(gè)單元中,再通過調(diào)用顯示子程序顯示溫度。
3.2 讀出溫度子程序
讀出溫度子程序的主要功能通過ADC采集AD590輸出電流經(jīng)過電阻的電壓,再經(jīng)過測(cè)試求出電壓與溫度的關(guān)系系數(shù),從而讀出AD590所處位置的溫度。
3.3 射頻模塊發(fā)射子程序
首先將NRF24L01配置為發(fā)射模式,接著把接收節(jié)點(diǎn)地址TX_ADDR和有效數(shù)據(jù)TX_PLD按照時(shí)序由SPI口寫入NRF24L01緩存區(qū),若自動(dòng)應(yīng)答開啟,那么nRF24L01在發(fā)射數(shù)據(jù)后立即進(jìn)入接收模式,接收應(yīng)答信號(hào)。如果收到應(yīng)答,則認(rèn)為此次通信成功,TX_DS置高,同時(shí)TX_PLD從TX FIFO中清除;若未收到應(yīng)答,則自動(dòng)重新發(fā)射該數(shù)據(jù),若重發(fā)次數(shù)(ARC)達(dá)到上限,MAX_RT置高,TX FIFO中數(shù)據(jù)保留以便再次重發(fā);MAX_RT或TX_DS置高時(shí),使IRQ變低,產(chǎn)生中斷,通知MCU。最后發(fā)射成功時(shí),若CE為低則NRF24L01進(jìn)入空閑模式1,結(jié)束通信。
3.4 系統(tǒng)流程圖
本設(shè)計(jì)主要實(shí)現(xiàn)的是在一個(gè)封閉的空間的溫度的控制,設(shè)計(jì)總流程如圖8所示,軟件實(shí)現(xiàn)的主要功能是上電顯示“8888”,然后實(shí)時(shí)顯示溫度,每按一下復(fù)位鍵,也顯示“8888”,因設(shè)計(jì)中用的是非自鎖開關(guān),松手后,立即顯示當(dāng)前溫度,當(dāng)前溫度與設(shè)置的溫度上下限進(jìn)行比較,當(dāng)高于上限時(shí),單片機(jī)控制端為低電平,相應(yīng)的繼電器控制打開,當(dāng)?shù)陀谙孪迺r(shí),另一繼電器開啟。
3.5 顯示程序設(shè)計(jì)
顯示程序采用動(dòng)態(tài)掃描。顯示精確到小數(shù)點(diǎn)后一位,故在顯示程序中,需要對(duì)輸入的數(shù)據(jù)進(jìn)行拆數(shù),拆成個(gè)位,十位。然后依次開個(gè)位、十位選通端進(jìn)行顯示,在選通十位的同時(shí)將小數(shù)點(diǎn)顯示出來。連續(xù)的動(dòng)態(tài)掃描,輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管和人眼視覺暫留作用,使人感覺是一組穩(wěn)定的數(shù)據(jù)顯示。程序循環(huán)檢測(cè)是否有按鍵信號(hào),執(zhí)行相應(yīng)處理,最后通過顯示程序顯示相應(yīng)的電壓數(shù)值。
4 結(jié)束語
本文設(shè)計(jì)了一個(gè)用于保鮮庫溫度遠(yuǎn)程監(jiān)控的系統(tǒng),系統(tǒng)包括單片機(jī)最小系統(tǒng),溫度傳感器電路,溫度控制電路,驅(qū)動(dòng)電路,遠(yuǎn)程傳送數(shù)據(jù)模塊,可以實(shí)現(xiàn)對(duì)環(huán)境溫度的測(cè)定,顯示,報(bào)警和數(shù)據(jù)遠(yuǎn)程發(fā)送。 溫度檢測(cè)精確達(dá)到0.1度;溫度檢測(cè)范圍為0攝氏度到90攝氏度。
參考文獻(xiàn):
[1] 柴鎖柱,金順利.基于DS18B20的溫濕度采集系統(tǒng)設(shè)計(jì)[J].滄州師范??茖W(xué)院學(xué)報(bào),2010,3(26),104-107.
[2] 武狄,李強(qiáng),于海英.基于AT89C52單片機(jī)的溫度檢測(cè)系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)字工程,2013,12(35).2027-2029.
[3] 黃語燕.洛東養(yǎng)豬舍墊料溫度無線實(shí)時(shí)測(cè)量系統(tǒng)[D].福建農(nóng)林大學(xué),2013.
[4] 荊學(xué)東,趙世清,基于8051單片機(jī)的溫度檢測(cè)儀設(shè)計(jì)[J].煤礦機(jī)械,2011,11(27).228-229.
[5] 姚湘陵,秦實(shí)宏,袁發(fā)庭.基于nRF24L01的無線心電采集系統(tǒng)的設(shè)計(jì)[J].電子設(shè)計(jì)工程,2013,21(2),185-189.
[6] 龍婉藝.基于無線傳輸?shù)臄?shù)字式大氣壓力的設(shè)計(jì)[D].沈陽工業(yè)大學(xué),2013.