梁越勇 季航宇 浦希成
(江蘇科技大學計算機科學與工程學院 鎮(zhèn)江 212003)
無論是現(xiàn)代家居生活,還是工農業(yè)產(chǎn)業(yè)鏈,無線監(jiān)控和無線報警之類的設計都會給生產(chǎn)、生活帶來很大的效率提高,目前無線通信領域也是研究的重點,因此研究無線溫度報警器系統(tǒng)具有極高的社會價值和廣闊的市場前景。本系統(tǒng)在無線通信方面采用的是 NRF24L01 無線射頻模塊[1~2],工作于2.4GHz~2.5GHz ISM頻段。內置頻率合成器、功率放大器、晶體振蕩器、調制器等功能模塊,并融合了增強型ShockBurst技術[3]。此設計軟件編程基于STC89C52單片機完成的,發(fā)射機和接收機主要包括主函數(shù)、溫度讀取函數(shù)、中斷服務函數(shù)和判斷報警信號函數(shù)。其中,主函數(shù)完成了查詢和顯示報警信號的功能;中斷服務函數(shù)消除了外部中斷源INT0的中斷標志,使整個程序能實現(xiàn)實時控制;判斷報警信號函數(shù)檢測中斷信號是否為上一次的信號。本文的結構含溫度報警器的系統(tǒng)總體設計、硬件子系統(tǒng)的設計與實現(xiàn)以及軟件子系統(tǒng)的分析與設計,最后對系統(tǒng)進行了測試與評價。
本系統(tǒng)由發(fā)射機和接收機兩大部分組成,我們根據(jù)需要在接收機上設置好一個合理的溫度范圍,發(fā)射機放在需要檢測的環(huán)境下,當被檢測的當前環(huán)境溫度超出了所設置好的溫度范圍時,接收機上蜂鳴器[4]發(fā)出警報。
nRF24L01芯片具有兩種通信模式:直接模式和突發(fā)模式,使用nRF24L01芯片特有的突發(fā)模式,可以提高系統(tǒng)整體的性能和效率[5]。無線傳輸?shù)挠行Ь嚯x和發(fā)射功率、接收靈敏度、工作頻率有關。想要實現(xiàn)更遠的無線傳輸,一般可以從改善接收機的靈敏度入手。此次設計的模型是無線溫度報警器,實現(xiàn)的傳輸距離是20m左右?;谝陨戏治?,我們需要先在接收機設置好溫度的上下限,然后把發(fā)射機放到待檢測的環(huán)境下,實時地檢測環(huán)境的溫度是否達標。
無線溫度報警器由發(fā)射機和接收機組成,發(fā)射機負責傳感器溫度的測量,通過24L01模塊把數(shù)據(jù)實時傳給接收機,主要器件有STC89C52單片機、DS18B20溫度傳感器、24L01無線模塊、12M晶振等。接收機通過24L01無線通信模塊實時接收來自發(fā)射機的數(shù)據(jù),然后交給STC89C52單片機來判斷是否需要報警。接收機電子元件主要有STC89C52單片機、24L01無線射頻通信模塊、LCD1602液晶顯示屏、5V有源蜂鳴器等。
硬件整體布局如圖1所示。
圖1 硬件整體布局
本設計中使用的電源需要單獨進行設計,由于正常用電是220V的交流電,而STC89C52和其他功能模塊是在5V直流電源下工作的,所以需要另外設計一個5V直流電源。要得到穩(wěn)定可用的DC5V電源,要將50Hz的交流電經(jīng)降壓變壓器降為12V交流電,然后通過橋式整流器、電容濾波后得到12*0.9=10.8的直流電,由于不夠穩(wěn)定,所以還要在該直流電后面加一個集成穩(wěn)壓塊和一個較大電容作為儲能用,使得輸出電壓不因負載的變化而影響。
電源對模塊的整體運行十分重要,嚴格設計的電源可以大大降低模塊的非正常關機率。由于本溫度報警器的設計是一個獨立運行的計算機微系統(tǒng),通常情況下應通過指令AT^SMSO來進行關閉,同時一定要確認模塊關機后再進行切斷電源的操作。在實際應用中,如果系統(tǒng)會時常發(fā)生斷電情況,則需要為該溫度報警器配備備用電池,以保證系統(tǒng)的正常工作。我們在設計的5V電源后加一個TR1972-33,使得電壓約為4.4V,再接一個470μF的電解電容。
電源設計電路圖如圖2所示。
圖2 電源設計電路圖
本設計中實用的STC89C52單片機是STC公司最新推出的一種新型51內核的單片機。該單片機的指令代碼完全兼容傳統(tǒng)8051單片機,12時鐘/機器周期和6時鐘/機器周期可以任意選擇[6]。片內含有Flash程序存儲器、SRAM、UART、SPI、PWM等模塊。Flash存儲器的最大特點是可以在線重新編程,適用一般的編程器。8位的CPU和在線編程Flash進行集成化處理,使得STC89C52單片機的功能更加完善,在溫度報警器控制系統(tǒng)中有著更廣泛的應用前景。
本設計中使用的DS18B20數(shù)字溫度傳感器接線方便,封裝成后可應用于多種場合,主要根據(jù)應用場合的不同而改變其外觀。適用于各種狹小空間設備數(shù)字測溫和控制領域[7]。
引腳說明:I/O為數(shù)據(jù)輸入/輸出端,它屬于漏極開路輸出,外接上拉電阻后,常態(tài)下呈高電平。UDD是可供選用的外部電源端,不用時接地,GND為地,NC空腳。
本設計中使用的nRF24L01是一款工作在2.4GHz~2.5GHz世界通用ISM頻段的單片無線收發(fā)器芯片。內置頻率合成器、功率放大器、晶體振蕩器、調制器等功能模塊,并融合了增強型Shock Burst技術,其中輸出功率和通信頻道可通過程序進行配置[8]。該芯片的能耗很低,以-5dBm功率發(fā)射時,工作電流只有10.5mA,接收信號時電流只有18mA,工作模式多樣,可以更方便地應用于各種節(jié)能設計中,使得設計的溫度報警器處于功耗極低的工作模式,增加了設計的實用性。
nRF24L01支持多點通信,最高傳輸速率為2Mbit/s。嵌入的鏈路層設計減少了MCU的成本和復雜性,提高了傳輸可靠性,本設計中采用SOC方法設計只需少量外圍元件便可以組成射頻收發(fā)。
本次設計的無線溫度報警器是基于點對點的設計,在實際應用中,小范圍的檢測區(qū)域適用于點對點檢測,如果是較大范圍的區(qū)域,往往需要多點來進行檢測,即一對多的檢測體系,基于本設計我們進行了基于一對多的檢測改進,主要的功能模塊是由nRF24L01來完成,即一個接收機對應多個發(fā)射機,各個發(fā)射機分別被置于不同區(qū)域采集數(shù)據(jù),然后通過無線收發(fā)模塊進行數(shù)據(jù)傳輸,最后在接收機的STC89C52進行數(shù)據(jù)處理、控制顯示??梢栽陲@示屏上顯示多點的平均溫度,以及所有點的最高和最低溫度,通過和閾值溫度進行比較,判斷是否發(fā)出警報。
多點溫度采集如圖3所示。
圖3 多點溫度采集圖
一對多的擴展設計是由各個一對一的無線溫度報警器組成的,所以我們重點研究一對一的溫度報警器的設計與實現(xiàn),后期進行集成開發(fā),廣泛應用,增加該設計的實用領域。
本設計中使用的蜂鳴器是一種一體化結構的電子迅響器,采用直流電壓供電,廣泛應用于計算機、打印機、復印機、報警器、電子玩具、汽車電子設備、電話機、定時器等電子產(chǎn)品中作發(fā)聲器件。與無源蜂鳴器不同,有源蜂鳴器帶振蕩源,可以采用直流驅動信號[9~10]。當發(fā)射機的DS18B20溫度傳感器檢測到周圍的溫度高于指定的閾值時,信息傳到接收機,單片機控制蜂鳴器,三極管導通,蜂鳴器發(fā)出警報。由于該溫度報警器的設計是基于實驗室設備的,所以選用的報警器件是蜂鳴器,在實際應用中,蜂鳴器的聲音響度不足以滿足要求,可以選用其他功率較大的報警器件,如大功率警鈴。
本設計中使用的顯示屏是基于STC89C52單片機的1602液晶顯示屏,我們通過C語言代碼進行寫入操作,使得在工作狀態(tài)時,液晶顯示屏時刻顯示設計好的溫度上下限,以及發(fā)射機當前溫度,即待檢測環(huán)境溫度。
本次程序設計語言采用的C語言來進行編寫算法,算法需要完成的功能是:nRF24L01無線通信系統(tǒng)主要由單片機控制,當其完成檢測到有DS18B20的數(shù)據(jù)時,單片機通過SPI通信協(xié)議對nRF24L01發(fā)送數(shù)據(jù),nRF24L01模塊進行無線通信、接收機接收到收據(jù)后發(fā)送給接收控制單片機。接收機控制數(shù)據(jù)顯示,超限設置及聲光報警。
1)獨立按鍵,可以設置溫度值的上下限;2)溫度值小于下限,大于上限,聲光報警;3)接收機與發(fā)送機通過nRF24L01無線通信;4)用1602液晶顯示設置好的上下限值和當前溫度。
圖4 發(fā)射機流程圖
圖5 接收機流程圖
本設計采用主從方式的SPI協(xié)議,在點對點的通信中,SPI接口不需要進行尋址操作,且為全雙工通信[11]。
將程序燒寫進開發(fā)板進行測試,具體步驟如下:
1)通過C語言編寫軟件寫好代碼進行編譯;
2)代碼編譯成功后,加載程序文件夾中的hex[12]文件鏈接好下載器就可以下載了,下載器是STC-ISP串口下載器,串口下載有4根線,紅線接電源,黑線接地,綠線接單片機10角,白線接單片機11角;
3)燒寫成功后就可以進行調試和功能的實現(xiàn)了。
將發(fā)射板和接收板隔開20m左右,分別上電,打開電源按鍵,在接收機上設置好最高溫度t1和最低溫度t2(t1>t2),發(fā)射機上溫度傳感器開始獲取周圍溫度t,并通過無線射頻模塊發(fā)送到接收機,接收機接收到數(shù)據(jù)后,在顯示屏上顯示當前溫度,同時顯示已經(jīng)設置好的溫度上下限,此時,我們利用打火機給發(fā)射機升溫,使得t>t1,這時蜂鳴器開始鳴叫,然后利用冰塊給溫度傳感器降溫,使得t<t2,這時蜂鳴器開始鳴叫。這時我們擴大發(fā)射機和接收機的距離,接收機上的溫度不在隨著發(fā)射機溫度傳感器周圍溫度的變化而變化,發(fā)射機和接收機的連接斷開。
在一定距離之內,發(fā)射版和接收機保持連接狀態(tài),從機顯示當前主機的溫度,并判斷這個溫度是否在設置好的溫度之間,在一定溫度范圍內,DS18B20可以檢測溫度變化,該溫度報警器工作要求如圖6所示。(橫軸為溫度測試范圍,縱軸為距離測試范圍)
圖6 報警器溫度、距離要求圖
1)使用方便:無需外界網(wǎng)絡的支持,只需給發(fā)射機接收機供電即可工作;
2)人性化設計:發(fā)射機和接收機都很小,操作容易,顯示器顯示溫度一目了然;
3)緊急報警功能:當發(fā)射機溫度超過理想的溫度范圍時,蜂鳴器就會報警;
4)可靠:由于采用了跳頻技術,NRF24L01在性能上穩(wěn)定可靠,即通信設備會不斷搜索干擾比較小的信道,可能每隔一段時間就會從一個頻率轉換到另一個頻率[13~14],從而保證了數(shù)據(jù)傳輸?shù)目煽啃裕?/p>
5)斷電不丟失:溫度傳感器DS18B20具有斷電不丟失的特性,這使得在操作過程中即使因某種情況導致斷電,接收機顯示器上依然會保持前一刻的數(shù)據(jù)[15~16];
6)有極大的社會價值:在工農業(yè)中,能夠有效地對產(chǎn)品、對生產(chǎn)環(huán)境進行檢測報告。
在系統(tǒng)開發(fā)過程中,我們查閱了大量的相關文獻,包括單片機SPI協(xié)議、NRF24L01的原理和使用、C語言的編寫、代碼的燒入等內容,收獲頗多。
基于無線射頻的溫度傳感器有很廣的發(fā)展前景。51單片機采用低功耗的電源供給,具有安全性高的優(yōu)點,所以不會對使用者產(chǎn)生任何相關安全威脅,用戶可以放心使用。只需把發(fā)射機放置在被檢測的環(huán)境之下,接收機放置在相關距離之內即可。設計簡單輕巧。
此次設計體現(xiàn)了在機械自動化方面的應用,本報警裝置可根據(jù)具體的應用背景進行改造,完成產(chǎn)品環(huán)境合格度的檢測,產(chǎn)品質量大小規(guī)格等的檢測,能夠有效地提高生產(chǎn)效率,節(jié)省勞動成本,推動自動化產(chǎn)業(yè)的發(fā)展。