摘 要:采用nRF24L01作為無線收發(fā)模塊實現(xiàn)無線數(shù)據(jù)傳輸,使用DS18B20溫度傳感器采集環(huán)境溫度,并用ATMEL公司的AT89C52作為主控芯片,協(xié)調(diào)系統(tǒng)的數(shù)據(jù)采集、處理、顯示及無線傳輸?shù)冗^程。溫度采集節(jié)點能夠利用溫度傳感器穩(wěn)定地采集周圍環(huán)境的溫度,并通過無線模塊將數(shù)據(jù)傳送到接收節(jié)點,顯示到LCD上。該設(shè)計具有性能穩(wěn)定、成本低、低功耗等特點,能夠廣泛應用于各類對溫度要求較為特殊的環(huán)境下溫度數(shù)據(jù)的檢測。
關(guān)鍵詞:nRF24L01;DS18B20;無線通信;溫度傳感
中圖分類號:TP391.44 文獻標識碼:A
1 引言(Introduction)
采用無線數(shù)據(jù)傳輸技術(shù)設(shè)計的溫度采集系統(tǒng)[1],能有效的解決傳統(tǒng)有線技術(shù)帶來的各種問題,其具有不用布線、故障排查簡單、實時性高、可靈活布置、可實現(xiàn)多點采集,非常適用于各種現(xiàn)代工農(nóng)業(yè)溫度監(jiān)控系統(tǒng)[2]?;跓o線通信的數(shù)據(jù)采集系統(tǒng)可以靈活地為終端用戶提供實時而準確的信息[3],無論是在系統(tǒng)性能,還是在系統(tǒng)成本上,相對于傳統(tǒng)技術(shù),無線數(shù)據(jù)采集系統(tǒng)都具有很強的吸引力[4],它將在各個領(lǐng)域的數(shù)據(jù)采集系統(tǒng)中發(fā)揮積極的作用[5]。傳統(tǒng)的溫度采集系統(tǒng)所采集的溫度通過RS485、CAN總線通信方式傳輸至上位機,但這種方式維護較困難,不利于工業(yè)現(xiàn)場生產(chǎn)[6];因此可采用工業(yè)級內(nèi)置硬件鏈路層協(xié)議的低成本單芯片nRF24L01型無線收發(fā)器件實現(xiàn)系統(tǒng)間的無線通信[7],完成無線信號的接收、顯示及報警功能。
2 系統(tǒng)方案設(shè)計(System design)
系統(tǒng)硬件設(shè)計主要由采集發(fā)送和接收顯示、告警三部分組成,圖1為整體系統(tǒng)框圖,采用DS18B20作為溫度采集元件,配合低功耗單片機的使用就可以很好地彌補傳統(tǒng)上的不足。采用nRF24L01模塊對采集到的溫度數(shù)據(jù)進行無線傳輸,打破了傳統(tǒng)操作中距離受限的問題,使測溫操作更易實現(xiàn)。系統(tǒng)設(shè)計了四個溫度采集節(jié)點、一個數(shù)據(jù)接收節(jié)點。四個溫度采集節(jié)點可以實現(xiàn)系統(tǒng)對監(jiān)控區(qū)域內(nèi)的溫度進行全方位的監(jiān)測,保證監(jiān)測數(shù)據(jù)的準確性和全面性。其中四個溫度采集節(jié)點的電路是一樣的,都是使用AT89S52作為核心處理器,控制其他各個功能器件有序工作。接收節(jié)點電路相對于發(fā)射節(jié)點,多了一個LCD液晶顯示模塊,沒有溫度采集模塊。
圖1 整體系統(tǒng)框圖
Fig.1 Overall block diagram of the system
各節(jié)點中串口模塊主要有兩方面的作用,一個是用于程序的下載,方面系統(tǒng)在線調(diào)試;另一個是將采集到的溫度數(shù)據(jù)實時地傳輸?shù)缴衔粰C中,對數(shù)據(jù)進行觀察和分析。節(jié)點中的RF模塊由于需要3.3V的電源供電,所以每個節(jié)點還設(shè)計了一個5V轉(zhuǎn)3.3V的穩(wěn)壓電路。
3 系統(tǒng)硬件及軟件設(shè)計(System hardware and
software design)
設(shè)計一套基于nRF24L01的無線數(shù)據(jù)采集系統(tǒng),能夠通過系統(tǒng)的多個溫度采集節(jié)點,采集周圍的環(huán)境溫度數(shù)據(jù),并將數(shù)據(jù)通過無線射頻電路發(fā)送到接收端,在接收端顯示出各節(jié)點的溫度值。同時,系統(tǒng)要求能過對溫度數(shù)據(jù)進行分析和判斷,如出現(xiàn)異常,則發(fā)出警報。主要包括:
(1)溫度采集模塊,溫度傳感器的功能是實現(xiàn)環(huán)境溫度的采集。采用DS18B20數(shù)字型溫度傳感器作為系統(tǒng)的溫度采集器件,可以很好地滿足系統(tǒng)的設(shè)計需求。
(2)無線收發(fā)模塊,射頻收發(fā)芯片要求能夠穩(wěn)定地用于系統(tǒng)傳輸溫度數(shù)據(jù),實現(xiàn)系統(tǒng)無線通信。系統(tǒng)采用的nRF24L01型無線射頻收發(fā)芯片工作于2.4—2.5GHz頻段的射頻芯片,其具有6個可選通信通道,非常契合系統(tǒng)的設(shè)計需求。
(3)LCD顯示模塊,系統(tǒng)要求能夠在接收端將接收到的溫度數(shù)據(jù)實時顯示出來,以便用戶觀察。12864型LCD顯示器能夠顯示多種圖形和文字,且尺寸小,驅(qū)動相對簡單,使用靈活性好,能夠滿足系統(tǒng)的設(shè)計需求。
(4)主控制模塊,基于對處理器的處理能力和開發(fā)成本的考慮,系統(tǒng)決定采用AT89S52型單片作為系統(tǒng)的核心處理器。AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8k在系統(tǒng)可編程Flash存儲器,能很好地滿足系統(tǒng)的處理需求。
(5)報警模塊,系統(tǒng)的報警系統(tǒng)對器件的要求比較簡單,它只需在溫度異常時,起到提醒用戶的效果。系統(tǒng)采用了一種低成本、易控制的報警器——蜂鳴器,作為系統(tǒng)的報警器件,同時配置一個LED燈起輔助作用,達到聽覺和視覺的雙重報警效果。
系統(tǒng)的程序開發(fā)語言為C-51,開發(fā)工具為Keil軟件。系統(tǒng)的程序設(shè)計包括數(shù)據(jù)采集節(jié)點和數(shù)據(jù)接收節(jié)點的程序設(shè)計,其流程圖分別如圖2(a)和圖2(b)所示。
(a)發(fā)送節(jié)點程序流程圖 (b)接收節(jié)點程序流程圖
圖2 系統(tǒng)收、發(fā)節(jié)點的程序流程圖
Fig.2 Sending and receiving node program flow
chart of the system
系統(tǒng)主要涉及到溫度采集模塊、無線射頻模塊、LCD顯示模塊、串口數(shù)據(jù)傳輸模塊的編程,接下來將重點介紹這幾個模塊的軟件實現(xiàn)過程。
數(shù)據(jù)采集發(fā)送部分上電后首先配置nRF24L01的相關(guān)寄存器.使其工作在發(fā)射狀態(tài),然后復位DSl8B20,向DSl8B20發(fā)送溫度轉(zhuǎn)換命令,讀取已轉(zhuǎn)換的溫度值,然后由nRF24L01發(fā)送。主CPU需要用芯片特定的指令系統(tǒng)來訪問芯片的寄存器,讀寫寄存器時,也要注意SPI總線的CSN時序,CSN是芯片的使能端口,當CSN為低電平時,主CPU才能有效地向芯片讀寫數(shù)據(jù)。因此,向芯片讀寫一個字節(jié)的指令或數(shù)據(jù)時,必需先把CSN拉低,讀寫完成后再釋放。實現(xiàn)程序如下:
uint SPI_RW_Reg(uchar reg, uchar value)
{uint status;
CSN=0; //拉低CSN,選通芯片
status=SPI_RW(reg); //選擇寄存器地址
SPI_RW(value); //并寫入相應的數(shù)據(jù)值
CSN=1; //釋放CSN,結(jié)束通信過程
return(status); //返回寄存器狀態(tài)值
}
nRF24L01在數(shù)據(jù)接收顯示中為接收狀態(tài)。當nRF24L01模塊配置為接收模式后,當接收到數(shù)據(jù)中斷時,從接收FIFO讀取數(shù)據(jù)。然后將其存儲到接收緩沖區(qū)rX_bur中。12864液晶顯示屏分為左右半屏顯示,每個半屏有8頁64列,分別由使能端CS1、CS2來選通。由于左右半屏在同一位置像素點共用一個地址,因此,要單獨顯示左、右半屏時,只能選通其中一個使能端。液晶通過一個8位的并行I/O口來傳輸數(shù)據(jù),單片機對I/O口送入的數(shù)據(jù)之后,通過控制LCDEN端口產(chǎn)生一個下降沿來鎖存數(shù)據(jù)。函數(shù)首先開通兩個使能端CS1、CS2,實現(xiàn)同時對兩個半屏清屏,然后設(shè)置起始頁碼和起始列,通過循環(huán)語句,不斷地寫入數(shù)據(jù)0,實現(xiàn)對整個屏幕清零。當要寫入其他數(shù)據(jù)時,同樣只需選通相應半屏,設(shè)置起始頁碼和起始列地址,在通過尋址的方式寫入所需的數(shù)據(jù)即可。
4 系統(tǒng)調(diào)試(System debugging)
系統(tǒng)的調(diào)試主要有硬件調(diào)試和軟件調(diào)試兩部分。由于系統(tǒng)的硬件電路板是自制的,從PCB畫圖到腐蝕、焊接,整個過程都是手工完成的,這就難免使電路板存在一些誤差和故障,所以,硬件調(diào)試的主要內(nèi)容就是在制作好電路板之后,檢測電路板的電氣連接是否正確,上電后各關(guān)鍵測試點的電壓是否正常等。在確保了硬件電路沒有問題之后,才可以進
入系統(tǒng)的軟件調(diào)試部分。系統(tǒng)軟件的作用就是控制系統(tǒng)主CPU協(xié)調(diào)系統(tǒng)其他各功能部件能夠正常有序地工作。本系統(tǒng)需要軟件控制的模塊主要是DS18B20溫度采集、射頻模塊、12864液晶顯示及蜂鳴器報警等。在軟件調(diào)試時,應該分模塊進行,各個擊破,最后整體聯(lián)調(diào)。
根據(jù)最終調(diào)試運行結(jié)果,系統(tǒng)可以實現(xiàn)4個節(jié)點的溫度的采集,并將數(shù)據(jù)通過無線射頻模塊發(fā)送到接收節(jié)點;在接收節(jié)點,4路溫度數(shù)據(jù)能夠穩(wěn)定地顯示在LCD屏上,并通過串口發(fā)送到PC機中。系統(tǒng)完成了本設(shè)計的要求,可應用于工農(nóng)業(yè)生產(chǎn)、科學研究、環(huán)境衛(wèi)生及各種日常生活中,并將發(fā)揮積極的作用。
5 結(jié)論(Conclusion)
采用高度集成的nRF24L01器件,大大簡化了系統(tǒng)硬件和軟件設(shè)計,減小了體積,提高了系統(tǒng)工作的可靠性。降低了系統(tǒng)成本,縮短了開發(fā)時間。實踐證明該系統(tǒng)設(shè)計簡單、成本低廉、通信可靠、運行穩(wěn)定、性能可靠,能夠廣泛應用于各類對溫度要求較為特殊的環(huán)境下溫度數(shù)據(jù)的檢測,具有較高的實用價值。
參考文獻(References)
[1] 宋曉偉,等.基于nRF24L01的無線溫度檢測系統(tǒng)[J].煤炭工程, 2010,(11):11-12.
[2] 時志云,等.新型高速無線射頻器件nRF24L01及其應用[J].國 外電子元器件,2007,8:42-44.
[3] 劉志平,趙國良.基于nRF24L01的近距離無線數(shù)據(jù)傳輸[J].應 用科技,2008,35(3):55-58.
[4] 曾勇,楊濤,馮月暉.基于nRF24L01的超低功耗無線傳感器 網(wǎng)絡(luò)節(jié)點設(shè)計[J].電子技術(shù)應用,2008,7:45-48.
[5] 王學梅,金廣鋒.數(shù)字溫度傳感器DS18B20在糧倉溫度智能控 制系統(tǒng)中的應用[J].科技廣場,2009,(5):217-218.
[6] 樊祥現(xiàn),袁平.nRF2401無線通信數(shù)據(jù)傳輸可靠性技術(shù)應用[J]. 自動化技術(shù)與應用,2008,27(7):71-73.
[7] 時志云,等.新型高速無線射頻器件nRF24L01及其應用[J].國 外電子元器件,2007,(8):42-44.
作者簡介:
徐艷玲(1979-),女,碩士,講師.研究領(lǐng)域:計算機網(wǎng)絡(luò),數(shù)
據(jù)庫應用.