精準農(nóng)業(yè)無線傳感器網(wǎng)絡
摘要:設計并實現(xiàn)精準農(nóng)業(yè)無線傳感器網(wǎng)路,用于監(jiān)測農(nóng)作物生長環(huán)境。用高性能、超低功耗單片機MSP430F149設計溫濕度和光照強度傳感器節(jié)點;用高性能32位ARM處理器LM3S6918設計匯聚節(jié)點,采用無線射頻器件CC1000實現(xiàn)數(shù)據(jù)的無線收發(fā);針對匯聚節(jié)點能量不限的特點,改進傳統(tǒng)MAC協(xié)議,提出并實現(xiàn)了一種新的MAC層通信協(xié)議。實驗證明,該網(wǎng)絡具有生命周期長、穩(wěn)定性好的優(yōu)點,可以滿足精準農(nóng)業(yè)的環(huán)境監(jiān)測要求。
關鍵詞:精準農(nóng)業(yè);無線傳感器網(wǎng)絡;MAC協(xié)議;節(jié)點;低功耗
精準農(nóng)業(yè)被稱為人類農(nóng)業(yè)生產(chǎn)的一場革命,并依托于信息技術。準確實時的信息供給是精準農(nóng)業(yè)的首要條件,它的實現(xiàn)依賴于大氣溫濕度、風速、光照強度況等多種先進的傳感器。近年來,出現(xiàn)了許多采用無線公共網(wǎng)絡等無線通訊方式進行農(nóng)、林、牧業(yè)的遠程監(jiān)測的研究。這些無線通信技術的優(yōu)勢是傳輸速度快、信息量大、傳距離輸遠。但因其功耗高、時延長、通信費用高等因素,在農(nóng)業(yè)環(huán)境監(jiān)測中未得到廣泛的應用。
無線傳感器網(wǎng)絡有監(jiān)測精度高、實時性好、容量大、覆蓋區(qū)域大、功耗和成本低等顯著優(yōu)點,適合于精準農(nóng)業(yè)環(huán)境監(jiān)控系統(tǒng)的實現(xiàn)。開發(fā)用于精準農(nóng)業(yè)監(jiān)測的無線傳感器網(wǎng)絡,研究降低其能耗、提高其生命周期和可靠性等關鍵技術,具有重要的實用價值。
1 系統(tǒng)總體設計
大多數(shù)精準農(nóng)業(yè)監(jiān)測系統(tǒng)中,各個監(jiān)測區(qū)域相距較近,所布設的光照、濕度和溫度等傳感器節(jié)點可在同一無線節(jié)點的輻射區(qū)域內(nèi);同時,控制中心一般都可持續(xù)提供能量,匯聚節(jié)點能量不限。為此,監(jiān)測WSN采用星型拓撲結構,系統(tǒng)結構圖如圖1所示。
1)信息中心即管理節(jié)點,負責接收匯聚節(jié)點通過GPRS網(wǎng)絡上行發(fā)送的數(shù)據(jù),并提供Web服務功能;當傳感器節(jié)點工作失常,或者“死亡”時,應能及時采取相應措施。
2)匯聚節(jié)點周期性發(fā)送信標幀,接收傳感器節(jié)點發(fā)送的數(shù)據(jù)幀并通過GPRS網(wǎng)絡向信息中心轉(zhuǎn)發(fā);接受信息中心查詢命令,并向傳感器節(jié)點下傳完成查詢?nèi)蝿铡?br />
3)傳感器節(jié)點采集監(jiān)測信息,并及時地向匯聚節(jié)點上傳數(shù)據(jù);當某個節(jié)點的能量低于一定門限時能及時上傳低電量告警信息。傳感器節(jié)點采用電池供電,在非工作狀態(tài)時一般處于休眠狀態(tài)。
2 通信協(xié)議
精準農(nóng)業(yè)監(jiān)測WSN具有單覆蓋、匯聚節(jié)點能量不限、實時性要求不高等特點,為了降低節(jié)點功耗、延長網(wǎng)絡生命周期,改進傳統(tǒng)的MAC協(xié)議,提出一種基于TDMA的星型MAC協(xié)議一START-MAC協(xié)議。
START—MAC協(xié)議采用信標幀、確認幀和數(shù)據(jù)幀3種幀格式。其中信標幀用于匯聚節(jié)點的廣播同步;確認幀用于匯聚節(jié)點應答傳感器節(jié)點;數(shù)據(jù)幀則用于承載傳感器節(jié)點向匯聚節(jié)點發(fā)送的數(shù)據(jù)。
協(xié)議中匯聚節(jié)點始終處于發(fā)送/接收轉(zhuǎn)換的狀態(tài),處于發(fā)送和處于接收狀態(tài)的時間比為1:1。匯聚節(jié)點每隔周期T即發(fā)送一定數(shù)目的廣播幀對全網(wǎng)進行廣播,該廣播幀包括了匯聚節(jié)點的同步信息。網(wǎng)內(nèi)要傳送數(shù)據(jù)的節(jié)點任意接收一幀廣播幀,否則就丟棄。接收了廣播幀的節(jié)點延時一段時間后待匯聚節(jié)點轉(zhuǎn)入接收狀態(tài),在規(guī)定的時隙里發(fā)送數(shù)據(jù),否則轉(zhuǎn)入睡眠。這樣既避免了數(shù)據(jù)碰撞,又降低了能量的損耗。
將傳感器節(jié)點一個周期內(nèi)協(xié)議步驟歸納如下:
1)控制傳感器模塊采集數(shù)據(jù),判斷是否為新數(shù)據(jù),是則進入步驟2)否則進入步驟4);
2)接收一幀信標幀,然后進入低功耗狀態(tài);
3)延時至規(guī)定時隙,向匯聚節(jié)點發(fā)送數(shù)據(jù);
4)進入低功耗,延時至下一周期。
匯聚節(jié)點一個周期內(nèi)協(xié)議步驟如下:
1)進入發(fā)送狀態(tài);
2)若有確認幀需要發(fā)送,則發(fā)送確認幀,然后發(fā)送信標幀對全網(wǎng)進行時間同步;
3)轉(zhuǎn)入接收狀態(tài),接收數(shù)據(jù);
4)若接收狀態(tài)接收到數(shù)據(jù),需要進行存儲、串口操作或LCD顯示,則進行該操作,結束后轉(zhuǎn)到步驟1。
一個完整的START—MAC協(xié)議如圖2所示。
3 傳感器節(jié)點設計與實現(xiàn)
低功耗是設計傳感器節(jié)點的關鍵指標,MSP430F149MCU芯片因具有超低功耗、較高的數(shù)據(jù)處理速度快和系統(tǒng)工作穩(wěn)定而廣泛地應用于的傳感器節(jié)點設計。選用MSP430F149和CC1000射頻芯片設計溫濕度傳感器節(jié)點和光照傳感器節(jié)點。
1)溫濕度傳感器節(jié)點硬件設計
選用SHT10作溫濕度傳感器,采集農(nóng)田的大氣溫度和濕度,溫濕度傳感器節(jié)點硬件原理圖如圖3所示。
MSP430F149通過I/O口對SHT10的配置操作以及兩者間的數(shù)據(jù)通信,采用模擬串行方式對CC1000芯片進行配置操作、設置無線傳輸模塊的收發(fā)頻率、發(fā)送功率、數(shù)據(jù)速率等參數(shù),采用中斷方式,對CC1000寫入待發(fā)送的數(shù)據(jù)或讀出接收到的數(shù)據(jù)。
2)光照傳感器節(jié)點硬件設計
選用TSL230B作光照強度傳感器,采集農(nóng)田作物的光照情況,硬件原理圖如圖4所示。
MSP430F149通過I/O口對TSL230B進行配置操作,通過P1.1讀取芯片的輸出信號,計算頻率值,并通過換算,獲得最終的光照值。
3)傳感器節(jié)點軟件設計
上電后,進行系統(tǒng)初始化。然后,節(jié)點進行判斷,若節(jié)點為新節(jié)點,則進行申請入網(wǎng)操作。若不為新節(jié)點,則操作傳感器模塊進行數(shù)據(jù)采集,并與上一周期采集數(shù)據(jù)進行比較,若相同則丟棄,直接進入下一步,若不同,則記錄該數(shù)據(jù)。若檢測電量周期超時,則啟動ADC模塊進行低電量監(jiān)測,若達到門限值,則標記告警數(shù)據(jù)幀。如果當前周期內(nèi),傳感器節(jié)點有數(shù)據(jù)幀或告警數(shù)據(jù)幀需要發(fā)送,則等待兩個信標幀的時長接收一幀信標幀,然后關閉無線傳輸模塊進入LPM3低功耗狀態(tài),延時一段時間到規(guī)定時隙發(fā)送數(shù)據(jù),完成后再進入低功耗狀態(tài)等待下一周期。傳感器節(jié)點主程序流程圖如圖5所示。
4 匯聚節(jié)點設計與實現(xiàn)
1)匯聚節(jié)點硬件設計
選用高性能的ARM處理器LM3S6918設計匯聚節(jié)點,無低功耗要求,該節(jié)點硬件主要有時鐘模塊、射頻模塊、外部存儲模塊、電源模塊、串口模塊、看門狗及復位電路、LCD顯示模塊等模塊組成。匯聚節(jié)點的硬件結構如圖6所示。
當匯聚節(jié)點進行數(shù)據(jù)上傳及存儲時,要記錄當前的時間信息,選用PCF8563作實時鐘芯片,MCU通過I2C控制該芯片,由鋰電池為實時時鐘提供后備電源,采用CN3052A芯片控制鋰電池的充電過程。LM3S6918提供2個全雙工同步/異步串口,擴展成一個RS232和一個RS485,分別用于連接顯示設備和GPRS模塊。
2)匯聚節(jié)點軟件設計
匯聚節(jié)點上電后,首先進行系統(tǒng)初始化。然后進入周期的開始狀態(tài),即信標幀發(fā)送階段。在此階段中,若上一周期匯聚節(jié)點接收到來自傳感器節(jié)點的加入申請或是告警數(shù)據(jù)幀,則需在該階段的開始對傳感器節(jié)點回復確認幀。接下來,匯聚節(jié)點開始發(fā)送信標幀,對網(wǎng)內(nèi)欲發(fā)送數(shù)據(jù)的傳感器節(jié)點進行時間同步。發(fā)送完所有的信標幀后,匯聚節(jié)點即轉(zhuǎn)入接收狀態(tài),接收數(shù)據(jù)幀。等待接收周期結束后,匯聚節(jié)點進行其他操作,若接收到傳感器數(shù)據(jù),則讀當前時間值,將其存儲在外部Flash中,并通過串口上傳信息中心。若接收到加入申請或告警數(shù)據(jù),則也通過串口操作上傳信息中心,待處理完成后標記確認幀。完成這些操作后,匯聚節(jié)點進入下一周期。匯聚節(jié)點的主程序流程圖如圖7所示。
5 系統(tǒng)測試
1)丟包率測試
實驗條件:射頻收發(fā)頻率為433.3 MHz,節(jié)點發(fā)送增益為10 dBm,數(shù)據(jù)傳輸速率為9.6 kbit/s,數(shù)據(jù)編碼格式為NRZ碼,調(diào)制方式為FSK。
取一傳感器節(jié)點于實驗室環(huán)境下,傳感器節(jié)點共發(fā)送3000個數(shù)據(jù)包,根據(jù)匯聚節(jié)點接收到的數(shù)據(jù)包數(shù),得到單點通信時網(wǎng)絡的丟包率,實驗結果如表1所示;取3個傳感器節(jié)點于實驗室環(huán)境下,對匯聚節(jié)點發(fā)送不同數(shù)據(jù)。每個節(jié)點均發(fā)送3000個數(shù)據(jù),根據(jù)匯聚節(jié)點接收到的數(shù)據(jù)包數(shù),得到多點通信時網(wǎng)絡的丟包率,實驗結果如表2所示。從表中數(shù)據(jù)可以看到,系統(tǒng)的每個節(jié)點丟包率都在1%以下,能滿足系統(tǒng)的要求。
2)功耗測試
傳感器節(jié)點主要有發(fā)射數(shù)據(jù)、接收數(shù)據(jù)、采集數(shù)據(jù)和休眠狀態(tài)4個狀態(tài)。經(jīng)實驗測得,傳感器節(jié)點發(fā)射狀態(tài)電流為24.72 mA,接收狀態(tài)電流為12.74 mA,活動狀態(tài)電流為2.53 mA,溫濕度傳感器節(jié)點采集數(shù)據(jù)時電流為3.20 mA,光照傳感器節(jié)點采集數(shù)據(jù)時電流為3.40 mA,節(jié)點處于休眠狀態(tài)時電流為2.1μA。
射頻模塊從休眠狀態(tài)轉(zhuǎn)入接收或發(fā)射狀態(tài)所需時間為4.3 ms和4.6 ms。傳感器節(jié)點接收信標幀和發(fā)送數(shù)據(jù)幀的時間經(jīng)試驗測得分別為9.45 ms和7.95 ms。同時溫濕度傳感器采集一次完整數(shù)據(jù)的時間為4.1 ms,光照傳感器采集一次完整數(shù)據(jù)的時間約為100μs。
當系統(tǒng)采用電池供電時,系統(tǒng)的平均工作電流決定了系統(tǒng)的壽命。根據(jù)系統(tǒng)平均工作電流的計算公式,Iavg為系統(tǒng)活動狀態(tài)時的工作電流與活動時間的乘積與休眠狀態(tài)電流與休眠時間的乘積之和再去除以總的工作時間。假設節(jié)點每個工作周期為2 s,節(jié)點每兩個周期上傳一次數(shù)據(jù),每個周期都采集數(shù)據(jù)??梢杂嬎愠鰷貪穸葌鞲衅鞴?jié)點平均工作電流為
因為光照傳感器節(jié)點采集數(shù)據(jù)時間遠小于溫濕度傳感器節(jié)點,因此平均工作電流小于0.111 8 mA。節(jié)點的工作截止電壓為2.7 V。假設采用常見的兩節(jié)15 V、容量為2700 mAh左右的鋰電池供電,根據(jù)鋰電池放電特性,當放電至2.7 V時,電池容量損耗約2 000 mAh??梢源致怨烙嫵龉?jié)點的使用壽命約為2 000/0.1118=17 889 h=745.4天??梢钥吹?,傳感器節(jié)點應當可以使用1年以上。
6 結束語
無線傳感器網(wǎng)絡的生命周期是其應用的關鍵,從硬件設計和通訊協(xié)議兩個方面降低節(jié)點功耗,是目前普遍采用的主要措施。選用低功耗的MCU和射頻器件,可降低節(jié)點的工作功耗,選用具有微靜態(tài)功耗的MCU,能夠大大降低節(jié)點的平均功耗。針對小規(guī)模的農(nóng)田WSN星型結構的特殊性,采用改進的MAC協(xié)議,可進一步降低節(jié)點功耗,延長網(wǎng)絡的生命周期。對中、大規(guī)模的農(nóng)田WSN,研究其網(wǎng)絡結構及其通訊協(xié)議,以達到各種精準農(nóng)業(yè)監(jiān)測WSN的實際需要。