999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于移動互聯的遠程溫室監控終端系統研究

2018-12-05 07:50:20王永紅劉雪蘭沈茂梅
江蘇農業科學 2018年21期
關鍵詞:服務系統

毛 林, 王永紅, 劉雪蘭, 程 濤, 周 鵬, 沈茂梅

(江蘇農牧科技職業學院,江蘇泰州 225300)

農業物聯網綜合運用無線通信、無線射頻識別(radio frequency identification,簡稱RFID)、微電子、嵌入式、分布式系統等技術,通過電子、無線傳感等設備,按約定通信協議將物與物相連接進行信息互聯互通、交換和共享,突破了農業生產、經營、管理受制于環境、地理、氣候等因素的不利影響和限制,使傳統農業快速向現代設施農業方式轉變。溫室(群)環境監控系統是基于物聯網的設施農業自動化管理系統,在智慧農業發展中扮演著重要角色,可以對溫室(群)、連棟溫室生產環境進行精準識別、定位、感知、監測、控制等,提升農業生產信息化、自動化、智能化管理水平,實現管理效能和經濟效益最大化目標。

溫室(群)監控物聯網系統能夠支持以網站、Web瀏覽器、視頻等客戶端訪問方式提供近距離或遠程監測與控制管理。隨著3G/4G通信技術與裝備的快速發展與應用,運用移動互聯技術構建面向智能終端應用的遠程監控系統,可隨時隨地為用戶提供方便快捷的服務。本研究結合江蘇農牧科技職業學院園藝溫室(群)物聯網平臺——JYP平臺,進行移動終端業務流程分析及功能設計,重點研究服務數據交換、數據轉換、客戶端通信、數據解析等關鍵技術及實現方法,提出基于Android的遠程溫室監控智能終端解決方案,以期提升現代設施農業自動化、智能化管理水平、效率、服務質量等,具有示范效應和現實意義。

1 JYP平臺及工作原理

JYP平臺分本地系統(下位機)、遠程系統(上位機)、中間網絡,由底層硬件系統、無線傳感網絡(wireless sensor networks,簡稱WSN)、網關、遠程服務器、遠程客戶端、監控屏幕等構成(圖1)。底層(感知層)無線傳感網絡是平臺環境數據的主要來源,采用層次分簇異構增強型結構[1-2],縱向與橫向上具有良好的伸縮性、可擴展性,適應感知對象、監測范圍、覆蓋密度、感知數據、通信距離等變化要求,滿足大規模復雜形態的服務質量需求[3]。JYP平臺包括數據采集、遠程監測、歷史數據查看、遠程控制、視頻監控、緊急報警等功能模塊,采用基于Java2平臺企業版(Java 2 platform enterprise edition,簡稱J2EE)的SSI(Struts 2.0+Spring 2.0+iBatis)開源框架部署、整合應用程序,實現總體業務聯動。JYP平臺業務流程包括數據采集與處理、遠程傳輸、統計分析、實時瀏覽、報警、視頻監控等(圖2)。通過平臺業務流程,完成現場實時環境數據的采集、轉換、壓縮、融合處理和遠程傳輸[2],提供數據持久化存儲、統計分析處理。用戶可隨時隨地登錄平臺進行環境監控,瀏覽現場溫度、濕度、光照度、CO2濃度等變化,查看歷史數據、監測報警、瀏覽監控視頻,實現遠程控制。

2 系統設計

2.1 系統架構

智能終端系統架構為基于客戶端/服務端的3層結構:Android客戶端、服務端、3G/4G移動網絡(通信鏈路層)(圖3)。客戶端系統部署在智能終端設備(如智能手機、平板電腦、掌上電腦等),提供無線通信接口、數據解析等中間層業務組件,為用戶查詢、控制等應用服務所調用。底層操作系統(Android系統)、硬件、移動網絡、軟件工具作為應用服務的支撐平臺。移動終端存儲空間和計算資源有限,本地數據存儲、處理要求不高時,可滿足輕量級應用需求,保證客戶端系統基本性能要求[4]。

服務端構建于JYP平臺服務器,平臺服務器搭建云計算平臺,包括基礎設施即服務(infrastructure as a service,簡稱IaaS)、平臺即服務(platform as a service,簡稱PaaS)、軟件即服務(software as a service,簡稱SaaS)等3層,提供多操作系統、虛擬化硬軟件資源,統一調度管理資源使用,承擔海量數據存儲、計算、復雜業務處理,快速提供用戶所需服務[5]。在JYP平臺開發服務端數據交換接口、數據轉換處理等業務組件,滿足客戶端數據訪問需求。

