胡中玉+岳強+馮維杰+佘東
摘 要: 根據(jù)無線傳感器網(wǎng)絡節(jié)點的硬件體系結構,設計出了節(jié)點,極大地降低了功耗。系統(tǒng)以AT89C2051單片機為核心,采用數(shù)字式溫度傳感器DS18B20、無線收發(fā)芯片nRF24L01實現(xiàn)了溫度的采集、無線收發(fā)等,給出了系統(tǒng)硬件及軟件的具體設計思想與實現(xiàn)方法,最后進行了實際測試。
關鍵詞: 無線傳感器網(wǎng)絡; AT89C2051單片機; 溫度檢測; 傳感器節(jié)點
中圖分類號: TN911?34; TP273 文獻標識碼: A 文章編號: 1004?373X(2014)07?0012?03
Design of wireless sensor network node based on nRF24L01
HU Zhong?yu1, YUE Qiang1, FENG Wei?jie1, SHE Dong2
(1. Kunming University, Kunming 650214, China; 2. Sichuan Electromechanical Institute of Vocation and Technology, Panzhihua 617000, China)
Abstract: According to the hardware architecture of wireless sensor network node, the nodes were designed, which can greatly reduce the power consumption. The system uses AT89C2051 single?chip microcomputer as the core. The temperature collection and wireless transceiver are realized by using the digital temperature sensor DS18B20 and wireless transceiver chip nRF24L01. The specific design thought and realization method of the hardware and software of the system are also provided. Finally, the practical test was conducted.
Keywords: wireless sensor network; AT89C2051 MCU; temperature measurement; sensor node
無線傳感網(wǎng)絡是當前的新興的前沿熱點研究領域。它綜合了傳感技術、嵌入式技術、無線通信和網(wǎng)絡技術[1]。無線傳感器網(wǎng)絡在軍事、地震預測、農(nóng)業(yè)、醫(yī)療等領域都得到了廣泛的應用[2]。無線傳感器網(wǎng)絡系統(tǒng)能實時監(jiān)測、感知和采集各種檢測對象的信息,通過嵌入式系統(tǒng)對信息進行加工和處理,然后利用無線通信技術,通過多跳中繼方式傳輸信息到遠處的終端和用戶[3]。所以無線傳感器網(wǎng)絡的設計可以建立在普通的無線溫度采集電路之上,結合無線通信技術來實現(xiàn)。本文將利用無線傳感器網(wǎng)絡的這一特點,采用低功耗的器件,設計一個簡易的無線傳感器網(wǎng)絡節(jié)點。
1 無線傳感器網(wǎng)絡節(jié)點的構成
傳感器網(wǎng)絡節(jié)點一般由數(shù)據(jù)采集模塊、數(shù)據(jù)處理和存儲模塊、數(shù)據(jù)傳輸模塊和電源四部分組成[4]。如圖1所示。
在節(jié)點設計的過程中,功耗是一個主要考慮的問題,因為大量的節(jié)點都是放置在野外的,只能靠電池供電,功耗太大的話,需要頻繁的更換電池,維護成本會提高[5]。所以在本系統(tǒng)中采用的器件都是相對低功耗的。傳感器模塊采用DS18B20數(shù)字式溫度傳感器來實現(xiàn)環(huán)境溫度的檢測;處理器模塊采用AT89C2051;無線通信模塊采用2.4 GHz無線收發(fā)芯片nRF24L01。
圖1 傳感器網(wǎng)絡節(jié)點的體系結構
2 硬件設計
2.1 數(shù)據(jù)采集模塊[6]
DS18B20為美國Dallas半導體公司生產(chǎn)的單線總線型溫度傳感器,測溫范圍為-55~125 ℃,最高分辨率可達0.062 5 ℃,可以滿足一般的測量需要。信息經(jīng)過單線接口送入DS18B20或從DS18B20送出。讀、寫和完成溫度變換所需的電源由數(shù)據(jù)線本身提供,不需要額外供電,這樣功耗低且可以簡化電源電路。DS18B20的接線電路如圖2所示,控制命令和溫度信息通過單片機的P1.7口來控制。
圖2 DS18B20的外圍接線
2.2 數(shù)據(jù)傳輸模塊
該模塊選用NORDIC公司推出的2.4 GHz無線收發(fā)芯片nRF24L01,它具有增頻率發(fā)生器、增強型的ShockBursTM模式控制器、功率放大器、晶體振蕩器、調(diào)制器和解調(diào)器。它功耗低,發(fā)射時的工作電流只有9 mA,接收時的工作電流只有12.3 mA,空閑模式使節(jié)能更方便。nRF24L01的部分接線電路如圖3所示。
圖3 nRF24L01的外圍部分接線
2.3 處理器模塊[7]
對于網(wǎng)絡節(jié)點的處理器來說,要實現(xiàn)將自己所檢測到的溫度信息發(fā)射出去;作為中繼節(jié)點,先接收然后再轉(zhuǎn)發(fā)其他節(jié)點的溫度數(shù)據(jù)兩個功能。而在其他時間,進入睡眠狀態(tài),節(jié)約能量。AT89C2051單片機具備用軟件設置的睡眠省電功能,所以能夠?qū)崿F(xiàn)以上功能。為了指示數(shù)據(jù)的接收和發(fā)送情況,又額外接入2只發(fā)光二極管。AT89C2051的接線如圖4所示。
3 軟件設計
在軟件設計的時候,主要考慮的問題仍然是節(jié)能,所以需要采用一些可以降低功耗的設計方法,比如:精簡冗余指令、優(yōu)化系統(tǒng)的時鐘和優(yōu)化工作時序等。
3.1 主程序設計
主程序開始后首先進行初始化,包括給相應的字符名稱賦值,設置串口通信參數(shù)等,然后進行通信鏈路的確定,這一步需要根據(jù)每個節(jié)點所在的位置和相鄰節(jié)點的位置來確定,所以需要先發(fā)送本身的序列號,再接收其他節(jié)點的信息,通過確認其他節(jié)點的序列號來得知相鄰的,可互相通信的節(jié)點,再將其他節(jié)點的序列號加在本身序列號之后進行發(fā)送,這樣,監(jiān)控中心可根據(jù)接收的序列號的順序得到該條通信線路上所包含的所有節(jié)點。在序列號發(fā)完以后進入睡眠模式,直到被溫度測試指令喚醒以后,給DS18B20發(fā)初始化脈沖,發(fā)送skipROM命令,進行溫度的檢測,將測得的數(shù)據(jù)發(fā)送,復位中斷返回,再次進入睡眠模式[8],流程圖如圖5所示。
圖4 AT89C2051的外圍部分接線
圖5 主程序流程圖
3.2 溫度采集程序設計[9]
由于DS18B20由一根單線實現(xiàn)數(shù)據(jù)的讀和寫,所以使用的關鍵是總線時序設置。先初始化,接著主機釋放總線進入接收狀態(tài)。流程圖如圖6所示。
3.3 無線傳輸程序設計[10]
nRF24L01的設置包括:頻道設置、本地地址設置和發(fā)射速率設置等。本設計中,使用Enhanced ShockBurstTM 收發(fā)模式。設置完成后,可以由單片機進行查詢模式的數(shù)據(jù)發(fā)送,流程圖如圖7,圖8所示。
圖6 DS18B20溫度檢測部分流程圖
圖7 nRF24L01發(fā)送流程圖
圖8 nRF24L01接收流程圖
4 性能測試
4.1 節(jié)點功耗測試
檢測狀態(tài)時功率=DS18B20的典型功率+AT89C2051在工作狀態(tài)時的功率+nRF24L01工作在RX和TX模式下的功率=3 V×1 mA+3 V×2.5 mA+3 V×(11.3+12.3) mA=3 V×27.1 mA=81.3 mW
數(shù)據(jù)轉(zhuǎn)發(fā)時功率=AT89C2051在工作狀態(tài)時的功率+nRF24L01工作在RX和TX模式下的功率=3 V×2.5 mA+3 V×(11.3+12.3) mA=80.3 mW
休眠時功率=AT89C2051在休眠時的功率+ nRF24L01工作在休眠模式下的功率 =3 V×2.5 μA+3 V×900 nA=3 V×3.4 μA=10.2 μW
4.2 通信質(zhì)量測試
在室外無障礙的環(huán)境下進行測試,分別選取5個測試距離,接收到的正確率見表1。
表1 通信距離和正確率的關系
[通信距離 /m\&正確率 /%\&5\&100\&10\&100\&20\&99\&50\&10\&80\&0\&]
5 結 語
該無線傳感器網(wǎng)絡節(jié)點電路簡單,功耗低,性能穩(wěn)定,可靠性高,可以應用于檢測環(huán)境、糧庫及展廳等封閉空間或其他需要多點溫度檢測的場合。
參考文獻
[1] 孫利民,李建中,陳渝,等.無線傳感網(wǎng)絡[M].北京:清華大學出版社,2005.
[2] AKYILDIZ I F, SU W, CAYIRCI E. Wireless sensor networks: a survey [J]. Computer Ne tworks, 2002, 38(3): 393?422.
[3] 張曉彤.無線傳感器網(wǎng)絡與人工生命[M].北京:國防工業(yè)出版社,2008.
[4] 曾勇,楊濤,馮月暉.基于nRF24L01的超低功耗無線傳感器網(wǎng)絡節(jié)點設計[J].電子技術應用,2008(7):45?48.
[5] 焦鳳昌,龔仁喜,臧慧,等. 一種新型的無線低功耗環(huán)境指數(shù)傳感器[J].傳感器與微系統(tǒng),2013(8):81?84.
[6] 求是科技.單片機典型模塊設計實例導航[M].北京:人民郵電出版社,2004.
[7] 胡漢才.單片機原理及其接口技術[M].北京:清華大學出版社,2004.
[8] 佘東,胡中玉.基于單片機的無線測溫系統(tǒng)設計[J].微型機與應用,2012,31(13):78?80.
[9] 蔡美琴,張為民.MCS?51系列單片機系統(tǒng)及其應用[M].2版.北京:高等教育出版社,2004.
[10] 張培仁.基于C語言編程MCS?51單片機原理與應用[M].北京:清華大學出版社,2003.
3 軟件設計
在軟件設計的時候,主要考慮的問題仍然是節(jié)能,所以需要采用一些可以降低功耗的設計方法,比如:精簡冗余指令、優(yōu)化系統(tǒng)的時鐘和優(yōu)化工作時序等。
3.1 主程序設計
主程序開始后首先進行初始化,包括給相應的字符名稱賦值,設置串口通信參數(shù)等,然后進行通信鏈路的確定,這一步需要根據(jù)每個節(jié)點所在的位置和相鄰節(jié)點的位置來確定,所以需要先發(fā)送本身的序列號,再接收其他節(jié)點的信息,通過確認其他節(jié)點的序列號來得知相鄰的,可互相通信的節(jié)點,再將其他節(jié)點的序列號加在本身序列號之后進行發(fā)送,這樣,監(jiān)控中心可根據(jù)接收的序列號的順序得到該條通信線路上所包含的所有節(jié)點。在序列號發(fā)完以后進入睡眠模式,直到被溫度測試指令喚醒以后,給DS18B20發(fā)初始化脈沖,發(fā)送skipROM命令,進行溫度的檢測,將測得的數(shù)據(jù)發(fā)送,復位中斷返回,再次進入睡眠模式[8],流程圖如圖5所示。
圖4 AT89C2051的外圍部分接線
圖5 主程序流程圖
3.2 溫度采集程序設計[9]
由于DS18B20由一根單線實現(xiàn)數(shù)據(jù)的讀和寫,所以使用的關鍵是總線時序設置。先初始化,接著主機釋放總線進入接收狀態(tài)。流程圖如圖6所示。
3.3 無線傳輸程序設計[10]
nRF24L01的設置包括:頻道設置、本地地址設置和發(fā)射速率設置等。本設計中,使用Enhanced ShockBurstTM 收發(fā)模式。設置完成后,可以由單片機進行查詢模式的數(shù)據(jù)發(fā)送,流程圖如圖7,圖8所示。
圖6 DS18B20溫度檢測部分流程圖
圖7 nRF24L01發(fā)送流程圖
圖8 nRF24L01接收流程圖
4 性能測試
4.1 節(jié)點功耗測試
檢測狀態(tài)時功率=DS18B20的典型功率+AT89C2051在工作狀態(tài)時的功率+nRF24L01工作在RX和TX模式下的功率=3 V×1 mA+3 V×2.5 mA+3 V×(11.3+12.3) mA=3 V×27.1 mA=81.3 mW
數(shù)據(jù)轉(zhuǎn)發(fā)時功率=AT89C2051在工作狀態(tài)時的功率+nRF24L01工作在RX和TX模式下的功率=3 V×2.5 mA+3 V×(11.3+12.3) mA=80.3 mW
休眠時功率=AT89C2051在休眠時的功率+ nRF24L01工作在休眠模式下的功率 =3 V×2.5 μA+3 V×900 nA=3 V×3.4 μA=10.2 μW
4.2 通信質(zhì)量測試
在室外無障礙的環(huán)境下進行測試,分別選取5個測試距離,接收到的正確率見表1。
表1 通信距離和正確率的關系
[通信距離 /m\&正確率 /%\&5\&100\&10\&100\&20\&99\&50\&10\&80\&0\&]
5 結 語
該無線傳感器網(wǎng)絡節(jié)點電路簡單,功耗低,性能穩(wěn)定,可靠性高,可以應用于檢測環(huán)境、糧庫及展廳等封閉空間或其他需要多點溫度檢測的場合。
參考文獻
[1] 孫利民,李建中,陳渝,等.無線傳感網(wǎng)絡[M].北京:清華大學出版社,2005.
[2] AKYILDIZ I F, SU W, CAYIRCI E. Wireless sensor networks: a survey [J]. Computer Ne tworks, 2002, 38(3): 393?422.
[3] 張曉彤.無線傳感器網(wǎng)絡與人工生命[M].北京:國防工業(yè)出版社,2008.
[4] 曾勇,楊濤,馮月暉.基于nRF24L01的超低功耗無線傳感器網(wǎng)絡節(jié)點設計[J].電子技術應用,2008(7):45?48.
[5] 焦鳳昌,龔仁喜,臧慧,等. 一種新型的無線低功耗環(huán)境指數(shù)傳感器[J].傳感器與微系統(tǒng),2013(8):81?84.
[6] 求是科技.單片機典型模塊設計實例導航[M].北京:人民郵電出版社,2004.
[7] 胡漢才.單片機原理及其接口技術[M].北京:清華大學出版社,2004.
[8] 佘東,胡中玉.基于單片機的無線測溫系統(tǒng)設計[J].微型機與應用,2012,31(13):78?80.
[9] 蔡美琴,張為民.MCS?51系列單片機系統(tǒng)及其應用[M].2版.北京:高等教育出版社,2004.
[10] 張培仁.基于C語言編程MCS?51單片機原理與應用[M].北京:清華大學出版社,2003.
3 軟件設計
在軟件設計的時候,主要考慮的問題仍然是節(jié)能,所以需要采用一些可以降低功耗的設計方法,比如:精簡冗余指令、優(yōu)化系統(tǒng)的時鐘和優(yōu)化工作時序等。
3.1 主程序設計
主程序開始后首先進行初始化,包括給相應的字符名稱賦值,設置串口通信參數(shù)等,然后進行通信鏈路的確定,這一步需要根據(jù)每個節(jié)點所在的位置和相鄰節(jié)點的位置來確定,所以需要先發(fā)送本身的序列號,再接收其他節(jié)點的信息,通過確認其他節(jié)點的序列號來得知相鄰的,可互相通信的節(jié)點,再將其他節(jié)點的序列號加在本身序列號之后進行發(fā)送,這樣,監(jiān)控中心可根據(jù)接收的序列號的順序得到該條通信線路上所包含的所有節(jié)點。在序列號發(fā)完以后進入睡眠模式,直到被溫度測試指令喚醒以后,給DS18B20發(fā)初始化脈沖,發(fā)送skipROM命令,進行溫度的檢測,將測得的數(shù)據(jù)發(fā)送,復位中斷返回,再次進入睡眠模式[8],流程圖如圖5所示。
圖4 AT89C2051的外圍部分接線
圖5 主程序流程圖
3.2 溫度采集程序設計[9]
由于DS18B20由一根單線實現(xiàn)數(shù)據(jù)的讀和寫,所以使用的關鍵是總線時序設置。先初始化,接著主機釋放總線進入接收狀態(tài)。流程圖如圖6所示。
3.3 無線傳輸程序設計[10]
nRF24L01的設置包括:頻道設置、本地地址設置和發(fā)射速率設置等。本設計中,使用Enhanced ShockBurstTM 收發(fā)模式。設置完成后,可以由單片機進行查詢模式的數(shù)據(jù)發(fā)送,流程圖如圖7,圖8所示。
圖6 DS18B20溫度檢測部分流程圖
圖7 nRF24L01發(fā)送流程圖
圖8 nRF24L01接收流程圖
4 性能測試
4.1 節(jié)點功耗測試
檢測狀態(tài)時功率=DS18B20的典型功率+AT89C2051在工作狀態(tài)時的功率+nRF24L01工作在RX和TX模式下的功率=3 V×1 mA+3 V×2.5 mA+3 V×(11.3+12.3) mA=3 V×27.1 mA=81.3 mW
數(shù)據(jù)轉(zhuǎn)發(fā)時功率=AT89C2051在工作狀態(tài)時的功率+nRF24L01工作在RX和TX模式下的功率=3 V×2.5 mA+3 V×(11.3+12.3) mA=80.3 mW
休眠時功率=AT89C2051在休眠時的功率+ nRF24L01工作在休眠模式下的功率 =3 V×2.5 μA+3 V×900 nA=3 V×3.4 μA=10.2 μW
4.2 通信質(zhì)量測試
在室外無障礙的環(huán)境下進行測試,分別選取5個測試距離,接收到的正確率見表1。
表1 通信距離和正確率的關系
[通信距離 /m\&正確率 /%\&5\&100\&10\&100\&20\&99\&50\&10\&80\&0\&]
5 結 語
該無線傳感器網(wǎng)絡節(jié)點電路簡單,功耗低,性能穩(wěn)定,可靠性高,可以應用于檢測環(huán)境、糧庫及展廳等封閉空間或其他需要多點溫度檢測的場合。
參考文獻
[1] 孫利民,李建中,陳渝,等.無線傳感網(wǎng)絡[M].北京:清華大學出版社,2005.
[2] AKYILDIZ I F, SU W, CAYIRCI E. Wireless sensor networks: a survey [J]. Computer Ne tworks, 2002, 38(3): 393?422.
[3] 張曉彤.無線傳感器網(wǎng)絡與人工生命[M].北京:國防工業(yè)出版社,2008.
[4] 曾勇,楊濤,馮月暉.基于nRF24L01的超低功耗無線傳感器網(wǎng)絡節(jié)點設計[J].電子技術應用,2008(7):45?48.
[5] 焦鳳昌,龔仁喜,臧慧,等. 一種新型的無線低功耗環(huán)境指數(shù)傳感器[J].傳感器與微系統(tǒng),2013(8):81?84.
[6] 求是科技.單片機典型模塊設計實例導航[M].北京:人民郵電出版社,2004.
[7] 胡漢才.單片機原理及其接口技術[M].北京:清華大學出版社,2004.
[8] 佘東,胡中玉.基于單片機的無線測溫系統(tǒng)設計[J].微型機與應用,2012,31(13):78?80.
[9] 蔡美琴,張為民.MCS?51系列單片機系統(tǒng)及其應用[M].2版.北京:高等教育出版社,2004.
[10] 張培仁.基于C語言編程MCS?51單片機原理與應用[M].北京:清華大學出版社,2003.