胡雯雯,王運圣,徐識溥,劉 勇,吳穎靜
(上海市農業(yè)科學院農業(yè)信息科技研究所,上海數(shù)字農業(yè)工程與技術研究中心,上海 201403)
大田智能灌溉因結合地區(qū)水資源、氣候、地貌等因素,能夠有效開展節(jié)水灌溉服務,提高水資源利用率。 為此,多年來各國都在積極探索適宜各地的灌溉系統(tǒng),尤其是水資源匱乏國家,例如以色列采用智能滴灌技術和自動控制技術,實現(xiàn)荒漠農業(yè)[ 1-2];法國采用灌溉用水管理模式,以噴灌為主,逐步提高需水量管理水平[ 3];美國采用噴灌、微灌、低壓管道輸水灌溉等方式,節(jié)水的同時提高農作物產(chǎn)量與品質[ 4-5]。 我國針對節(jié)水灌溉也進行了相關探索,例如國亮等[ 6]分析了各國節(jié)水灌溉技術的成功經(jīng)驗,結合我國的實際情況,提出了有針對性的措施和建議;趙文杰等[ 7]針對我國節(jié)水灌溉技術推廣,具體說明灌溉技術推廣過程中的難點及對策研究。 由于我國在大面積節(jié)水應用方面的案例較少,且東西部水資源分布不均,各地灌溉需求不同,若直接引進國外灌溉系統(tǒng)會存在以下問題:國外智能灌溉控制器較為成熟,價格昂貴,國內無法大面積應用;國外智能控制器不適用我國的自然、氣候、水資源等,無法普及;國外配套系統(tǒng)后期維護較難。 因此針對以上問題,科技人員研發(fā)出一套適合上海農場模式的智能灌溉系統(tǒng),并在2018 年應用落地。
上海農場耕地面積約為1.33 萬hm2,其中智能灌溉應用地區(qū)為川東七隊和慶豐七隊,耕地面積達170 hm2,該地區(qū)為平原地帶,便于鋪設管道、傳感器、控制器等設備[ 8]。 該系統(tǒng)集成農業(yè)物聯(lián)網(wǎng)、機電一體智能化控制,可實現(xiàn)農業(yè)設施內信息采集和環(huán)境控制、智能灌溉控制等功能。 經(jīng)應用,每年直接節(jié)約人工費約87%,節(jié)水減排在10%左右,具有較好的經(jīng)濟效益。
上海農場目前應用的滬農科灌溉嵌入式系統(tǒng),用戶只能現(xiàn)場操作,無法遠程監(jiān)測和控制。 因此需在該系統(tǒng)的基礎上,設計一套基于html∕css、JavaScript 跨平臺客戶端展示與控制系統(tǒng),以可視化形式呈現(xiàn)數(shù)據(jù)指標及智能化控制一體化平臺,提供精準遠程控制、實時數(shù)據(jù)監(jiān)控等功能。 該系統(tǒng)提供的集成、可視化環(huán)境對于數(shù)據(jù)展示和后續(xù)數(shù)據(jù)分析有著重要作用。
經(jīng)前期調研,系統(tǒng)平臺需實現(xiàn)對水泵的精準控制、設備運行狀態(tài)及運行時長的監(jiān)測與預警、氣象數(shù)據(jù)的實時顯示、多平臺設備的交互控制等功能。 因此,將界面分為4 個模塊,分別為揚水站控制模塊、農渠控制模塊、氣象站監(jiān)測模塊、實時視頻模塊。 其中,揚水站控制模塊內容顯示當前水泵電流、電壓、水位、功率數(shù)據(jù),以儀表盤顯示。 通過設置儀表盤安全區(qū)間,直觀反映當前數(shù)據(jù)是否正常。 揚水站控制模塊是用戶操作模塊,用戶可控制水泵開啟、同步更新控制狀態(tài)。 氣象站監(jiān)測模塊顯示溫度、濕度、氣壓、風向、風速、雨量、光照等信息。
數(shù)據(jù)通信技術采用的是LORA 網(wǎng)關,可通過4G 網(wǎng)絡、WiFi 或有線以太網(wǎng)的方式,將傳感器數(shù)據(jù)傳輸?shù)皆品掌鞫?平臺通過訪問接口獲取并顯示。
該平臺采用B∕S 架構,以數(shù)據(jù)展示和設備控制相結合(圖1)。 其中:數(shù)據(jù)展示的是實時數(shù)據(jù),包括當前氣象數(shù)據(jù)及設備運行狀態(tài);設備控制分為Web 平臺控制和多屏聯(lián)動控制。 Web 平臺控制設備的方式采用Ajax 方式向云服務器發(fā)送設備狀態(tài)更改指令,實現(xiàn)現(xiàn)場設備同步操作[ 9];多屏聯(lián)動控制指Pad 端平臺發(fā)出設備控制指令后,Web 平臺自動彈出指令信息對話框,實現(xiàn)同步設備控制,并通過同域Json 解析,完成Web 平臺的局部數(shù)據(jù)刷新。
圖1 系統(tǒng)架構Fig.1 System architecture
采用Visual studio 2013 和Hbuilder X 作為開發(fā)環(huán)境,以JavaScript、C#等作為主要開發(fā)語言,SQL Server 作為存儲數(shù)據(jù)庫。 JavaScript 語言為前端開發(fā)語言,其中Pad 端軟件采用純html 開發(fā)。
該平臺界面由兩部分組成,分為Web 平臺和Pad 平臺。 兩個平臺可獨立使用,也可配套使用,目的是實現(xiàn)用戶多地控制。
2.2.1 PC 端頁面布局設計與數(shù)據(jù)集成控制
根據(jù)功能需求,將平臺分為農田總設備數(shù)據(jù)匯總介紹區(qū)、設備狀態(tài)分布區(qū)、水泵運行時長統(tǒng)計區(qū)、運行實時信息區(qū)、當前氣象區(qū)、地圖區(qū)、水泵控制區(qū)(圖2)。 其中,水泵控制區(qū)是對所有干渠、支渠控制器、水泵的控制,用戶可根據(jù)需求,進行開啟關閉操作,由于設備延遲反應,系統(tǒng)設置30 s 反應時間,設備對應電壓電流在水泵開啟30 s 后,數(shù)據(jù)發(fā)生變化。 氣象區(qū)及水泵運行時長統(tǒng)計區(qū)均采用實時數(shù)據(jù)顯示,并在數(shù)據(jù)可視化處理做了改善,顯示一周數(shù)據(jù)分析曲線,方便用戶觀測及分析。
圖2 PC 端Web 平臺Fig.2 PC Web platform
2.2.2 Pad 端多平臺聯(lián)動控制
Pad 端多平臺聯(lián)動目的:一是輪播區(qū)域監(jiān)控視頻;二是增加多屏聯(lián)動控制。 主要界面如圖3。 多平臺控制聯(lián)動表示用戶在Pad 端通過控制攝像頭及控制器開關,使得Web 平臺及時響應,并作出處理,表現(xiàn)為Pad 端點擊攝像頭編號,網(wǎng)頁布局上發(fā)生變化,由視頻區(qū)視頻切換到大屏地圖區(qū)域,顯示視頻信息以及水泵控制器是否發(fā)生同步控制。 當控制器狀態(tài)在Pad 端開啟或關閉發(fā)生切換時,Web 平臺同時彈出狀態(tài)消息提醒,控制器同步更新狀態(tài)。
圖3 Pad 端APPFig.3 Pad APP
針對該平臺是實現(xiàn)數(shù)據(jù)監(jiān)測和設備控制功能為主的框架設計,平臺應提供多平臺控制、數(shù)據(jù)實時獲取、操作方便等必要功能方便用戶使用。 因此,該平臺在研發(fā)階段采用以下技術來實現(xiàn)。
2.3.1 集成、可視化環(huán)境
該套系統(tǒng)由3 個獨立程序組成,分別是數(shù)據(jù)獲取應用程序、上海農場智慧農業(yè)管理平臺、Pad 多屏聯(lián)動APP(圖4)。 數(shù)據(jù)獲取應用程序的作用是事先從云服務器獲取氣象站數(shù)據(jù)、水泵運行數(shù)據(jù)、基地數(shù)據(jù)等存儲在本地服務器,由管理平臺調用;上海農場智慧農業(yè)管理平臺前端顯示各模塊數(shù)據(jù),后端與數(shù)據(jù)獲取應用程序、APP 聯(lián)動,一方面從數(shù)據(jù)獲取應用程序中獲取相關數(shù)據(jù),另一方面通過接收APP 控制指令,及時同步刷新前端設備狀態(tài);APP 的作用是用戶在不使用Web 平臺的情況下,通過Pad 端移動控制揚水站或農渠設備。
圖4 系統(tǒng)構成Fig.4 System composition
對于3 個獨立程序的開發(fā),采用微軟的Visual Studio 2013 開發(fā)軟件,該集成軟件能提供代碼編輯器、編譯器、調試器和圖形用戶界面等工具。 當版本改動時,只需重新發(fā)布,對已發(fā)布程序使用不造成影響,方便進行高效應用開發(fā)。
2.3.2 異步調用
由于平臺數(shù)據(jù)全部來源Ajax 請求,解析大量的數(shù)據(jù)會直接影響頁面加載速度,因此采用異步調用來提高應用執(zhí)行效率,加快響應速度。 平臺采取分流獲取方式緩解服務器壓力,例如實時從云服務器獲取數(shù)據(jù)并顯示,其他相對固定數(shù)據(jù)采用每日0 點更新或每小時采集1 次,存儲在數(shù)據(jù)庫。 表1 為截取自2021 年6 月9日當天的氣象站數(shù)據(jù)。 數(shù)據(jù)庫提供數(shù)據(jù)接口,并在后臺進行異步分流調用,提高了平臺加載速率。
表1 數(shù)據(jù)存儲Table 1 Data storage
2.3.3 多屏聯(lián)動
為了方便用戶隨時隨地監(jiān)控水泵,及時處理突發(fā)事件,在平臺的設計上特地增加了多屏聯(lián)動功能,可同時解決視頻監(jiān)控和多平臺同步處理這兩個問題。
監(jiān)控采用rtsp 實時流播放協(xié)議,以視頻流形式播放。 由于主流瀏覽器或高版本瀏覽器已經(jīng)不再支持ActiveX 插件,而是采用NPAPI 或者PPAPI 來開發(fā)瀏覽器播放插件,因此VLC 插件只適用于IE 瀏覽器或低版本的其他瀏覽器。 為解決瀏覽器兼容性,選擇使用海康網(wǎng)絡監(jiān)控3.0,該插件基于ActiveX 和NPAPI開發(fā)[ 10],支持網(wǎng)頁預覽、回放、云控制等功能。
解決多屏聯(lián)動技術的關鍵在于Pad 端發(fā)出控制指令后,Web 端及時捕獲信息并解析,同步刷新平臺,如圖5 所示,實現(xiàn)跨域信息傳遞。 具體方法是Pad 端將控制信息,包括干、支渠名稱、開啟關閉狀態(tài)信息傳至Web 端后臺,再由后臺通過跨域解析,分別彈出提示框和同步修改設備狀態(tài)框。 其中,跨域解析數(shù)據(jù)返回類型為Jsonp。 瀏覽器出于安全機制考慮,在數(shù)據(jù)傳輸格式上無法使用同域Json 方式獲取。 Json 和Jsonp 的區(qū)別如表2。
表2 Json 和Jsonp 區(qū)別Table 2 The difference between Json and Jsonp
圖5 多平臺同步處理Fig.5 Multi-platform synchronous processing
2.3.4 LORA+藍牙技術
LORA 技術具有遠距離、低功耗、多節(jié)點、低成本等優(yōu)點,在物聯(lián)網(wǎng)應用中廣泛使用。 根據(jù)農場灌溉設備數(shù)量較多、分布較廣的特性,為方便后期維護,采用LORA + 藍牙的無線通信技術,LORA 模塊負責數(shù)據(jù)傳輸,藍牙模塊負責定位及現(xiàn)場安裝配置。 Web 端數(shù)據(jù)的采集、上傳、返回,具體工作流程如圖6。
圖6 數(shù)據(jù)傳輸工作流程Fig.6 Data transmission workflow
LORA 網(wǎng)關自主管理設備入網(wǎng)和服務器連接,通過自定義私有協(xié)議,將LORA 網(wǎng)關和眾多控制器組成一個有序的通信網(wǎng)絡,實現(xiàn)數(shù)據(jù)下發(fā)和接收。 采用RS485 接口,通過傳感器將采集的數(shù)據(jù)上傳至云服務器,其具有同時兩路連接到廣域網(wǎng)功能,包括WAN 和4G 接口,實現(xiàn)互補和備份,可保證數(shù)據(jù)傳輸?shù)姆€(wěn)定、完整和可靠。 同時搭載BLE 5.0 藍牙技術,可實現(xiàn)現(xiàn)場控制、系統(tǒng)升級、參數(shù)配置及備用設備替換等,便于現(xiàn)場安裝配置及后期維護。
該系統(tǒng)配套上海農場智能灌溉硬件系統(tǒng),可實現(xiàn)遠程提供農場實時灌溉數(shù)據(jù)及設備控制功能。 整個平臺從硬件到軟件均為自主研發(fā),可根據(jù)不同的農作物需求,制定不同的灌溉方案,具有較好的應用效果。 但平臺目前在功能上還有所缺乏,今后努力改進的方向是逐步實現(xiàn)智能灌溉,即結合土壤溫濕度等環(huán)境指標,通過建立農作物生長模型,實現(xiàn)自主灌溉。