胡雯雯,王運圣,徐識溥,劉 勇,吳穎靜
(上海市農業科學院農業信息科技研究所,上海數字農業工程與技術研究中心,上海 201403)
大田智能灌溉因結合地區水資源、氣候、地貌等因素,能夠有效開展節水灌溉服務,提高水資源利用率。 為此,多年來各國都在積極探索適宜各地的灌溉系統,尤其是水資源匱乏國家,例如以色列采用智能滴灌技術和自動控制技術,實現荒漠農業[ 1-2];法國采用灌溉用水管理模式,以噴灌為主,逐步提高需水量管理水平[ 3];美國采用噴灌、微灌、低壓管道輸水灌溉等方式,節水的同時提高農作物產量與品質[ 4-5]。 我國針對節水灌溉也進行了相關探索,例如國亮等[ 6]分析了各國節水灌溉技術的成功經驗,結合我國的實際情況,提出了有針對性的措施和建議;趙文杰等[ 7]針對我國節水灌溉技術推廣,具體說明灌溉技術推廣過程中的難點及對策研究。 由于我國在大面積節水應用方面的案例較少,且東西部水資源分布不均,各地灌溉需求不同,若直接引進國外灌溉系統會存在以下問題:國外智能灌溉控制器較為成熟,價格昂貴,國內無法大面積應用;國外智能控制器不適用我國的自然、氣候、水資源等,無法普及;國外配套系統后期維護較難。 因此針對以上問題,科技人員研發出一套適合上海農場模式的智能灌溉系統,并在2018 年應用落地。
上海農場耕地面積約為1.33 萬hm2,其中智能灌溉應用地區為川東七隊和慶豐七隊,耕地面積達170 hm2,該地區為平原地帶,便于鋪設管道、傳感器、控制器等設備[ 8]。 該系統集成農業物聯網、機電一體智能化控制,可實現農業設施內信息采集和環境控制、智能灌溉控制等功能。 經應用,每年直接節約人工費約87%,節水減排在10%左右,具有較好的經濟效益。
上海農場目前應用的滬農科灌溉嵌入式系統,用戶只能現場操作,無法遠程監測和控制。 因此需在該系統的基礎上,設計一套基于html∕css、JavaScript 跨平臺客戶端展示與控制系統,以可視化形式呈現數據指標及智能化控制一體化平臺,提供精準遠程控制、實時數據監控等功能。 該系統提供的集成、可視化環境對于數據展示和后續數據分析有著重要作用。
經前期調研,系統平臺需實現對水泵的精準控制、設備運行狀態及運行時長的監測與預警、氣象數據的實時顯示、多平臺設備的交互控制等功能。 因此,將界面分為4 個模塊,分別為揚水站控制模塊、農渠控制模塊、氣象站監測模塊、實時視頻模塊。 其中,揚水站控制模塊內容顯示當前水泵電流、電壓、水位、功率數據,以儀表盤顯示。 通過設置儀表盤安全區間,直觀反映當前數據是否正常。 揚水站控制模塊是用戶操作模塊,用戶可控制水泵開啟、同步更新控制狀態。 氣象站監測模塊顯示溫度、濕度、氣壓、風向、風速、雨量、光照等信息。
數據通信技術采用的是LORA 網關,可通過4G 網絡、WiFi 或有線以太網的方式,將傳感器數據傳輸到云服務器端,平臺通過訪問接口獲取并顯示。
該平臺采用B∕S 架構,以數據展示和設備控制相結合(圖1)。 其中:數據展示的是實時數據,包括當前氣象數據及設備運行狀態;設備控制分為Web 平臺控制和多屏聯動控制。 Web 平臺控制設備的方式采用Ajax 方式向云服務器發送設備狀態更改指令,實現現場設備同步操作[ 9];多屏聯動控制指Pad 端平臺發出設備控制指令后,Web 平臺自動彈出指令信息對話框,實現同步設備控制,并通過同域Json 解析,完成Web 平臺的局部數據刷新。

圖1 系統架構Fig.1 System architecture
采用Visual studio 2013 和Hbuilder X 作為開發環境,以JavaScript、C#等作為主要開發語言,SQL Server 作為存儲數據庫。 JavaScript 語言為前端開發語言,其中Pad 端軟件采用純html 開發。
該平臺界面由兩部分組成,分為Web 平臺和Pad 平臺。 兩個平臺可獨立使用,也可配套使用,目的是實現用戶多地控制。
2.2.1 PC 端頁面布局設計與數據集成控制
根據功能需求,將平臺分為農田總設備數據匯總介紹區、設備狀態分布區、水泵運行時長統計區、運行實時信息區、當前氣象區、地圖區、水泵控制區(圖2)。 其中,水泵控制區是對所有干渠、支渠控制器、水泵的控制,用戶可根據需求,進行開啟關閉操作,由于設備延遲反應,系統設置30 s 反應時間,設備對應電壓電流在水泵開啟30 s 后,數據發生變化。 氣象區及水泵運行時長統計區均采用實時數據顯示,并在數據可視化處理做了改善,顯示一周數據分析曲線,方便用戶觀測及分析。

