孫志剛,高萌萌,張 敏,曹 娜,王國濤,2
(1.黑龍江大學 電子工程學院,哈爾濱 150080;2.哈爾濱工業(yè)大學 電器與電子可靠性研究所,哈爾濱 150001;3.河南師范大學 電子與電氣工程學院,新鄉(xiāng) 453007)
農業(yè)是我國的主要產業(yè)之一,也是我國用水量最大的產業(yè)。由于傳統(tǒng)農業(yè)灌溉水量測量的不準確和不完善,導致缺水與浪費水的現象在農業(yè)用水,特別是田間灌溉中十分嚴重,全國農業(yè)灌溉用水的平均利用率僅在40%左右[1]。針對以上問題,提高農業(yè)用水利用率,最為快捷有效的方法就是結合水利信息化技術,精確監(jiān)測用水量。即充分利用成熟的計算機信息技術,來改善水利資源的應用水平和共享程度,以此來提高水利水電建設的效益[2]。需要說明的是,在早期的農田作業(yè)任務中,常采用人工現場作業(yè)的方式進行作物灌溉,關于這方面的農業(yè)機械化研究較為落后。進入21世紀,尤其是第三次計算機信息時代以來,許多發(fā)達國家基于新技術展開對農業(yè)機械化的研究。在農業(yè)自動化系統(tǒng)的研制中,大多數系統(tǒng)都是將農田信息采集和節(jié)水灌溉控制分為獨立的兩個部分進行設計,這在很大程度上造成了硬件資源的浪費。
對于農業(yè)機械化的研究,發(fā)達國家開展較早,并且已經擁有相對十分完備的技術與理論體系。其中,在農田信息的采集與處理上,大部分研制的系統(tǒng)是利用筆記本這類具體高集成度的手持電子設備完成的[3]。這種設計方案減少了在硬件拓展上的花費,并且實際處理速度快。缺點是它們在田間作業(yè)時使用不便,可持續(xù)使用時間短,可使用的外部接口數量有限,造價昂貴,很難應用到實際農業(yè)生產中。另一部分研制的系統(tǒng)是在單片機的基礎上設計的信息采集系統(tǒng)[4],這種設計方案相較于前者,具有配置靈活、拓展性強的特點,但會帶來處理速度慢、存儲空間小的缺點。隨著無線通信技術的日益成熟與廣泛應用,國內外學者開始研究基于無線通信技術,將電子設備或單片機采集到的農田信息,快速發(fā)送到遠程服務器。同時,將采集農田信息的傳感器組成無線通信網絡,使采集的農田信息更加準確、及時,這在很大程度上解決了原有系統(tǒng)存儲空間不足的問題。
中國農田信息采集與智能水利檢測技術的研究仍然處在起步階段,信息化與智能化水平不高,難以滿足精準農業(yè)的需求。國內學者在參考國外先進成果的基礎上,積極探索開發(fā)符合我國農業(yè)特點的產品。如文獻[5]以Arduino開發(fā)板和NB-IoT無線傳輸技術為核心技術,設計了一種基于高度集成化、廣覆蓋、低功耗的棉田環(huán)境監(jiān)測監(jiān)測系統(tǒng),用戶使用網頁客戶端和手機APP可以實時觀看監(jiān)測數據。文獻[6]建立了一個基于物聯(lián)網技術的參數監(jiān)測數學模型,在此基礎上,構建了一套溫室農業(yè)種植環(huán)境監(jiān)控系統(tǒng)。文獻[7]設計了一套基于ZigBee節(jié)點通信的農田土壤濕度監(jiān)測系統(tǒng)。具體的,通過在不同種植區(qū)域放置監(jiān)測節(jié)點來采集當前的土壤濕度信息。所有監(jiān)測節(jié)點采集的土壤濕度信息均上傳至服務器,通過Web端顯示農田的土壤濕度信息。文獻[8]建立了一個灌溉系統(tǒng)精準控制模型,并在此基礎上,設計了一套集數據采集、數據通信、數據分析、數據存儲以及灌溉決策為一體的灌溉精準控制系統(tǒng),具有較高的實用參考價值。
綜上所述,當前針對農業(yè)信息采集裝置或監(jiān)測系統(tǒng)的研究取得了一定的成果,但對于農業(yè)水渠等場景水位自動監(jiān)測的研究較少,自動化程度和信息化水平還需要進一步提升。本研究設計了一套基于NB-IoT的水渠水利智能監(jiān)測節(jié)點和管理系統(tǒng),系統(tǒng)包含監(jiān)測節(jié)點、NB-IoT通信模塊和遠程服務器軟件三部分。監(jiān)測節(jié)點為整個系統(tǒng)的硬件設計部分,在農業(yè)現場它被放置在所需監(jiān)測的農業(yè)灌溉水渠邊上,用于采集水渠附近農田的空氣溫度、空氣濕度、空氣壓強、土壤濕度,水渠的水位信息,以及當前自身所在的經緯度、海拔高度信息。上述參數信息經NB-IoT通信模塊傳輸至遠程服務器。遠程服務器接收實時傳輸的參數信息,一方面解析數據對應顯示到監(jiān)測數據顯示模塊中,或通過調用地圖的方式對監(jiān)測節(jié)點進行地圖定位;另一方面,接收的參數信息被保存至本地路徑下的TXT文件中,便于后續(xù)用戶的附加操作,如數據分析與歷史查詢等,并可進一步繪制水渠監(jiān)測的趨勢圖等。
本研究設計的農業(yè)灌溉水渠監(jiān)測系統(tǒng)包括:監(jiān)測節(jié)點、NB-IoT通信模塊與遠程服務器,涵蓋物聯(lián)網技術的感知層、傳輸層與應用層[9]。監(jiān)測節(jié)點通過配備NB-IoT通信模塊可以與遠程服務器建立雙向數據通信連接,系統(tǒng)組成架構如圖1所示。
圖1 系統(tǒng)組成架構圖
圖中所示,單個監(jiān)測節(jié)點通過NB-IoT通信模塊可以與遠程服務器建立雙向數據通信連接,同樣的,布置在農業(yè)水渠或水庫周圍的多個監(jiān)測節(jié)點通過各自配備NB-IoT通信模塊,可以與同一個遠程服務器建立多個雙向數據通信連接,從而實現對區(qū)域范圍內農田信息和灌溉水量的監(jiān)測。其中,單個監(jiān)測節(jié)點在固定的時間點實時采集一次其所在位置的水位信息、空氣檢測信息、土壤檢測信息,以及自身的位置信息,通過NB-IoT通信模塊將采集的參數信息發(fā)送至遠程服務器。這里的水位信息指的是監(jiān)測節(jié)點所在農業(yè)水渠的水面高度,空氣檢測信息包括監(jiān)測節(jié)點所在農田范圍內的空氣濕度、空氣溫度和空氣壓強,土壤檢測信息指的是監(jiān)測節(jié)點所在農田范圍內的土壤濕度,位置信息指的是單個監(jiān)測節(jié)點的經緯度和海拔高度。同時,監(jiān)測節(jié)點具有自我檢測功能,在電源欠壓或NB-IoT通信模塊網絡異常等情況下,會發(fā)送相關的報警信息至遠程服務器。需要說明的是,在圖1所示的系統(tǒng)架構圖中,超聲波水位計由高精度超聲波測距傳感器與配套硬件設施組成,空氣檢測模塊由溫濕度傳感器、氣壓傳感器與配套硬件設施組成,土壤檢測模塊由土壤濕度傳感器與配套硬件設施組成,電源經特殊保護后埋藏于土地中,太陽能板與避雷裝置裸露在外,其余硬件部分均放置于控制箱內。
NB-IoT通信模塊作為監(jiān)測節(jié)點與遠程服務器之間的通信媒介,一方面負責將監(jiān)測節(jié)點實時采集的參數信息及時準確的發(fā)送至遠程服務器。遠程服務器接收監(jiān)測節(jié)點實時發(fā)送的信息,并解析其中的空氣溫度、空氣濕度、空氣壓強、土壤濕度、水面高度、經緯度顯示到遠程服務器軟件的監(jiān)測數據顯示模塊上,通過調用百度地圖可以顯示各個監(jiān)測節(jié)點的位置。在遠程服務器軟件的界面上選擇不同的監(jiān)測節(jié)點編號,可以實時查看該監(jiān)測節(jié)點反饋的參數信息。各個監(jiān)測節(jié)點發(fā)送的參數信息能夠存儲至遠程服務器本地路徑下的TXT文件中,用于后續(xù)數據分析和歷史查詢等處理。另一方面,可以在遠程服務器上設置各參數信息的預警閾值,設定的閾值信息通過NB-IoT通信模塊反向傳輸至指定的監(jiān)測節(jié)點,監(jiān)測節(jié)點保存閾值信息并在每次實時參數采集時進行一次閾值判斷,當判斷實時采集的某個參數信息達到設定的預警閾值后,監(jiān)測節(jié)點及時發(fā)送報警信息至遠程服務器。
農業(yè)灌溉水渠遠程監(jiān)測系統(tǒng)的硬件設計主要集中在監(jiān)測節(jié)點和NB-IoT通信模塊上,它們的設計效果影響整個系統(tǒng)運行的高效性和可靠性。監(jiān)測節(jié)點的硬件設計包括3個部分,分別是:微控制器及其外圍電路、傳感器模塊與外接模塊。其中,一個監(jiān)測節(jié)點的硬件結構如圖2所示。
圖2 監(jiān)測節(jié)點硬件結構圖
微控制器及其外圍電路指以微控制器為核心的,附屬能夠保證其正常工作的構成最小控制系統(tǒng)的外圍電路,包括A/D轉換電路、時鐘電路、復位電路和晶振電路等。圖中所示,本研究涉及的傳感器模塊包括氣壓傳感器、溫濕度傳感器、土壤濕度傳感、高精度超聲波測距模塊和北斗定位模塊。傳感器模塊與NB-IoT通信模塊采用串口通信方式與微控制器之間進行數據傳輸。外接模塊包括電源模塊、太陽能板和避雷裝置。電源模塊給監(jiān)測節(jié)點和NB-IoT通信模塊提供5 V直流電源,監(jiān)測節(jié)點通過A/D轉換電路反向完成對電源模塊的電壓監(jiān)測。太陽能板與電源模塊直接連接,在硬件層面實現太陽能到電能的轉化,并及時對電源模塊進行充電,保證監(jiān)測終端設備的續(xù)航能力。避雷裝置與微控制器、電源模塊直接連接,在硬件層面實現雷暴天氣對監(jiān)測節(jié)點的保護。監(jiān)測節(jié)點上電后,微控制器完成自身、傳感器模塊及NB-IoT通信模塊的初始化配置,隨后進入休眠模式,NB-IoT通信模塊隨后進入PSM(Power Saving Mode)模式,以此來降低硬件端的功耗。同樣出于節(jié)能的考慮,監(jiān)測節(jié)點被設置為在固定時間點啟動一次參數信息采集,并對應完成一次參數信息的發(fā)送。需要說明的是,該固定時間點由微控制器解析北斗定位模塊返回的短報文中的UTC時間確定。
具體的,當微控制器解析并判斷UTC時間到達設定的時間點時,微控制器退出休眠模式,開始控制傳感器模塊實時采集一次當前所在位置的水位信息、空氣檢測信息、土壤檢測信息和位置信息。完成一次參數采集后,微控制器將采集的參數信息通過串口發(fā)送至NB-IoT通信模塊,并再次進入休眠模式等待下一次UTC時間觸發(fā)。NB-IoT通信模塊在接收到發(fā)送的采集信息后,退出當前的PSM模式,并通過AT指令將參數信息經最近的通信基站發(fā)送至遠程服務器。同樣的,在完成參數信息發(fā)送后,NB-IoT通信模塊再次進入PSM模式。需要說明的是,處于PSM模式的NB-IoT通信模塊在接收到遠程服務器發(fā)送的預警閾值設定信息后,會立刻退出當前模式,待其通過串口將預警閾值設定信息發(fā)送至微控制器后,再次進入PSM模式,此時微控制器開啟工作并進行預警閾值的存儲。另外,微控制器在啟動工作時,除了實時采集一次上述的各類傳感器信息,還會通過自身的A/D電路獲取電源模塊的電壓信息,如果供電電壓偏低,會在發(fā)送給遠程服務器的參數信息中添加報警信息。當微控制器實時采集并判斷某個參數信息達到設定的預警閾值,或NB-IoT模塊當前網絡異常狀態(tài)時,同樣會在發(fā)送給遠程服務器的采集信息中添加報警信息。
本研究中的微控制器選用STM32F103RCT6型號的芯片,其與供電模塊、晶振回路、復位電路等其他外圍電路形成最小控制系統(tǒng),電路原理如圖3所示。
圖3 微控制器的電路原理圖
在實際工作過程中,微控制器能夠達到的最高工作頻率為72 MHz,處理性能較好。它具有256 k字節(jié)的系統(tǒng)可編程Flash存儲器,以及48 k字節(jié)的RAM空間,能存儲大量的參數信息[10]。同時,它支持CAN、IIC、UART等多種通信方式,配備9個通信接口[11]。
本研究中,微控制器需要實現的功能包括:解析判斷北斗定位模塊返回的短報文中的UTC時間,觸發(fā)監(jiān)測節(jié)點啟動工作,控制傳感器模塊實時采集一次參數信息,通過串口將參數信息發(fā)送至NB-IoT通信模塊,接收并存儲NB-IoT通信模塊通過串口返回的預警閾值設定信息,判斷參數信息是否達到預警閾值,以及電壓和網絡是否異常,及時發(fā)送報警信息等。本研究要求微控制器在100 ms內完成全部參數信息的采集,可以看出,選用該型號的微控制器完全滿足上述功能實現的性能要求。
本研究的北斗定位模塊選用正點原子的S1216F8-BD型號的GPS/北斗雙模定位模塊,電路原理如圖4所示。該模塊具有167個通道,追蹤靈敏度高達-165 dBm,測量輸出頻率最高可達20 Hz[12]。微處理器可以通過串口對該模塊進行各種參數設置,并可以將參數設置信息存儲在模塊內部Flash中,避免了重復設置的問題。同時,該模塊保留IPX接口,接上GPS/北斗雙模有源天線后即可進行定位,定位數據刷新速率快,冷啟動后約30秒可獲得當前經緯度信息[13]。在本研究中,微控制器及其外圍電路組成的最小控制系統(tǒng)的電平為5 V,而該模塊兼容3.3 V/5 V電平,可以與最小控制系統(tǒng)進行快速連接。微控制器根據NMEA-0183協(xié)議,通過串口向該模塊發(fā)送命令,可以在500 ms內快速獲得返回的短報文,從中可以解析得到需要的經緯度、海拔高度和UTC時間。
圖4 北斗定位模塊的電路原理圖
NB-IoT通信模塊選用谷雨物聯(lián)網的基于移遠NB模組BC95的NB最小系統(tǒng),電路原理如圖5所示。該模塊板載IPEX射頻天線座,5 V轉3.3 V的LDO穩(wěn)壓電源,MicroSIM卡座,ESD防護電路,可以與本研究的最小控制系統(tǒng)直接連接。該模塊采用了省電技術,在PSM模式下,模塊的整體供電電流低至40 μA,其中BC95功耗5 μA,LDO穩(wěn)壓芯片靜態(tài)35 μA[14-15]。在本研究中,NB-IoT通信模塊借助串口實現數據的收發(fā),即通過串口接收來自微控制器發(fā)送的采集信息,通過可選擇的電信NB網絡將采集信息發(fā)到至遠程服務器,并且接收來自遠程服務器的預警閾值設定信息,再次通過串口轉發(fā)給微控制器保存。需要說明的是,為了保證數據傳輸的效率和可靠性,本研究要求NB-IoT通信模塊在200 ms內完成參數信息的雙向傳輸,總丟包率控制在0.2%以內。
圖5 NB-IoT通信模塊的電路原理圖
本研究中選擇用于實現具體功能的傳感器模塊均遵循低功耗與運行穩(wěn)定的要求,其具體描述如下:
本研究選用US-100型號的高精度超聲波測距傳感器來采集農業(yè)水渠的水位信息。該模塊可實現0~450 cm的無接觸測距功能,兼容2.4~5.5 V的電壓輸入,可以與最小控制系統(tǒng)直接連接。同時,該模塊在常溫條件下的測距精度為0.3 cm±1%。本研究對水位的測量范圍為0~300 cm,測量精度在0.5 cm以內。由此看出,選用該模塊可以滿足上述參數要求。
本研究選用DHT-11型號的溫濕度傳感器來采集監(jiān)測節(jié)點所在農田范圍內的空氣溫度和空氣濕度。該模塊的溫度測量范圍為0~50℃,濕度測量范圍為20% RH~90% RH,模塊的電壓接入范圍為3.3~5.5 V,與最小控制系統(tǒng)的電壓輸出相匹配。該模塊在常溫條件下的溫度測量精度為±2 ℃,濕度測量精度為±5% RH。本研究對空氣溫度的測量范圍為0~40℃,對空氣濕度的測量范圍為20% RH~70% RH。由此看出,選用該模塊可以滿足上述參數要求。
本研究選用YL-69型號的土壤濕度傳感器來采集監(jiān)測節(jié)點所在農田范圍內的土壤濕度。該模塊可以接入3.3~5 V的電壓,與最小控制系統(tǒng)的電壓輸出相匹配。該模塊提供兩種濕度信息獲取方式,本研究采用其A0口輸出的模擬值,帶入具體的數學轉換公式,可以得出所需要的土壤濕度數值。本研究對土壤濕度的測量范圍為10% RH~80% RH,選用該模塊可以滿足上述參數要求。
農業(yè)灌溉水渠遠程監(jiān)測系統(tǒng)的軟件設計主要包括監(jiān)測節(jié)點的軟件設計、NB-IoT通信模塊的軟件設計、遠程服務器的軟件設計、協(xié)議構建與解析、高精度水位測量算法五部分。
監(jiān)測節(jié)點軟件設計主要包括主程序、節(jié)點服務程序、串口接收服務程序3個部分。其中,節(jié)點服務程序和串口接收服務程序為現有的配置程序,所以監(jiān)測節(jié)點軟件設計主要集中在主程序上,其實現流程如圖6所示。
圖6 監(jiān)測節(jié)點軟件實現流程圖
主程序啟動后,微控制器首先對附屬的外圍電路、NB-IoT通信模塊及傳感器模塊進行初始化,初始化完成后微控制器進入低功耗的休眠模式,NB-IoT通信模塊進入PSM模式。在這期間,北斗定位模塊實時反饋短報文給微控制器,微控制器解析其中的UTC時間,判斷是否到達設定的時間節(jié)點。當判斷到達設定的時間節(jié)點后,微控制器控制傳感器模塊采集一次當前所在位置的水位信息、空氣檢測信息、土壤檢測信息和位置信息,并按照構建的通信協(xié)議通過NB-IoT通信模塊將采集的參數信息發(fā)送至遠程服務器。與此同時,微控制器對自身的電壓狀況及NB-IoT通信網絡狀況進行一次檢測,在判斷電源欠壓或網絡異常時,在發(fā)送的參數信息中添加對應的報警信息。微控制器通過NB-IoT通信模塊接收和保存遠程服務器設定的預警閾值,并在每次參數信息采集時進行判斷,當判斷采集的參數信息高于設定的預警閾值時,同樣會在發(fā)送的參數信息值添加報警信息。
在本設計中,NB-IoT通信模塊采用TCP/IP協(xié)議將監(jiān)測節(jié)點采集的參數信息發(fā)送至遠程服務器,其中,NB-IoT注冊網絡連接、發(fā)起通信請求、參數信息發(fā)送、指令下發(fā)和設備注銷都是通過串口發(fā)送AT 指令進行控制[16]。同時,為了提升監(jiān)測節(jié)點整體的運行速度,減輕微控制器的負擔,兩者之間的串口中斷采用直接存儲器訪問方式,具體的實現流程如圖7所示。
圖7 NB-IoT通信模塊軟件實現流程圖
NB-IoT通信模塊啟動后,NB最小系統(tǒng)進行初始化,隨后進入PSM模式。在此過程中,NB-IoT通信模塊判斷是否接收到監(jiān)測節(jié)點觸發(fā)的串口中斷,在串口中斷觸發(fā)后,表明監(jiān)測節(jié)點采集了一次當前所在位置的水位信息、空氣檢測信息、土壤檢測信息和位置信息,這些參數信息可以通過串口發(fā)送至NB-IoT模塊。此時,需要向遠程服務器發(fā)送Socket通信連接請求,在與遠程服務器建立數據通信連接后,NB-IoT通信模塊將參數信息轉發(fā)至遠程服務器,隨后關閉串口中斷,結束當前參數信息的轉發(fā),再次進入PSM模式。
遠程服務器軟件,也即運行在遠程服務器端的系統(tǒng)軟件,在文中統(tǒng)稱為遠程服務器。遠程服務器軟件采用客戶端/服務器(Client/Server,CS)模式進行設計,在Visual Studio環(huán)境下采用C#語言進行開發(fā)[17]。遠程服務器軟件包括通信日志模塊、網絡參數配置模塊、監(jiān)測數據顯示模塊、閾值設定模塊、地圖定位模塊與按鈕模塊,其工作流程如圖8所示。
圖8 遠程服務器軟件實現流程圖
遠程服務器運行后,開啟服務器監(jiān)聽,等待NB-IoT通信模塊發(fā)送通信連接請求。當監(jiān)聽到NB-IoT通信模塊的通信連接請求后,建立數據通信連接,接收其發(fā)送的參數信息。一方面,遠程服務器解析參數信息,將其解析并顯示在監(jiān)測數據顯示模塊,通過調用地圖定位模塊可以查看監(jiān)測節(jié)點的地圖位置。另一方面,遠程服務器將參數信息保存至本地路徑下的TXT文件中。在參數信息解析的過程中,如果得到報警信息,遠程服務器會及時彈出對話框進行預警信息提示。在此過程中,用戶可以在閾值設定模塊輸入部分參數的預警閾值,在NB-IoT通信模塊與遠程服務器建立通信連接后,遠程服務器會反向向NB-IoT通信模塊反饋設定的預警閾值,最終傳輸至監(jiān)測節(jié)點進行保存。
協(xié)議構建與解析部分包括NB-IoT數據通信協(xié)議的構建與北斗短報文解析兩部分,前者用于將監(jiān)測節(jié)點定時采集的一次當前所在位置的水位信息、空氣檢測信息、土壤檢測信息和位置信息,以及可能存在的報警信息,按照構建的通信協(xié)議格式整合成一條參數信息,經NB-IoT通信模塊發(fā)送至遠程服務器。后者用于監(jiān)測節(jié)點解析北斗定位模塊返回的短報文,根據短報文信息解析格式得出需要的經緯度、海拔高度和UTC時間等信息。
3.4.1 NB-IoT數據通信協(xié)議構建
NB-IoT通信模塊與遠程服務器建立數據通信連接后,雙方進行雙向數據通信需要遵循設定的數據通信協(xié)議,該協(xié)議包括整合信息協(xié)議與閾值設定協(xié)議。前者是由監(jiān)測節(jié)點遵循,根據該協(xié)議整合采集的參數信息,經NB-IoT通信模塊發(fā)送至遠程服務器,遠程服務器根據對應的協(xié)議解析參數信息進行顯示與存儲。后者是由遠程服務器遵循,根據該協(xié)議將用戶設定的預警閾值經NB-IoT通信模塊反饋至監(jiān)測節(jié)點,監(jiān)測節(jié)點根據對應的協(xié)議解析預警閾值進行存儲和判斷。需要說明的是,兩種協(xié)議均采用“起始幀+幀間隔+數據幀”的設定形式,如表1所示。
表1 協(xié)議設定形式
整合信息協(xié)議的數據幀由各參數值與參數間隔組成,在本研究中,參數間隔與幀間隔選擇同樣的符號。數據幀的組成形式如表2所示,包括:土壤濕度、水面高度、空氣溫度、空氣濕度、空氣壓強、定位經度、定位緯度、報警編號。一條整合信息數據如下:
*JSUT,54,66.60,23,44,1007,126.61393,45.70546,1
上述數據幀表示:土壤濕度為54% RH,水面高度為66.60 cm,空氣溫度為23℃,空氣濕度為44% RH,空氣壓強為1 007 hPa,定位經度為126.613 93,定位緯度為45.705 46,報警編號為1。其中,不同報警編號對應的具體報警信息如表2所示。
表2 報警編號與報警信息
閾值設定協(xié)議的數據幀由閾值編號、閾值數值與一個參數間隔組成,每個閾值編號對應單個的參數,閾值數值則是需要設定該參數的預警閾值的具體數值。一條閾值設定數據如下:
*HLJU1,35
上述數據幀表示:閾值編號為1的參數設定的預警閾值的具體數值為35。表3列出了閾值編號對應的具體參數。
表3 閾值編號與對應參數
3.4.2 北斗短報文解析
NMEA-0183協(xié)議是美國國家海洋電子協(xié)會指定的標準格式,目前已成為GPS/北斗導航設備統(tǒng)一的RTCM(Radio Technical Commission for Maritime services)標準協(xié)議。NMEA-0183協(xié)議采用ASCII碼來傳遞GPS/北斗定位信息,也稱為幀響應信息。其中,NMEA-0183常用命令如表4所示。
表4 NMEA-0183常用命令
如表4所示,北斗定位信息即本文所提到短報文,本研究主要使用該命令獲取所需的經緯度、海拔高度和UTC時間信息。在發(fā)送上述指令后得到的一條ASCII格式的響應信息如下:
BDGGA,024941.00,3148.2499597,N,12033.0166797,E,1,16,0.6,57.0924,M,0.000,M,99,AAAA*55
對該短報文響應信息的具體解析如表5所示。
表5 BDGGA報文響應信息解析
本研究的農業(yè)灌溉水渠遠程監(jiān)測系統(tǒng)已經進行了多次實際場景下的測試,測試均表明該系統(tǒng)運行穩(wěn)定可靠,達到了的預期目的。圖9示出了監(jiān)測節(jié)點完成一次當前所在位置的水位信息、空氣檢測信息、土壤檢測信息和位置信息的采集。具體的,當前的土壤濕度為58% RH,水面距離超聲波測距傳感器23 cm,空氣溫度為22 ℃,空氣濕度為31% RH,空氣壓強為87 KPa,經度為126.613 55 E,緯度為45.705 43 N(位于黑龍江大學校園內)。
圖9 監(jiān)測節(jié)點進行一次參數采集
監(jiān)測節(jié)點在完成一次參數采集后,會將參數信息經NB-IoT通信模塊遠程發(fā)送至遠程服務器。一方面,遠程服務器解析接收到的參數信息,并在對應的監(jiān)測數據顯示模塊內進行數據展示。此時若設定某些參數的預警閾值,當監(jiān)測節(jié)點實時采集并判斷這些參數信息達到設定的預警閾值,會在發(fā)送給遠程服務器的采集信息中添加報警信息。圖10示出了上述過程,即當采集的水位信息超過預警閾值時,提示“水位線過高,請注意查看!”。
圖10 遠程服務器解析顯示參數信息并進行預警
點擊“地圖定位”按鈕,可以查看當前監(jiān)測節(jié)點所在位置,如圖11所示,該位置與作者進行測試的地點一致,位于黑龍江大學電子工程學院內。
圖11 監(jiān)測節(jié)點的當前位置
另一方面,遠程服務器將接收到的參數信息存儲到本地路徑下的TXT文件中。圖12示出了幾次測試保存的TXT文件,圖13示出了某個TXT文件的存儲內容。
圖12 本地路徑下存儲的TXT文件
圖13 TXT文件中存儲的參數信息
至此,本研究設計的農業(yè)灌溉水渠遠程監(jiān)測系統(tǒng)的整體測試結束。從上述過程可以看出,系統(tǒng)設計的軟硬件部分均運行穩(wěn)定,NB-IoT雙向數據通信正常,遠程服務器能夠順利的完成參數信息的解析、顯示與存儲。并且當設定預警閾值的參數采集信息過高時,遠程服務器會及時進行預警提示,所設計的功能均能正常使用。
本文設計并開發(fā)了一套基于NB-IoT的農業(yè)灌溉水渠遠程監(jiān)測系統(tǒng),解決了現有農田信息采集與節(jié)水灌溉系統(tǒng)分開設計的弊端,將兩者有機的集合到了一起。具體的,本研究的農業(yè)灌溉水渠監(jiān)測系統(tǒng)包括監(jiān)測節(jié)點、NB-IoT通信模塊和遠程服務器三部分。其中,監(jiān)測節(jié)點采用基于SMT32F103RCT6型號的微控制器,控制傳感器模塊采集所在位置的農田信息,包括空氣溫度、空氣濕度、空氣壓強、土壤濕度等,采集所在位置的灌溉水渠的水面高度,以及采集自身的定位信息。監(jiān)測節(jié)點在固定時間節(jié)點采集的上述參數信息,經NB-IoT模塊發(fā)送至遠程服務器。遠程服務器接收單次采集的參數信息,一方面直接解析顯示到監(jiān)測數據顯示模塊,并通過調用地圖顯示節(jié)點的位置;另一方面將參數信息存儲至本地路徑下的TXT文件中,便于后續(xù)數據分析與歷史查詢等操作。用戶可以在遠程服務器設置具體參數的預警閾值,監(jiān)測節(jié)點會在參數采集時及時進行預警。為了提升系統(tǒng)的野外適應能力,監(jiān)測節(jié)點配備了電源模塊、太陽能板和防雷裝置。同時,監(jiān)測節(jié)點與NB-IoT通信模塊只在固定的時間節(jié)點啟動,其余時間均處于休眠或PSM模式,確保電源的功耗最小,延長監(jiān)測節(jié)點與NB-IoT通信模塊的單次使用壽命。監(jiān)測節(jié)點在欠壓或網絡異常情況下具備“自救”能力,用戶接收其報警信息及獲取其地圖位置,即可及時進行修理。本研究補充了農業(yè)水渠等場景下水位自動監(jiān)測的研究,進一步提升了我國水渠灌溉監(jiān)測的自動化程度和信息化水平,長時間的農田信息與灌溉水渠數據的存儲也為智慧農業(yè)、農業(yè)大數據奠定了良好的基礎,為后續(xù)建立一系列的智能決策系統(tǒng)提供了有利條件。