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