馮 旭,衛(wèi) 輝
(石河子大學(xué) 信息科學(xué)與技術(shù)學(xué)院,新疆 石河子832003)
隨著通信技術(shù)的發(fā)展與進(jìn)步,現(xiàn)代通信技術(shù)已經(jīng)在各個(gè)領(lǐng)域極為廣泛地應(yīng)用[1],傳統(tǒng)的溫濕度監(jiān)控系統(tǒng)大多采用人工方式,而且各種傳感器與處理器之間通過有線連接方式通信,費(fèi)時(shí)費(fèi)力,造成人力資源浪費(fèi)、系統(tǒng)維護(hù)困難、組網(wǎng)復(fù)雜等問題。
無線傳感網(wǎng)絡(luò)可以有效地解決有線連接通信方式所帶來的問題,但無線傳感網(wǎng)絡(luò)的節(jié)點(diǎn)能量有限限制了無線傳感網(wǎng)絡(luò)的發(fā)展,因此,盡可能減少節(jié)點(diǎn)能量消耗是無線傳感網(wǎng)絡(luò)應(yīng)用的一個(gè)重要環(huán)節(jié)。目前,國內(nèi)外學(xué)者已經(jīng)在網(wǎng)絡(luò)能量優(yōu)化算法方面做了大量的研究。如石磊[2]對傳統(tǒng)的分簇路由算法進(jìn)行了改進(jìn),在簇建立階段采用改進(jìn)的LEACHDCHS算法,在數(shù)據(jù)傳輸路由階段,采用基于蟻群優(yōu)化算法改進(jìn)節(jié)點(diǎn)能耗,最后通過模擬及現(xiàn)場實(shí)驗(yàn),驗(yàn)證了改進(jìn)的算法在保證數(shù)據(jù)傳輸穩(wěn)定的同時(shí),有較好的節(jié)能效果。韓廣輝等[3]針對基于 LEACH(Low-Energy Adaptive Clustering Hieravchy Protocol)協(xié)議中簇頭隨機(jī)選取造成網(wǎng)絡(luò)能耗過快的問題,提出了LEACH-E(LEACH based on Energy)算法。該算法在簇頭選取時(shí)引入了節(jié)點(diǎn)的剩余能量以及網(wǎng)絡(luò)的平均能量,使剩余能量比網(wǎng)絡(luò)平均能量高的節(jié)點(diǎn)優(yōu)先充當(dāng) 簇 頭。YU H,POWELL N,STEMBRIDGE D等[4]提出一種基于能量有效性分簇的粒子群優(yōu)化算法,此算法分為路由算法和分簇算法兩部分,路由算法由高效的粒子編碼方案和多目標(biāo)適應(yīng)度函數(shù)發(fā)展而來,而分簇算法是通過考慮負(fù)載平衡以及節(jié)點(diǎn)的剩余能量而提出。ARSHAD J,TOWNEND P,XU J等[5]提出了一種加入移動協(xié)調(diào)節(jié)點(diǎn)和匯合節(jié)點(diǎn)的LEACH優(yōu)化算法,匯合節(jié)點(diǎn)充當(dāng)存儲節(jié)點(diǎn)的作用,通過協(xié)調(diào)節(jié)點(diǎn)的移動,縮短節(jié)點(diǎn)間的通信距離,降低了網(wǎng)絡(luò)的總能耗。根據(jù)前人的研究成果及針對LEACH (Low-Energy Adaptive Clustering Hierarchy,LEACH) 路由算法的缺陷,提出了一種能量異構(gòu)自適應(yīng)成簇路由算法。
本系統(tǒng)主要用于溫濕度的采集、傳輸和顯示,系統(tǒng)包括終端節(jié)點(diǎn)、協(xié)調(diào)器節(jié)點(diǎn)以及上位機(jī),而本文主要對系統(tǒng)路由算法進(jìn)行了研究,在LEACH分簇算法的基礎(chǔ)上提出了一種能量異構(gòu)自適應(yīng)傳感網(wǎng)絡(luò)成簇算法,并從簇首選擇這一環(huán)節(jié)對LEACH算法進(jìn)行改進(jìn)。
根據(jù)系統(tǒng)設(shè)計(jì)要求,采用無線傳感器網(wǎng)絡(luò)技術(shù),設(shè)計(jì)了一種基于改進(jìn)的LEACH路由算法的溫濕度采集系統(tǒng)。該系統(tǒng)主要分為三個(gè)部分:信息采集子系統(tǒng),協(xié)調(diào)器以及上位機(jī)。系統(tǒng)的總體框圖如圖1所示。
圖1 系統(tǒng)整體結(jié)構(gòu)圖
信息采集子系統(tǒng)由分布在采集區(qū)域中的ZigBee無線傳感器節(jié)點(diǎn)構(gòu)成,ZigBee節(jié)點(diǎn)上安裝有溫濕度傳感器。傳感器將采集到的溫濕度數(shù)據(jù)通過ZigBee無線技術(shù)把這些信息發(fā)送到協(xié)調(diào)器上,協(xié)調(diào)器再把接收到的信息通過RS232串口發(fā)送給上位機(jī)。終端節(jié)點(diǎn)和協(xié)調(diào)節(jié)點(diǎn)采用TI公司的CC2530型芯片,該芯片內(nèi)部集成了2.4 GHz標(biāo)準(zhǔn)射頻收發(fā)器和增強(qiáng)型51單片機(jī),具有256 Kb的閃存容量,完全滿足溫濕度數(shù)據(jù)的采集與傳輸。CC2530芯片的具體性能參數(shù)如表1所示。
表1 CC2530參數(shù)
溫濕度傳感器采用DHT11數(shù)字溫濕度傳感器,DHT11傳感器是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器[6]。DHT11傳感器具有響應(yīng)速度快、抗干擾能力強(qiáng)、精度高等優(yōu)點(diǎn)[7-9]。DHT11傳感器部分性能參數(shù)如表2所示。
表2 DHT11參數(shù)
DHT11與CC2530的引腳連接如圖2所示,VCC引腳接電源,GND引腳接地,DATA數(shù)據(jù)引腳與CC2530芯片的P0_7引腳相連。
圖2 DHT11與CC2530的引腳連接圖
ZigBee無線傳感網(wǎng)絡(luò)采用簇狀拓?fù)浣Y(jié)構(gòu),在網(wǎng)絡(luò)節(jié)點(diǎn)上安裝溫濕度傳感器,在20 m×20 m的監(jiān)測區(qū)域內(nèi)部署采用ZigBee技術(shù)將15個(gè)傳感器器組建成一個(gè)無線傳感網(wǎng)絡(luò),網(wǎng)絡(luò)的模型如圖3所示。
圖3 無線傳感網(wǎng)絡(luò)
LEACH算法是一種無線傳感器網(wǎng)絡(luò)路由協(xié)議,該算法基本思想是以循環(huán)的方式隨機(jī)選擇簇頭節(jié)點(diǎn),將整個(gè)網(wǎng)絡(luò)的能量負(fù)載平均分配到每個(gè)傳感器節(jié)點(diǎn)中,從而達(dá)到降低網(wǎng)絡(luò)能源消耗、提高網(wǎng)絡(luò)整體生存時(shí)間的目的。LEACH算法具有節(jié)點(diǎn)能量消耗過快和生存時(shí)間短的缺點(diǎn),針對LEACH算法存在的問題提出了一種把節(jié)點(diǎn)能量和離基站距離作為考慮能否成為簇頭節(jié)點(diǎn)依據(jù)的簇頭選舉算法。該算法將能量最大與離基站距離最近的節(jié)點(diǎn)作為簇頭,且一旦成為簇頭節(jié)點(diǎn)后將不再在下輪當(dāng)選為簇頭節(jié)點(diǎn),防止節(jié)點(diǎn)提前將能量消耗殆盡。
本算法能量模型如圖4,采用常用的無線網(wǎng)絡(luò)傳輸能量模型來計(jì)算節(jié)點(diǎn)傳輸和接收數(shù)據(jù)時(shí)的能量消耗。在此模型[10-11]中,假定節(jié)點(diǎn)初始能量為E0(1+rand×a),而協(xié)調(diào)節(jié)點(diǎn)能量是無限多。當(dāng)某個(gè)節(jié)點(diǎn)發(fā)送字節(jié)的信息給相距為d的另一個(gè)節(jié)點(diǎn)時(shí)的能量消耗計(jì)算如式(1):
其中,a是初始能量倍數(shù);ETx是指每傳輸l bit信息時(shí)節(jié)點(diǎn)所消耗的能量;Eamp是功率放大器在自由空間模型中的能量消耗;Efs是功率放大器在多路勁模型下的能量消耗;d0為距離閾值。當(dāng)某個(gè)節(jié)點(diǎn)接收來自距離為d的節(jié)點(diǎn)發(fā)送的l bit信息時(shí)能量消耗計(jì)算如式(3)所示:
因此,節(jié)點(diǎn)收發(fā)l bit信息的能量消耗計(jì)算如式(4)所示:
圖4 無線通信能量損耗模型
1)簇頭選舉。
分簇開始時(shí),首先需要選擇一定數(shù)量的簇頭。普通節(jié)點(diǎn)如果想要成為簇頭,由三個(gè)條件共同決定,分別為當(dāng)前網(wǎng)絡(luò)想要得到簇頭加權(quán)概率p(i)、節(jié)點(diǎn)與基站距離以及節(jié)點(diǎn)的剩余能量。簇頭加權(quán)概率p(i)由節(jié)點(diǎn)的選擇成簇概率決定,簇頭個(gè)數(shù)計(jì)算如式(5)式(6)[12]。
其中N為無線傳感網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量,M為監(jiān)測區(qū)域邊長。在選擇簇頭時(shí),將滿足能量條件的節(jié)點(diǎn)隨機(jī)產(chǎn)生一個(gè)0~1的數(shù),若這個(gè)數(shù)小于預(yù)先設(shè)定閾值T(n),則此節(jié)點(diǎn)在這一輪中成為簇頭;否則該節(jié)點(diǎn)繼續(xù)作為普通節(jié)點(diǎn)進(jìn)入休眠狀態(tài)直至本輪簇頭選舉結(jié)束。為了使具有更多剩余能量且離基站更近的節(jié)點(diǎn)成為簇頭,文中的閾值計(jì)算如式(7)所示:
其中:p代表簇頭節(jié)點(diǎn)比例,r代表當(dāng)前輪數(shù),G指在之前的1/p輪中沒有當(dāng)選簇頭的節(jié)點(diǎn)集合,E'表示節(jié)點(diǎn)當(dāng)前能量全網(wǎng)平均剩余能量,η為調(diào)節(jié)因子。
2)簇的形成。
當(dāng)選擇好簇頭以后,簇頭向整個(gè)無線傳感網(wǎng)絡(luò)廣播自己成為簇頭的信息。其他節(jié)點(diǎn)通過判斷接收到的廣播的信號強(qiáng)度及自己離簇頭的距離來選擇要加入哪一個(gè)簇。這些節(jié)點(diǎn)需要向簇頭發(fā)送一個(gè)包含所要加入的簇頭的ID、節(jié)點(diǎn)自身的ID以及自身的當(dāng)前能量的請求加入信號。
簇頭接收到節(jié)點(diǎn)發(fā)送的信號后,基于TDMA(Time Division Multiple Access)協(xié)議創(chuàng)建一張時(shí)序表。TDMA[13]是一種分時(shí)多址復(fù)用技術(shù),它將時(shí)間以幀為周期進(jìn)行劃分,然后將每一幀分為不同時(shí)隙供不同節(jié)點(diǎn)進(jìn)行通信,每個(gè)成員節(jié)點(diǎn)只能在分配到的時(shí)隙內(nèi)傳輸數(shù)據(jù)。根據(jù)此時(shí)序表,在節(jié)點(diǎn)不發(fā)送數(shù)據(jù)的時(shí)隙內(nèi),其可以關(guān)閉掉自身的無線電,從而降低節(jié)點(diǎn)的能量消耗。
3)數(shù)據(jù)傳輸階段。
分簇完成以后,就進(jìn)入了數(shù)據(jù)傳輸階段。簇內(nèi)的成員節(jié)點(diǎn)采集溫濕度信息,通過單跳方式把數(shù)據(jù)傳輸給簇頭,簇頭再把收集到的數(shù)據(jù)發(fā)送給協(xié)調(diào)節(jié)點(diǎn)。
本文采用MATLAB軟件進(jìn)行仿真實(shí)驗(yàn)。實(shí)驗(yàn)由15個(gè)傳感器節(jié)點(diǎn)隨機(jī)散布于20 m×20 m的監(jiān)測區(qū)域內(nèi),傳感器節(jié)點(diǎn)的初始能量為0.1 J,采取連續(xù)發(fā)送模式,每個(gè)節(jié)點(diǎn)每個(gè)時(shí)隙傳輸4 000 bit(500 byte)的感知數(shù)據(jù),Sink節(jié)點(diǎn)坐標(biāo)為(10,10),選取的仿真場景參數(shù)見表3。
表3 網(wǎng)絡(luò)基本參數(shù)表
按照2.1設(shè)定的環(huán)境參數(shù)進(jìn)行仿真試驗(yàn),對本算法與LEACH算法性能進(jìn)行比較。
1)能源有效性的比較。
通過仿真可知本算法第一個(gè)死亡節(jié)點(diǎn)死亡時(shí)間比LEACH算法晚了大約147 s,最后一個(gè)死亡節(jié)點(diǎn)晚了大約239 s,存活節(jié)點(diǎn)數(shù)量變化如表4。
表4 存活節(jié)點(diǎn)數(shù)量變化表
圖5為LEACH算法和本算法存活節(jié)點(diǎn)隨時(shí)間變化關(guān)系。
圖5 運(yùn)行時(shí)間與存活節(jié)點(diǎn)數(shù)關(guān)系
2)網(wǎng)絡(luò)吞吐量的比較。
兩種算法網(wǎng)絡(luò)吞吐量如表5所示,本算法在一個(gè)生命周期內(nèi)Sink節(jié)點(diǎn)收到的數(shù)據(jù)總量是LEACH算法近2.17倍,本算法平均每消耗1 J的能量Sink節(jié)點(diǎn)收到的數(shù)據(jù)量是LEACH算法的2.17倍。
表5 網(wǎng)絡(luò)吞吐量情況表
圖6和圖7分別是網(wǎng)絡(luò)數(shù)據(jù)傳輸總量隨時(shí)間變化圖和網(wǎng)絡(luò)消耗能量隨時(shí)間變化圖,通過圖6可知基于本算法的無線傳感網(wǎng)絡(luò)比基于LEACH路由算法的無線傳感網(wǎng)絡(luò)數(shù)據(jù)傳輸量多;從圖7可知基于本算法的無線傳感網(wǎng)絡(luò)比基于LEACH路由算法的無線傳感網(wǎng)絡(luò)能量消耗慢。結(jié)果表明采用本算法能夠明顯延長無線傳感網(wǎng)絡(luò)的生命周期,增加網(wǎng)絡(luò)數(shù)據(jù)傳輸量。
圖6 運(yùn)行時(shí)間與數(shù)據(jù)傳輸總量關(guān)系
圖7 能量消耗與時(shí)間關(guān)系
本文利用樣機(jī)分別對不同區(qū)域中溫濕度采集節(jié)點(diǎn)的測量精度與數(shù)據(jù)傳輸性能進(jìn)行了測試。
節(jié)點(diǎn)主要對溫濕度采集進(jìn)行測試。對不同區(qū)域的節(jié)點(diǎn)進(jìn)行20次測試,取平均值,測試結(jié)果如表6所示。
表6 溫濕度采集測試
數(shù)據(jù)傳輸性能測試主要測試各采集節(jié)點(diǎn)與協(xié)調(diào)節(jié)點(diǎn)的通信可靠性。由于節(jié)點(diǎn)個(gè)數(shù)有限,本課題組在20 m×20 m的監(jiān)測區(qū)域內(nèi)隨機(jī)布置了6個(gè)傳感節(jié)點(diǎn),測試了6個(gè)點(diǎn)的數(shù)據(jù)傳輸準(zhǔn)確性。設(shè)定節(jié)點(diǎn)數(shù)據(jù)采集周期為6 s,測試時(shí)長為6 min,測試結(jié)果如表7所示。由表7可知,所有的數(shù)據(jù)采集節(jié)點(diǎn)與協(xié)調(diào)節(jié)點(diǎn)之間的通信成功率均為100%,驗(yàn)證了系統(tǒng)通信協(xié)議的可靠性。
表7 數(shù)據(jù)傳輸準(zhǔn)確性測試結(jié)果
本文提出了一個(gè)基于能量異構(gòu)自適應(yīng)傳感網(wǎng)絡(luò)成簇算法的溫濕度采集系統(tǒng),重點(diǎn)是通過對其中的無線傳感網(wǎng)絡(luò)的路由算法進(jìn)行優(yōu)化,延長了網(wǎng)絡(luò)壽命,增加網(wǎng)絡(luò)數(shù)據(jù)傳輸總量。仿真實(shí)驗(yàn)結(jié)果表明,該算法減少了簇頭的能量消耗,延長了整個(gè)無線傳感網(wǎng)絡(luò)的壽命近32%,Sink節(jié)點(diǎn)收到的數(shù)據(jù)量提高了近2.17倍,從而保證了溫濕度采集系統(tǒng)能夠長時(shí)間高效率的運(yùn)行。系統(tǒng)測試實(shí)驗(yàn)表明該系統(tǒng)能夠以較高的精度完成溫濕度數(shù)據(jù)的采集,且系統(tǒng)無線傳感網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)臏?zhǔn)確性良好。
順德職業(yè)技術(shù)學(xué)院學(xué)報(bào)2018年4期