王彩萍,吳 燕,李育榮,蔡逸辰
(江蘇農林職業技術學院 江蘇,鎮江 212400)
智慧農業是起源于20 世紀90 年代的精準農業,智慧農場融合了移動互聯網、云計算、物聯網和互聯網等多種技術,在農業生產的各個環節部署傳感節點(溫度、濕度、土壤水分、二氧化碳、圖像識別、光照等),通過網絡通信技術實現遠端監控生產,為農業生產提供精準化種植、可視化管理、智能化決策。基于物聯網的智慧農場監測系統是集物聯網、移動互聯網等信息化技術為一體,利用各類傳感器實時感知農場內部溫度、濕度、光照度等環境信息,通過預設的閾值,實現通風系統、照明系統等的聯動,農場內部溫濕度、光照度的自動調節;同時系統可以實時感知各個關鍵區域有人闖入的情況,如果出現有人闖入,系統自動推送報警信息到移動端;可以通過視頻監控系統遠程實時查看農場的實時生產作業情況。
物聯網智慧農場監控系統移動端應用,首先是通過光照傳感器、溫濕度傳感器等接入Zigbee節點模塊,來采集光照度、溫濕度的數據;然后通過接入人體紅外傳感器、排氣扇繼電器等連接ADAM-4150 數字量采集器,實現人體紅外信息的采集和對排氣扇的開關控制;照明燈通過接入帶有繼電器的Zigbee 模塊,實現對照明燈的開關控制;然后ADAM-4150 通過485 總線接入到物聯網數據采集網關,各Zigbee節點通過Zigbee網絡接入到物聯網數據采集網關,各Lora 節點通過Lora 網絡接入到Lora 網關;然后物聯網數據采集網關、Lora網關通過WIFI網絡接入Internet 連接到部署在公網的物聯網云平臺。最后移動端(手機、平板)與物聯網云平臺實現接口數據交換,從而實現遠程監控和管理。具體系統設計圖如圖1下所示。

圖1 物聯網智慧農場系統設計圖
本次軟件系統開發基于Android studio 平臺,移動終端通過HTTP 協議調用服務器端的WebService 來實現數據的交互,使用人員可以通過客戶端隨時獲取農場內的各項環境信息,當農場內的監測數據超過設定值時,則web服務器會向手機發送報警信息推送,同時使用人員可以通過客戶端控制遠程設備,主要功能模塊如圖2所示。

圖2 移動app功能結構圖
該模塊提供用戶登錄和注冊功能,用戶在Android studio中創建的登錄及注冊頁面中填寫的信息通過Web-Service 存儲到數據庫服務器中或通過WebService 從數據庫中獲取數據傳到app 后臺程序以此驗證用戶填寫的用戶名或密碼是否正確。
該模塊主要功能是將傳感器采集到的數據,通過無線網傳給物聯網網關,然后在Android studio 項目中,在app的主頁面監控區域內進行傳感器實時數據采集與顯示。
該模塊的主要功能是當檢測到農場有人活動時,會將警報信息存儲到遠程服務器中,并通過提示信息,跳轉到警報數據界面,查看具體的警報信息。
要實現系統的自動控制,需要實現在移動app的界面中事先設置好各類傳感器的閾值,例如,溫度閾值設置成25℃,當溫度超過這個閾值時,空調系統將自動開啟,另外,要實現農場內的實時監控,就要設置好攝像頭的IP地址。
登錄界面包含了本app 的圖標、名稱、賬號密碼輸入框、登錄以及注冊按鈕。用戶如已注冊賬號,則可在輸入框中輸入帳號密碼,然后點擊登錄按鈕,程序會向服務端驗證用戶信息,通過則可進入主界面中。如用戶未注冊賬號,可以通過注冊賬號按鈕進入到注冊賬號界面(見圖3、圖4)。實現步驟如下:(1)創建并部署WebService;(2)在WebServiceHelper 類中添加登陸以及注冊方法;(3)在Android studio中創建登錄注冊界面;(4)創建LoginActivity活動實現登錄功能;(5)創建RegisterActivity 活動實現注冊功能。

圖3 用戶登錄頁面

圖4 用戶注冊頁面
在Android studio中創建全局參數設置界面,對物聯網云平臺的IP地址、項目標識,物聯網云平臺登錄的賬號和密碼,攝像頭IP地址,以及各類傳感器、執行器ID等參數通過SharedPreference 保存到用戶自定義Application 對象(見圖5)。

圖5 全局參數設置頁面
首先所要完成的任務是對農場中的數據采集、數據顯示和數據傳輸。先使用各類傳感器將農場中的溫濕度、光照等環境信息進行采集,通過物聯網網關將數據傳到新大陸物聯網云平臺。實現步驟如下:(1)鑒于要與物聯網云平臺實現通信,所以在Android studio 項目中引入第三方平臺jar包;(2)加入網絡訪問權限;(3)創建Cloud-Helper 幫助類,在CloudHelper 中定義了signIn()、getSensorDate()、getToken()三個方法,使用signIn()登錄到云平臺并通過getSensorDate()獲取傳感器數據值,在主界面上實時更新(見圖6)。

圖6 環境監測界面
禁入區有人闖入時,移動端app會將警報信息存儲到服務器,這里的數據存儲和訪問是通過調用服務器端WebService 來實現。移動端定時將人體傳感器檢測到的信息發送至Service 服務端進行保存,當移動端需要查看警報信息時,先發送請求給服務端,服務端提供警報信息給移動端。要與服務器進行數據交互,則首先需要創建WebService 服務,然后創建WebServiceHelper 類,我們希望能夠實時監測人體數據,因此需要更新活動MainActivity中定時器任務,保證數據隨時更新,點擊禁入區監控界面的文本組件,跳轉到警報信息界面。警報信息界面如圖7、圖8所示。

圖7 禁入警報界面

圖8 監控界面
當智慧農場中的溫度、濕度、光照的值不斷變化時,通過物聯網云平臺從移動終端接收控制指令并將指令發送給網關實現對各執行器的開關控制。前面提到的CloudHelper 類中已經包含了signIn()、getSensorData()實現了登錄云平臺、從云平臺獲取傳感器數據的方法,我們還要在CloudHelper類中添加onOff()方法用于打開和關閉執行器。為了使實現效果更佳,我們還需在移動端的主頁面中添加Android視圖動畫,從而實現各圖標以動畫的形式來顯示,比如通風控制設備打開后,風扇圖片能夠轉
動,空調控制設備打開后,可以模擬送風動畫,這樣可以給用戶賦予更加直觀的感覺(見圖9)。

圖9 設備控制界面
移動互聯網技術應用在農業生產可以有效推進農業信息化水平的提升,基于移動互聯網物聯網的智慧農場,,物聯網移動互聯網監控系統可以實現對智慧農場的精細化、全程化管理,有效實現了溫室大棚對光照、CO:、濕度、溫度等植物生長環境的監測與控制,同時系統采用了Android 開發中主流的技術,力求做到用戶界面友好、功能實用、數據傳輸及時等特點,切實為溫室大棚種植精細化管控提供典型的解決方案。