于振武 朱衛國



摘 要:本文以某縣的藍莓數字化種植需求為切入點,研制了一款適用于野外百畝級種植園區的基于ZigBee的藍莓種植信息采集系統,該系統貼合于藍莓粗放式種植、種植地分散以及兼有低山丘陵和平原沙洲的地貌特點下的應用。本文針對現有傳統Z-Stack協議棧在數字化種植應用中存在的功耗問題,提出了發射功率自適應改進算法,能夠對節點的發射功率進行動態調節,測試結果表明,該算法能夠為節點節省平均約6%的電量,進一步延長了ZigBee網絡壽命。為當地藍莓種植日常數據采集和數據追溯提供了可靠的大數據支撐。
關鍵詞:數字化種植;信息采集;ZigBee;發射功率優化
中圖分類號:S24? 文獻標識碼:A? 文章編號:1673-260X(2021)01-0053-04
0 引言
農業物聯網是我國戰略性新興產業,但目前仍處于示范推廣階段,多數設備面向大棚內或小而分散的試驗田,不能很好應用在自然環境復雜的野外環境。某縣的藍莓種植園大部分位于丘陵地帶與平原沙洲,介于東經116°28′—117°03′,北緯30°20′—30°50′之間,海拔在30~400m之間,屬于北亞熱帶濕潤季風氣候區,具有四季分明、氣候溫和、雨量充沛、光照充足、霜雪期短的特點。在研發數字化種植信息采集系統中,發現了現有傳統的Z-Stack協議棧在此種環境下應用中存在的功耗問題,研發出一種發射功率可進行動態自適應調節的無線傳感網絡,進一步延長了ZigBee網絡壽命,為當地實現大規模數字化種植提供了更優化的技術支撐。
1 系統的總體方案
1.1 系統需求分析
根據對某縣當地典型藍莓種植農戶的調研得知,藍莓喜酸性土壤,土壤有機質含量應在8%~12%,對種植條件要求較為苛刻,需定時進行土壤分析。其中土壤pH值、水分對藍莓的生長過程至關重要。同一園區內的土壤在坡度、溝渠等環境因素的影響下,土壤條件也有較大差異。目前土壤分析常使用取點采樣法,根據種植園區土壤結構混亂程度決定采樣點數,一般每百畝采集10個樣本點,以檢測區塊土壤平均數據。
1.2 系統總體方案的設計
本次設計的種植信息采集系統采用了ZigBee星型網絡來組建感知層中的無線傳感網絡,能夠克服農田環境復雜,布線困難,種植園區面積廣闊等困擾。因采用了星型網絡結構,故系統分為采集節點(EndDevice)與匯聚網關(Coordinator)兩個部分,在本次設計的網絡中沒有Router的存在。采集節點依據土壤分析的采樣需求,部署在土壤分析采樣的目標樣本點,利用MODBUS總線下的傳感器采集數據后,通過ZigBee無線傳感網絡傳輸至采集網關。網關則負責將各個采集節點的數據按照基于HJ212-2017的通訊協議進行打包,通過4G上傳至信息采集平臺。所設計的系統拓撲圖如圖1所示。
2 系統硬件模塊的設計
2.1 采集節點的硬件設計
本次種植信息采集系統中的采集節點,為ZigBee網絡中EndDevice,部署在種植園區的目標采樣點。有著易于移動、不干擾藍莓種苗生長、全年無須現場維護、成本較低等方面的需求。因此采集節點核心板的設計是系統中的關鍵一環,對功耗、體積與可靠性有著較高的要求。采集節點的核心主控單元采用了STM32L151C8T6,負責輪詢遍歷MODBUS總線下的傳感器,存儲、按協議打包上傳傳感器數據,響應網關所下發的各類設備反控指令。采集節點的硬件框架如圖2所示。
采集節點使用了SP485EN芯片,以完成單片機TTL電平向RS485電平轉換,在此不再贅述。由于傳感器長期暴露在野外,易受到日曬、降水、灰塵等諸多環境因素的影響,傳統在居家、農業大棚環境下使用的傳感器無法滿足耐用性上的要求,因此采用了12V的工業級土壤傳感器。核心板采用了6000mAh/3.7V聚合物鋰電池與TPS61040升壓芯片滿足傳感器的電源所需。
實際的農業生產中,土壤分析的所需頻率較低,種植信息采集綜合管理平臺會結合園區內氣象站所傳回的數值,向監測節點發出輪詢遍歷間隔時間更改指令,動態調整土壤信息的采集頻率。默認情況下采集頻率為1次/小時。
由于工業級土壤傳感器靜態工作電流較大,在TPS61040升壓芯片的電源電路上采用了8550與8050兩個三極管級聯的方法,賦予單片機IO控制12V電源電路通斷的能力。當POWERON為低電平時,Q2截止,Q1的基極與放大級電壓相同,Q1也為截止狀態,此時Vout為0。當POWERON為高電平時,Q2導通,此時Q1基極與集電極壓差超過0.7V,Q1為飽和導通狀態,此時Vout=Vin。
ZigBee模塊采用了成都億佰特公司基于CC2530芯片封裝生產的模組E18-MS1PA2PCB,該模組采用了板載PCB天線,體積較小,貼片型封裝,在無其他障礙物的藍莓成熟種苗田地里實測通信距離可達200m,滿足本次設計所需。另外易柏特公司還提供了基于2.5.1a版本Z-Stack協議棧的軟件Demo,利用模組上引出的I/O口可進行二次開發。E18-MS1PA2PCB采用UART方式與單片機進行串口通信,性能指標如表1所示。
因為采集節點對功耗極為敏感,在ZigBee網絡中的角色必須設計為EndDevice,EndDevice在網絡中可定時休眠,在設定好休眠時間后便會周期性的喚醒,與父節點進行握手通訊。當信息采集平臺有反控指令下發時,父節點會保存該次指令,在下一次EndDevice喚醒發生時將數據發送給EndDevice。同時也可通過串口喚醒,當節點完成一次傳感器信息采集時可直接通過串口將數據發送給模組。
2.2 采集網關的硬件設計
本次種植信息采集系統中的采集網關,即ZigBee網絡中的Coordinator,負責匯聚采集節點通過ZigBee傳回的數據,按照基于HJ212-2017的協議打包,通過4G網絡將數據上傳至種植信息采集平臺。同時負責下發平臺所傳回的設備反控指令。每個園區有且僅有一個,一般部署在園區的幾何中心位置,能夠保證與所有采集節點之間的ZigBee通信質量即可,對體積、功耗、成本等方面要求較低,在此不再贅述。
采集網關集成了作為Coordinator的ZigBee模組以及4G模組,功耗較大,故在供電方面采用了20Ah/12V的鉛酸蓄電池與50W太陽能光伏板,以滿足采集網關的供電所需。4G模組采用了本源物聯生產的BC1432,實現了TCP協議下的數據透傳。模組與單片機之間利用串口連接。
3 系統軟件的設計
3.1 采集節點與網關的程序設計
系統軟件采用了C語言環境下的Keil5開發,采集節點軟件任務包括通信初始化、單片機硬件資源配置、按照設定好的問詢頻率輪詢遍歷MODBUS總線下的傳感器、響應網關反控指令、電源管理五個部分。程序流程圖如下圖(a)所示。
其中圖(a)通信初始化包括設置ZigBee網絡角色、調節發射功率、配置信道、PANID等。硬件抽象層初始化包括定時器、UART、DMA、I2C等外設資源初始化和其緩沖區數組等配置。
圖(b)為系統的休眠邏輯,本次設計采用了STM32L151的STOP模式進行低功耗設計,在裸板測試下STOP模式休眠電流可低至1μA。因STOP模式下的STM32L151只能通過外部中斷或是RTC時鐘喚醒,因此在進行休眠前需將RXD引腳配置為外部中斷引腳,以保證單片機可以及時響應平臺所下發的設備反控指令與傳感器所回傳的數據。節點的輪詢任務包括了傳感器的電源管理與MODBUS問詢幀的下發。因傳感器上電后需要30秒左右才能得到一個準確的數值,因此需要在問詢幀下發前30秒時為傳感器上電。
系統采集網關的軟件任務較為簡單,與采集節點類似,在此不再贅述。
3.2 Z-Stack中的發射功率改進算法
3.2.1 改進算法描述
本文在億佰特公司提供的2.5.1a版本Z-Stack協議棧的基礎上進行了二次開發。在傳統的協議棧下,CC2530芯片的發射功率是不變的,也就是無論EndDevice與Coordinator之間的信號強度如何,EndDevice都會以固定的功率向Coordinator上傳數據。這對于對功耗敏感的采集節點而言是極其浪費的。而在實際的藍莓種植中,土壤分析所需的目標樣本點一般在空間位置上變化較小,Z-Stack協議棧在農業生產環境下應用有一定的局限性,基于這一特點,本文在節點的Z-Stack協議棧初始化時,向Coordinator從低到高窮舉不同信號強度等級的數據包,通過檢測MCPS-POLL.confirm中RSSI值,尋找能夠進行可靠通訊的最小功率。這種算法實現了EndDevice在加入網絡后動態調節發射功率,實驗證明該算法可以延長ZigBee網絡的壽命。
3.2.2 算法流程
該算法工作于EndDevice加入網絡后的初始化階段。采用窮舉不同功率等級數據包的方式,同時向上層發送MCPS-DATA.request請求。通過查閱Z-Stack協議棧源碼,在hal_rf.c中存放著RF相關的定義程序。CC2530_2401_TXPOWER常數數組映射了發射功率強度與射頻寄存器的關系,其中發射功率強度被分為了16級,其對應關系如表2所示。
本文提出的算法根據此表對構造的數據包進行功率強度等級劃分,將-22dBm~4.5dBm功率間的數據包分成了16級,在節點入網之后將從最低的-22dBm開始,若在所設定的輪詢周期內未得到上層MCPS-POLL.confirm的有效應答,則依次提高功率發送數據包。
在得到了有效應答之后,為檢測該功率的可靠性,EndDevice將會在輪詢周期內不斷檢測應答數據包中的RSSI值是否大于某一閾值,若均大于,節點則認為此功率數值為能進行可靠通信的最小功率,以后節點按照此功率等級進行通訊,直至丟失父節點,再次重新入網。算法的工作流程圖如圖5所示。
3.2.3 算法測試
功率自適應算法在本系統使用的星型網絡拓撲結構下進行驗證,驗證環境為某縣內一典型藍莓種植園區,園內藍莓種苗高約70cm,節點離地面安裝高度約50cm,測試點分布圖如圖所示。
其中位置1與協調器距離大概4m,位置2與協調器距離大概20cm,測試節點未下掛傳感器,不進行傳感器輪詢操作,測試節點在進行網絡參數初始化后進行功率自適應改進算法,隨后單片機直接進入STOP模式,之后每隔100ms會自動喚醒并發送“Hello World”測試數據包。三個測試節點均使用相同型號的370mAh鋰電池進行供電,該款鋰電池容量與1kΩ電阻負載下的電流關系已進行測算,二次擬合曲線如圖7所示。三個節點工作過程中電池1kΩ測試電阻下的電流-時間曲線如圖8所示。
從圖中可以看到,在位置2的未運行發射功率改進算法的節點,即使離Coordinator很近(20cm),其電池容量下降的也是最快的。而優化后的節點即使在4m遠處,其功耗也要優于未優化節點。兩個優化后的節點其電池容量下降速率不同的主要因素是與Coordinator之間的距離。故在位置2運行了改進算法的節點比位置1的功耗更低。實驗結果表明,發射功率改進算法能夠明顯地降低EndDevice的功耗,同在位置2的測試節點在工作34個小時后,發射功率改進算法可以為測試節點節省約6%的電量。
4 結論
基于功率自適應改進算法的藍莓種植信息采集系統是對某縣當地的地形特點針對性的設計,該系統能夠適應地形復雜多樣、環境氣候較為惡劣的野外農田。野外測試結果表明,系統在復雜的地理自然環境下運行狀態良好,經受住了高溫、霉雨等環境的考驗。本系統也可拓展應用于其他地域農作物的種植信息采集,具有良好的移植、借鑒和參考價值。
——————————
參考文獻:
〔1〕郭猛.Z-Stack協議棧的按鍵驅動機制分析[J].單片機與嵌入式系統應用,2018,18(07):30-33+38.
〔2〕何智勇,徐麗萍.基于Z-Stack的ZigBee協議棧組網過程研究[J].南京工業職業技術學院學報,2018,18(01):1-3.
〔3〕殷松瑜.基于Z-Stack的ZigBee協議的實現[J].物聯網技術,2017,7(10):33-37.
〔4〕Georgios Kambourakis, Constantinos Kolias,Dimitrios Geneiatakis, Georgios Karopoulos, Georgios Michail Makrakis, Ioannis Kounelis. A State-of-the-Art Review on the Security of Mainstream IoT Wireless PAN Protocol Stacks[J]. Symmetry, 2020,12(04).
〔5〕Wen Wu Hua,Zhong Hu Yuan,Xiu Zhen Yu. A Design of Z-Stack Application Based on the IEEE Address[J]. Applied Mechanics and Materials,2013,2668.
〔6〕韓建書,薛鵬飛,袁淑芳,趙鎮川,胡慧勇,魏東亮,陳澤亮.基于ZigBee無線傳感器網絡技術的雙孢菇生長環境監測系統的設計[J].工業計量,2019,29(06):53-55+75.
〔7〕肖玥.ZigBee技術在智能化農業大棚監控系統中的應用研究[J].湖北農機化,2019,20(16):48-49.
〔8〕程智君,游雨云.基于ZigBee的農業種植現場傳感系統設計[J].南方農機,2018,49(17):129.