2.2 業務流程

平臺服務器為智能終端客戶端提供遠程訪問、查詢環境數據。客戶端登錄后進入軟件操作界面,發送監測、查詢、控制遠程訪問請求時,經互聯網服務提供商(internet service provider,簡稱ISP)移動通信網絡提交至服務器,首先訪問服務端接口,測試與平臺服務端建立連接。連接成功后,服務端與客戶端建立會話(Session),服務端生成客戶端唯一的專屬標志(SessionID),保存客戶端標志,在會話期間識別客戶端。服務端交換接口接受訪問請求信息,調用相關業務組件查詢數據庫,獲取所需信息內容,轉換為預定交換格式數據后返回給服務端接口,連同客戶端SessionID一并發送至客戶端。客戶端驗證來自服務端的SessionID后,接受數據并解析數據,通過操作系統將最終結果展示到客戶端用戶頁面[4]。系統的業務流程如圖4所示。

2.3 開發工具

Android為Google發布的主流開源智能終端操作系統,是基于Linux的開放式嵌入式系統。Android智能終端(如智能手機、平板電腦、掌上電腦等)使用廣,占據目前國內用戶市場80%以上的份額。因其版本更新快、功能強大、開發效率高等特點,深受業界歡迎。Android系統包括活動(activity)、服務(service)、組播接收器(broadcast receiver)、移動數據內容提供商(content provider)等4個組件,內置控件箱擁有豐富、美觀的用戶控件,支持輕量級數據庫SQLite數據存取,提供多媒體、網絡接口通信、全球定位功能和通用工具類服務[6]。

本研究的設計選用Google官方開源集成開發環境工具Android Studio開發客戶端系統。Android Studio集成了Android所有軟件開發工具包(包括ADT、第三方開源庫等),開發環境更易于搭建,與Eclipse相比,僅須配置少數額外插件,功能、效率、便捷性較高[6]。服務端基于J2EE架構的視圖-模型-控制器(model-view-controller,簡稱MVC)設計模式[5],部署SSI輕量級開源框架[7],使之與JYP平臺相一致。Struts框架使Web服務交換層與控制層相互分離,iBatis充當數據訪問(data access object,簡稱DAO)層數據庫訪問組件,Spring框架組裝和管理全局應用程序,實現數據交換接口與數據庫的交互。SSI自適應、可擴展的半成品框架特性,使服務端應用開發與維護更加快捷、便利、高效。

3 系統實現

3.1 服務端實現

服務端部署于JYP平臺服務器,服務端應用程序工作區src的com.jyp.mobile包括以下分層(圖5):Web服務交換(webservice)層、控制(action)層、業務(biz)層、數據訪問(dao)層、持久化(PO)層,各層僅含1個組件(組件內定義并實現業務方法),避免組件過多引起服務端資源開銷過大問題,利用SSI框架簡化應用程序組裝,以即插即用的方式管理全局應用程序,降低軟件模塊耦合度,減少系統開銷、提高運行效率。

3.1.1 數據交換 Web服務接口實現服務端、客戶端之間的交互和數據交換。Web服務運用SOAP、WSDD、XML、UDDI在服務端應用程序上對外共享開放式網絡服務,提供客戶端遠程訪問服務端功能,運用消息或請求服務發現處理機制,接收網絡請求、做出響應[4]。互聯網應用中,超文本傳輸協議(hypertext transfer protocol,簡稱HTTP)是網絡通信的普適標準[8],提供了Webservice交換接口規則描述,被網絡信息系統廣泛用于Internet網絡資源定位與交換服務。