圖2 PC 端Web 平臺Fig.2 PC Web platform
2.2.2 Pad 端多平臺聯動控制
Pad 端多平臺聯動目的:一是輪播區域監控視頻;二是增加多屏聯動控制。 主要界面如圖3。 多平臺控制聯動表示用戶在Pad 端通過控制攝像頭及控制器開關,使得Web 平臺及時響應,并作出處理,表現為Pad 端點擊攝像頭編號,網頁布局上發生變化,由視頻區視頻切換到大屏地圖區域,顯示視頻信息以及水泵控制器是否發生同步控制。 當控制器狀態在Pad 端開啟或關閉發生切換時,Web 平臺同時彈出狀態消息提醒,控制器同步更新狀態。

圖3 Pad 端APPFig.3 Pad APP
針對該平臺是實現數據監測和設備控制功能為主的框架設計,平臺應提供多平臺控制、數據實時獲取、操作方便等必要功能方便用戶使用。 因此,該平臺在研發階段采用以下技術來實現。
2.3.1 集成、可視化環境
該套系統由3 個獨立程序組成,分別是數據獲取應用程序、上海農場智慧農業管理平臺、Pad 多屏聯動APP(圖4)。 數據獲取應用程序的作用是事先從云服務器獲取氣象站數據、水泵運行數據、基地數據等存儲在本地服務器,由管理平臺調用;上海農場智慧農業管理平臺前端顯示各模塊數據,后端與數據獲取應用程序、APP 聯動,一方面從數據獲取應用程序中獲取相關數據,另一方面通過接收APP 控制指令,及時同步刷新前端設備狀態;APP 的作用是用戶在不使用Web 平臺的情況下,通過Pad 端移動控制揚水站或農渠設備。

圖4 系統構成Fig.4 System composition
對于3 個獨立程序的開發,采用微軟的Visual Studio 2013 開發軟件,該集成軟件能提供代碼編輯器、編譯器、調試器和圖形用戶界面等工具。 當版本改動時,只需重新發布,對已發布程序使用不造成影響,方便進行高效應用開發。
2.3.2 異步調用
由于平臺數據全部來源Ajax 請求,解析大量的數據會直接影響頁面加載速度,因此采用異步調用來提高應用執行效率,加快響應速度。 平臺采取分流獲取方式緩解服務器壓力,例如實時從云服務器獲取數據并顯示,其他相對固定數據采用每日0 點更新或每小時采集1 次,存儲在數據庫。 表1 為截取自2021 年6 月9日當天的氣象站數據。 數據庫提供數據接口,并在后臺進行異步分流調用,提高了平臺加載速率。

表1 數據存儲Table 1 Data storage
2.3.3 多屏聯動
為了方便用戶隨時隨地監控水泵,及時處理突發事件,在平臺的設計上特地增加了多屏聯動功能,可同時解決視頻監控和多平臺同步處理這兩個問題。
監控采用rtsp 實時流播放協議,以視頻流形式播放。 由于主流瀏覽器或高版本瀏覽器已經不再支持ActiveX 插件,而是采用NPAPI 或者PPAPI 來開發瀏覽器播放插件,因此VLC 插件只適用于IE 瀏覽器或低版本的其他瀏覽器。 為解決瀏覽器兼容性,選擇使用海康網絡監控3.0,該插件基于ActiveX 和NPAPI開發[ 10],支持網頁預覽、回放、云控制等功能。
解決多屏聯動技術的關鍵在于Pad 端發出控制指令后,Web 端及時捕獲信息并解析,同步刷新平臺,如圖5 所示,實現跨域信息傳遞。 具體方法是Pad 端將控制信息,包括干、支渠名稱、開啟關閉狀態信息傳至Web 端后臺,再由后臺通過跨域解析,分別彈出提示框和同步修改設備狀態框。 其中,跨域解析數據返回類型為Jsonp。 瀏覽器出于安全機制考慮,在數據傳輸格式上無法使用同域Json 方式獲取。 Json 和Jsonp 的區別如表2。

表2 Json 和Jsonp 區別Table 2 The difference between Json and Jsonp

圖5 多平臺同步處理Fig.5 Multi-platform synchronous processing
2.3.4 LORA+藍牙技術
LORA 技術具有遠距離、低功耗、多節點、低成本等優點,在物聯網應用中廣泛使用。 根據農場灌溉設備數量較多、分布較廣的特性,為方便后期維護,采用LORA + 藍牙的無線通信技術,LORA 模塊負責數據傳輸,藍牙模塊負責定位及現場安裝配置。 Web 端數據的采集、上傳、返回,具體工作流程如圖6。

圖6 數據傳輸工作流程Fig.6 Data transmission workflow
LORA 網關自主管理設備入網和服務器連接,通過自定義私有協議,將LORA 網關和眾多控制器組成一個有序的通信網絡,實現數據下發和接收。 采用RS485 接口,通過傳感器將采集的數據上傳至云服務器,其具有同時兩路連接到廣域網功能,包括WAN 和4G 接口,實現互補和備份,可保證數據傳輸的穩定、完整和可靠。 同時搭載BLE 5.0 藍牙技術,可實現現場控制、系統升級、參數配置及備用設備替換等,便于現場安裝配置及后期維護。
該系統配套上海農場智能灌溉硬件系統,可實現遠程提供農場實時灌溉數據及設備控制功能。 整個平臺從硬件到軟件均為自主研發,可根據不同的農作物需求,制定不同的灌溉方案,具有較好的應用效果。 但平臺目前在功能上還有所缺乏,今后努力改進的方向是逐步實現智能灌溉,即結合土壤溫濕度等環境指標,通過建立農作物生長模型,實現自主灌溉。