基于DS18B20和nRF2401的庫區測溫網(wǎng)絡(luò )無(wú)線(xiàn)傳輸系統
發(fā)送過(guò)程為:設置Config寄存器使器件處于發(fā)送模式,當測溫節點(diǎn)有數據需要發(fā)送時(shí),溫度和地址數據送到nRF2401中,單片機將CE管腳置高,激活ShockBurst發(fā)送模式,完成數據打包并高速發(fā)送,然后等待中斷。
本文引用地址:http://dyxdggzs.com/article/280695.htm接收過(guò)程為:設置Config寄存器使器件處于接收模式,單片機將CE管腳置高,激活ShockBurst接收模式,延時(shí)130μs后檢測空中信息,若接收到有效的數據包,則發(fā)送確認信號,產(chǎn)生中斷,同時(shí)讀出有效數據并發(fā)送給單片機,單片機通過(guò)串口將數據發(fā)給PC機。
3.3.2 收發(fā)模式的自動(dòng)識別設計
為簡(jiǎn)化編程,增強代碼通用性,本文為上位單片機和下位單片機設計了完全相同的同一套程序代碼,系統自動(dòng)識別并設置工作模式,無(wú)需人為區分單片機是接收還是發(fā)送。實(shí)現接收和發(fā)送模式自動(dòng)切換的代碼如下:
void Switch_RT(uchar SW, uchar mode)
{ //收發(fā)模式切換子函數
CE=0; //待機
if(SW) //為1
SPI_WR_Reg(CONFIG, SPI_RD(CONFIG) & 0xfe); //發(fā)射模式
else //為0
SPI_WR_Reg(CONFIG, SPI_RD(CONFIG) | 0x01); //接收模式if(mode)
CE=1; //拉高CE啟動(dòng)收發(fā)
}
程序默認無(wú)線(xiàn)模塊處于接收模式,下位單片機測得溫度數據后,將Config寄存器的PRIM_RX位置0,控制nRF2401工作于發(fā)送模式,將數據打包發(fā)出,隨即將PRIM_RX位置1,處于接收模式;上位機端nRF2401接收到數據包后,即由上位單片機將其讀出并通過(guò)串口傳給上位PC機。
PC機向下位機發(fā)送指令時(shí),首先將指令發(fā)給上位單片機,上位單片機一旦接到指令,即將PRIM_RX位置0,控制nRF2401工作于發(fā)送模式,發(fā)出數據包;下位單片機通過(guò)nRF2401接收后將數據包讀出執行。
4 系統運行情況
PC機應用程序采用Visual Studio2010 VB.net編寫(xiě),上位單片機與PC機應用程序之間的通信通過(guò)串口控件實(shí)現,二者之間的參數設置需一致。
程序運行界面如圖4所示,各庫區溫度正常時(shí),溫度值字體顏色正常,某庫區溫度超過(guò)正常值時(shí),相應溫度值字體以紅色顯示并閃爍,下位單片機自動(dòng)接通對應庫區繼電器,啟動(dòng)散熱風(fēng)扇進(jìn)行降溫;當溫度下降至正常值后,單片機控制繼電器關(guān)斷散熱風(fēng)扇,同時(shí)溫度值字體顏色恢復正常。溫度值右側標簽顯示的數據是設定的正常溫度范圍。
“庫區選擇”組合框中有10個(gè)復選框,對應10個(gè)庫區;按下“啟動(dòng)風(fēng)扇”按鈕可對所選庫區進(jìn)行強制通風(fēng);按下“關(guān)閉風(fēng)扇”按鈕可強制關(guān)閉散熱風(fēng)扇;按下“溫度范圍設定”按鈕可對所選庫區報警溫度閾值進(jìn)行設置;按下“保存數據”按鈕可將庫區編號、溫度值、時(shí)間信息等保存至指定位置,便于查看分析。
5 結論
利用本文設計的無(wú)線(xiàn)傳輸系統,可以采集10個(gè)重要庫所的溫度數據,經(jīng)過(guò)單片機的處理,將數據通過(guò)nRF2401傳輸給PC機顯示。經(jīng)實(shí)測證明,此無(wú)線(xiàn)傳輸方案能準確采集并傳送溫度數據,傳送距離可達60米,空曠地帶接近100米,既避免了繁瑣的布線(xiàn),又可有效防止惡劣天候的影響,采用元件少、簡(jiǎn)單易行、成本低廉、性能可靠、便于檢修,是一種新穎實(shí)用的庫區溫度監控系統。
參考文獻:
[1]劉斌.基于nRF2401和GPRS的無(wú)線(xiàn)溫度傳輸系統設計[J].現代電子技術(shù),2012;35(15):46-48
[2]王旭,馬汝建,王洪斌. 基于nRF24E1的多點(diǎn)無(wú)線(xiàn)測溫報警系統設計[J]. 濟南大學(xué)學(xué)報(自然科學(xué)版),2013;27(4);352-357
[3]丁恩杰,蹤曉志.基于nRF24E1和DS18B20的無(wú)線(xiàn)測溫系統[J].儀表技術(shù)與傳感器,2010;11(3);60-62
[4]李飛,沈玲,黃熹. 1-Wire總線(xiàn)測溫網(wǎng)絡(luò )的構建[J]. 電子產(chǎn)品世界,2012;(10);43-44
[5]孫保群,王瓊. 基于nRF2401軟件跳頻協(xié)議的設計與實(shí)現[J].電子技術(shù)應用,2012;38(5);46-48,51
[6]郭吉術(shù),林明星,劉偉,等. 基于nRF2401的無(wú)線(xiàn)扭矩監測系統[J].儀表技術(shù)與傳感器,2012;(12);57-60
[7]朱嶸濤,徐愛(ài)鈞,葉傳濤. STC15單片機和nRF2401的無(wú)線(xiàn)門(mén)禁系統設計[J].單片機與嵌入式系統應用,2014;(6);57-60
[8]王曉峰,張致恒,張 波,等. 基于nRF2401的高速路不停車(chē)收費系統[J]. 電力學(xué)報,2009;24(5);431-433
[9]呂勝杰,霍淑艷. 基于DS18B20的單總線(xiàn)多點(diǎn)測溫技術(shù)[J].現代電子技術(shù),2011;34(2);185-187
[10]陳佳聞. 基于多點(diǎn)測溫的溫室智能控制系統設計[J].山東農業(yè)大學(xué)學(xué)報(自然科學(xué)版),2010;41(3);435-439
評論