基于Webservice及HTTP規則開發服務交換接口,開發過程:(1)設置Web服務交換地址,JYP平臺服務端應用程序包括6個服務接口,即用戶登錄(http://localhost:8080/jmob/jmob_login.action)、實時監測(http://localhost:8080/jmob/jmob_monitor.action)、遠程控制(http://localhost:8080/jmob/jmob_control.action)、緊急報警(http://localhost:8080/jmob/jmob_alarm.action)、歷史查詢(http://localhost:8080/jmob/jmob_statistics.action)、基礎設置(http://localhost:8080/jmob/jmob_setting.action),按順序從1開始編號,分別與客戶端通信接口地址統一資源定位符(uniform resource locator,簡稱URL)對應。(2)設置接口交換規則。根據HTTP協議為交換接口定義交換規則,包括請求參數、HTTP請求方法、消息類型及處理方式、返回值等。這里以登錄請求接口為例描述接口規則(表1),其他接口除請求參數種類、個數、功能不同外,其他規則類同。(3)配置和發布Web服務。在JYP平臺項目WebRoot/WEB-INF目錄deploy.wsdd文件中配置(配置代碼見圖6),指示對外共享的Web服務類MobService;配置完成后,使用Apache axis2發布工具AdminClient發布Web服務,在服務端IE瀏覽器地址欄中輸入http://localhost:8080/AxisWebService/servlet/AxisServlet進行測試,顯示發布成功信息。

交換接口通過業務組件與底層數據庫交互,服務端數據交換過程:(1)Spring容器監聽來自客戶端的通信請求,獲取請求訪問的服務端接口,傳遞給交換層組件MobileWebService;(2)struts.xml中配置MobileWebService調用action層組件mobileAction業務方法,如登錄(login)、監測(monitor)、歷史查詢(statistics)、控制(control)等,將請求參數打包成持久化對象PO或HashMap對象;(3)Spring框架定義action層、biz層、dao層組件調用,通過applicationContext.xml配置依賴注入(dependency injection,簡稱DI)和反轉控制(inversion of control,簡稱IoC)實現;mobileDao.ibatis.xml(ibatis框架)中注冊sqlMap標簽訪問數據庫,執行指定的結構化查詢語言(structured query language,簡稱SQL)查詢操作。

3.1.2 數據轉換 網絡上傳輸數據一般是XML、JSON數據格式的數據。數據交換接口接受客戶端HTTP請求做出響應,調用各層業務組件查詢數據庫,若讀取到了數據,則返回結果。包括3種類型數據:HashMap、持久化對象Vo、ArrayList(存儲持久化對象PO的順序列表)。服務端交換接口不能將這種數據直接通過網絡發送到客戶端,而須要預先進行數據轉換處理。JSON為輕量級交換格式數據,有效壓縮了數據容量,網絡寬帶占用小、傳輸效率高,可快速送達客戶端。與XML、PULL、SAX等解析方法相比,JSON數據大大降低或消除了Android解析的復雜性,客戶端讀取、解析簡單方便[9]。

表1 Web服務交換接口規則

本研究的設計是在action層的mobileAction組件中完成數據格式轉換的。服務端數據轉換過程:(1)在mobileAction中定義轉換方法parseDataToJson(data),data為來自數據庫返回的數據,data包括HashMap、持久化對象Vo、ArrayList等3種類型。(2)parseDataToJson中依據data類型,將data轉換成JSON格式數據,JSON數據通過JSONObject或JSONArray實例對象來存儲(圖7)。(3)當data為HashMap或Vo時,以JSONObject保存JSON。HashMap使用get(key)取得鍵值對key-value(鍵值對可包括多個,key唯一),Vo使用getXXX屬性方法獲得鍵值對。通過JSONObject實例的put(key,value)保存鍵值對到JSONObject中。(4)data為ArrayList時,利用get方法依次取出Vo,將Vo中的鍵值對保存到JSONObject,再使用put將JSONObject保存到JSONArray。

3.2 客戶端實現

客戶端系統包含用戶登錄、環境監測、控制、歷史查詢、報警等功能模塊。Android系統中,視圖與業務是相互分離的。客戶端包括登錄界面、主界面和若干功能界面,界面中安放Button按鈕、ListView列表、Spinner下拉框、DatePicker時間、ImageView圖片等控件,添加HelloCharts 圖表繪制工具,界面布局、控件樣式通過LinearLayout、RelativeLayout等布局方式設置,在res/layout工程目錄xml文件中進行定義和編輯。activity充當事件處理器,綁定視圖界面,接收事件對象或消息,進行業務處理,將處理結果展示到視圖界面。activity通過AndroidManifest.xml注冊生效。activity事件處理程序是用戶進入界面時,首先由onCreate保存當前的activity狀態,setContentView鎖定用戶界面;當用戶操作時,監聽器onClickListener監聽事件對象,觸發onClick事件對用戶操作執行1次業務處理。activity可通過Intent對象轉向另一個activity,實現在客戶端不同界面切換,響應速度快。客戶端功能實現中,接口通信、數據解析是activity事件業務處理的關鍵。

3.2.1 通信接口 通信接口負責與遠程服務器交互,包括測試連接服務端、發送遠程請求、與服務端建立會話、接收返回結果。本研究的設計采用自定義外部公共類ClientUtility,類中定義重載方法getJSONByInterface來創建客戶端通信接口。通信接口實現步驟:(1)在getJSONByInterface中為HttpURLConnection實例對象設置請求訪問的服務端交換地址URL、提交方式(GET/POST)、時延(Timeout)、協議頭類型(Content-Type)、是否允許緩存(UseCaches)等特性,設置參數由外部Activity調用時傳入;(2)通過JSONObject將請求參數包裝成支持網絡傳輸編碼格式HTTP.UTF-8的鍵值對,存入JSONArray;(3)JSONArray轉換成String字符串,再經getBytes轉換后寫入BufferedOutputStream(緩沖字節輸出流),追加到URL,以POST方式提交,測試連接服務端;(4)通過getResponseCode獲取服務端響應碼,判斷連接狀態,響應碼為200時表示已建立連接;(5)連接成功后,獲取服務端響應數據,包裝成BufferedReader(緩沖字符流),讀取BufferedReader保存為字符串responseData,再使用decodeUnicode解碼成UTF-8編碼格式的JSON數據;若是初次連接,還須通過HttpURLConnection的getHeaderFields獲取服務端分配的客戶端標志,存入客戶端Cookie中。

客戶端系統涉及登錄、實時監測、歷史查詢、遠程控制等多項操作,每項操作都須執行接口通信、數據處理。用戶操作時,綁定用戶界面的Activity作為主線程,Activity內部onCreate、onClick開啟子線程來調用通信接口,通信結束后,關閉子線程、返回主線程,確保主線程暢通,增強用戶體驗。客戶端通信過程為(1)初次登錄訪問時,Activity開啟子線程調用接口方法getJSONByInterface,傳遞登錄接口地址http://localhost:8080/jmob/jmob_login.action及登錄帳號、密碼,提交至服務端;(2)與服務端連接成功后,服務端返回響應數據,讀取狀態碼驗證通過后,保存客戶端標識編號,返回主線程;(3)用戶點擊進入其他界面進行監測、查詢、控制等操作時,開啟子線程再次調用getJSONByInterface,傳入對應服務接口地址URL、客戶端SessionID等相關參數后提交服務端,服務端返回響應結果,讀取狀態碼有效且返回值不為空時,提取響應結果,經UTF-8解碼存儲JSON數據,進行后續解析處理。

3.2.2 數據解析 從服務端響應數據中提取JSON數據,不能直接用于視圖界面。數據解析的目標是,將JSON數據轉換為加載到可視化操作界面的顯示數據,包括數字、文本、符號、圖表等。JSON數據分2種類型(圖7),一種是鍵/值對集合對象;另一種是鍵/值對集合的有序列表。對于前者,解析時通過JSONObject的getString(key)方法一一獲取所有鍵/值對,封裝成持久化對象Vo;對于后者,解析較復雜,須同時利用JSONArray和JSONObject將JSON數據轉換為持久化對象Vo的列表ArrayList。本研究的設計使用GSON方法解析JSON數據[10],GSON開源庫由Google提供,利用GSON解析、處理復雜類型數據時,更加簡單高效。解析過程是(1)在ClientUtility類中自定義解析方法getDataFromJSON,通信接口子線程結束后,Activity主線程啟動子線程調用該方法,并傳遞JSON數據jsonResponse;(2)getDataFromJSON分析JSON類型,通過Gson實例方法fromJson直接轉換,若為JSONObject時,轉換為Vo對象,若是JSONArray則轉換為ArrayList;(3)對Vo 或ArrayList利用get等方法進行簡單處理,可獲得數字、文本等數據,綁定到視圖控件、圖表繪制工具上,呈現結果界面。完整代碼如圖8所示。

4 應用實例

本研究實例中,根據JYP平臺實際數據為樣本,測試智能手機客戶端系統,用戶登錄后進入功能主界面。通過實時監測模塊可查看各溫室的實時環境監測值,展示動態數值變化曲線,可通過手動方式滾動查看;選擇遠程控制模塊時,可根據當前環境狀態開啟/關閉執行機,調節溫度、濕度、光照度、CO2濃度等參數至合理區間;通過歷史查詢模塊可顯示某段時間內環境監測最高值、最低值、平均值等信息;進入緊急報警模塊后,通過開啟/關閉按鈕,可對監控溫室報警地點啟動或關閉報警;基礎設置模塊可設置溫度、濕度、光照度、CO2濃度等參數的上下限閾值(圖9)。通過系統測試,能夠達到智能手機遠程監控管理的目標。

5 結語

以溫室(群)遠程監控智能終端為研究對象,結合園藝溫室物聯網平臺JYP架構及業務,采用Android、SSI框架、Web服務、HTTP等技術,設計開發智能終端服務端與客戶端系統。重點研究服務接口交換、數據轉換、客戶端接口通信與數據解析技術方法,提出了面向Android的遠程溫室監控智能終端解決方案。通過系統測試,智能手機以快捷、便利方式,獲得來自現場環境感知數據,監控實時環境變化情況、查詢歷史數據,獲取報警信息、進行遠程控制,實現溫室自動化管理。該方案將移動互聯與農業物聯網應用相融合,提高了設施農業智能化、自動化管理服務效能。

猜你喜歡
服務系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
服務在身邊 健康每一天
今日農業(2019年14期)2019-09-18 01:21:54
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
半沸制皂系統(下)
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年15期)2019-01-03 12:11:33
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
主站蜘蛛池模板: 久久综合九色综合97网| 真实国产精品vr专区| 亚洲精品成人片在线播放| 免费观看三级毛片| 色国产视频| 国产成人久视频免费| 国产日本欧美亚洲精品视| 久久亚洲精少妇毛片午夜无码 | 亚洲第一网站男人都懂| 嫩草影院在线观看精品视频| 国产精品观看视频免费完整版| 国产精品一区在线观看你懂的| 午夜福利在线观看成人| 自拍偷拍欧美日韩| 精品国产免费观看| 三上悠亚一区二区| 国产办公室秘书无码精品| 国产激情影院| 亚洲无码视频一区二区三区| 国产麻豆aⅴ精品无码| 久久精品人人做人人综合试看| 人妻丰满熟妇αv无码| 18禁黄无遮挡网站| 亚洲伊人久久精品影院| 国产精品极品美女自在线| 就去吻亚洲精品国产欧美| 毛片基地美国正在播放亚洲| 欧美精品亚洲二区| 国产一区二区三区免费观看| 欧美视频在线不卡| 国产女人喷水视频| 成人免费视频一区| 国产精品hd在线播放| 亚洲综合色婷婷| 国产在线观看第二页| 天天摸夜夜操| 欧亚日韩Av| 草草影院国产第一页| 国产精品极品美女自在线网站| 国产不卡一级毛片视频| 国产激爽大片高清在线观看| 欧美第九页| 色综合天天综合中文网| 国产无遮挡猛进猛出免费软件| 亚洲 成人国产| 在线观看精品自拍视频| 一级毛片网| 亚洲午夜片| 老色鬼久久亚洲AV综合| 亚洲AV无码一区二区三区牲色| 欧美另类视频一区二区三区| 青青国产视频| 日本高清视频在线www色| 久久6免费视频| 国产综合色在线视频播放线视| 亚洲日韩精品欧美中文字幕| 一本大道香蕉高清久久| 看国产一级毛片| 国产 在线视频无码| 91久久偷偷做嫩草影院电| 亚洲天堂自拍| 男女猛烈无遮挡午夜视频| 青青网在线国产| 中文字幕不卡免费高清视频| 97狠狠操| 国产一区二区网站| 日日噜噜夜夜狠狠视频| 国产精品尤物在线| 国产一区二区三区在线精品专区| 永久成人无码激情视频免费| 伊人中文网| 制服丝袜国产精品| 亚洲第一视频免费在线| 69视频国产| 欧美日本激情| 沈阳少妇高潮在线| 五月婷婷导航| 老司机精品99在线播放| 国产成人禁片在线观看| 制服丝袜无码每日更新| 亚洲精品视频网| 欧美va亚洲va香蕉在线|