任碩果 黃冬貴
摘 要:在農業大棚中布置合理的無線傳感器節點,采集大棚內空氣溫濕度、土壤溫濕度、光照強度和二氧化碳濃度等環境數據,通過無線中繼將環境數據傳輸到主控機房,該文開發基于Android的大棚環境監測軟件,通過4G移動通信信號實現在手機或平板電腦上遠程移動訪問并控制大棚內的環境指標,使農作物處于最佳生長環境,提高農作物的產量和農業生產效率。
關鍵詞:大棚 環境監測 Android
中圖分類號:TP311 文獻標識碼:A 文章編號:1672-3791(2019)01(a)-00-02
農業生產中,農作物的生長環境對作物的產量起著至關重要的作用。該文開發了基于Android的大棚環境監測軟件,通過4G移動通信信號,實現在手機或平板電腦上遠程獲取并控制大棚內的環境指標。首先在農業大棚內布置合理的無線傳感器節點,采集大棚內空氣溫濕度、土壤溫濕度、光照強度和二氧化碳濃度等環境數據,通過無線中繼,將傳感器采集的數據傳送到主控機房,主控機房的服務器端與移動手機客戶端的連接采用4G通信信號。大棚中的傳感器數據不間斷地發送到主控機房,手機客戶端可以通過環境監測APP隨時訪問服務器,獲取大棚內環境數據,同時手機APP還可以遠程控制大棚內的無線智能插座和無線電磁閥來開啟或關閉風機、加熱器、遮陽網和水泵等設備,實現大棚內環境指標的智能調節,使農作物生長在最優的環境中,農產品的產量和質量得到了很大提高,同時也降低了人力、物力的投入,提高了勞動生產率。
1 設計環境監測軟件的Http服務器
在環境監測軟件的服務器端設計一個Http服務器,支持客戶端jason格式的數據請求。只有是http post請求時,才讀取請求數據,解析出協議類型、請求名稱和請求body三組數據,根據協議類型和請求名稱返回http響應消息。
public Response serve(IHTTPSession session)
{
String httpResp = "";
String strBody = "";
//當前是http post請求時,才讀取http body
if(session.getMethod() == Method.POST){
strBody = parsebody(session);
}
//讀取請求 url
String strUrl = session.getUri();
//解析出請求名稱和協議類型
String actionName = "";
String actionType = "";
String tmpArray[] = strUrl.split("/");
for(int i=0; i { String str = tmpArray[i]; if(str.equals("type")){ actionType = tmpArray[i+1]; } if(str.equals("action")){ actionName = tmpArray[i+1]; } } //根據協議類型,請求名稱和解析內容,返回Http響應消息 httpResp = BaseAction.disposeAction("http",actionType, actionName, strBody, context, headers.get("remote-addr").toString()); return new NanoHTTPD.Response(httpResp); } 2 設計環境監測軟件客戶端的請求線程 環境監測軟件客戶端獲取傳感器數據的請求或開閉受控設備的請求,是通過執行請求線程實現的, 該線程既可以執行一次,也可以循環重復執行同一個請求。 public class RequestThread extends Thread { public void run() { if(mRequest!=null && mApp!=null) { //獲取協議類型、action名稱和請求body String protocolType = mRequest.getProtocolType(); String actionName = mRequest.getActionName(); String requestBody = mRequest.getBody(); if(protocolType!=null && actionName!=null && requestBody!=null) { //url組裝 String url = "http://"+mApp.getServerIpStr()+":"+AppConfig.HTTP_SERVER_PORT; url += "/type/"+protocolType;//設置協議類型 url += "/action/"+actionName;//設置action名稱 String response = ""; response = NetUtil.sendByPost(url, requestBody);//采用http post的方式發送jason報文 //將服務器端回應的結果保存到請求對象中 mRequest.setResponseStr(response); result = RequestResult.RESULT_SUCCESS; } } } } 3 結語 該文設計開發的大棚環境監測軟件實現了Android移動客戶端APP隨時獲取主控機房服務器的環境數據,通過構建Http服務器,客戶端以線程形式發送Jason格式數據請求,完成環境數據的監控和受控設備的啟閉,經過實際的大棚環境測試,軟件功能滿足現場實際需求,軟件性能達到客戶的要求,適用于小范圍的監測,軟件已經獲得軟件著作權登記號,在社會生產環境監測方面具有借鑒意義和推廣價值。 參考文獻 [1] 秦琳琳,陸林箭,石春,等.基于物聯網的溫室智能監控系統設計[J].農業機械學報,2015,46(3):261-267. [2] 李慧,劉星橋,李景,等.基于物聯網Android平臺的水產養殖遠程監控系統[J].農業工程學報,2013,29(13):175-181. [3] 李順,馮雨謙,周曉嵐.基于ZigBee無線網絡的養殖場信息監測系統設計[J].陜西科技大學學報,2016(1):164-170.