国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于iOS的農(nóng)業(yè)信息采集系統(tǒng)的設(shè)計與實現(xiàn)

2018-12-19 08:51:50鄭貴林
江蘇農(nóng)業(yè)科學(xué) 2018年22期
關(guān)鍵詞:環(huán)境參數(shù)服務(wù)端視圖

鄭貴林, 張 天

(武漢大學(xué)動力與機械學(xué)院,湖北武漢 430072)

農(nóng)業(yè)物聯(lián)網(wǎng)是指通過農(nóng)業(yè)信息感知設(shè)備,按照約定協(xié)議,把農(nóng)業(yè)系統(tǒng)中動植物生命體、環(huán)境要素、生產(chǎn)工具等物理部件和各種虛擬“物件”與互聯(lián)網(wǎng)連接起來,進行信息交換和通信,以實現(xiàn)對農(nóng)業(yè)對象和過程智能化識別、定位、跟蹤、監(jiān)控和管理的一種網(wǎng)絡(luò)[1]。

物聯(lián)網(wǎng)技術(shù)與農(nóng)業(yè)生產(chǎn)、經(jīng)營、管理、服務(wù)全產(chǎn)業(yè)鏈的深度融合,對改造傳統(tǒng)農(nóng)業(yè)、提升農(nóng)業(yè)現(xiàn)代化水平具有重要意義[2]。農(nóng)業(yè)物聯(lián)網(wǎng)能實時監(jiān)控生產(chǎn)條件,高效管理生產(chǎn)過程,科學(xué)控制生產(chǎn)成本,是未來農(nóng)業(yè)的發(fā)展方向。目前,世界范圍內(nèi)農(nóng)業(yè)物聯(lián)網(wǎng)技術(shù)研究廣泛且深入,但應(yīng)用上總體處于試驗示范階段[3]。農(nóng)業(yè)物聯(lián)網(wǎng)的具體應(yīng)用主要集中在溫室大棚、果園等設(shè)施的土壤溫濕度和作物生長環(huán)境信息[4]、作物本體信息[5]的采集和少量畜牧養(yǎng)殖相關(guān)參數(shù)的采集以及農(nóng)業(yè)節(jié)水灌溉[6]方面。

本研究設(shè)計的信息采集系統(tǒng)實現(xiàn)了對農(nóng)場環(huán)境水質(zhì)、氣象、土壤等信息的在線高精度測量與實時采集,提供了豐富的數(shù)據(jù)展示與對比功能,指導(dǎo)了農(nóng)業(yè)生產(chǎn),同時,用戶可以通過iOS(由蘋果公司開發(fā)的移動操作系統(tǒng))設(shè)備查看農(nóng)業(yè)生產(chǎn)信息,具有很大的便捷性。

1 系統(tǒng)架構(gòu)

系統(tǒng)由3大部分組成圖1,分別是信息感知層、信息傳輸層、信息應(yīng)用層。感知層測量現(xiàn)場的環(huán)境參數(shù),通過傳輸層匯聚打包發(fā)送給應(yīng)用層,應(yīng)用層對現(xiàn)場數(shù)據(jù)進行分析處理,反饋于農(nóng)業(yè)生產(chǎn)。

1.1 信息感知層

感知層是農(nóng)業(yè)物聯(lián)網(wǎng)的核心部分,感知層實現(xiàn)了對農(nóng)業(yè)生產(chǎn)信息的獲取[7]。信息感知層通過多種傳感器測量現(xiàn)場環(huán)境參數(shù),本系統(tǒng)感知的信息主要包括水質(zhì)(pH值、電導(dǎo)率、溶解氧含量、水位、水溫)、降水量、空氣PM2.5(細顆粒物)、CO2濃度、土壤情況(溫度、濕度、pH值、養(yǎng)分)、氣象5要素(風(fēng)向、風(fēng)速、大氣溫度、濕度、壓力),實現(xiàn)了農(nóng)業(yè)生產(chǎn)信息的全方位感知。

感知層采用太陽能電池和蓄電池不間斷電源(uninterruptible power system,簡稱UPS)切換方法,解決了傳感器野外供電問題。傳感器采用RS485的方式組網(wǎng),組網(wǎng)方式簡單,適應(yīng)野外惡劣環(huán)境。

1.2 信息傳輸層

感知層在獲取現(xiàn)場的環(huán)境信息后,通過傳輸層匯聚,并傳輸給應(yīng)用層。本系統(tǒng)的傳輸層主要由數(shù)據(jù)采集終端(remote terminal unit,簡稱RTU)及集成在RTU上的數(shù)據(jù)傳輸單元(data transfer unit,簡稱DTU)等組成。傳感器節(jié)點通過RS485總線和RTU連接,RTU定時采集傳感器數(shù)據(jù),打包后通過DTU發(fā)送給采集服務(wù)器。

GPRS(通用分組無線服務(wù))組網(wǎng)傳輸速率可觀和費用低、可靠性高、實時性強、監(jiān)控范圍廣、傳輸功率小,適合野外供電環(huán)境,故本系統(tǒng)采用GPRS/GSM(全球移動通信系統(tǒng))作為現(xiàn)場站點的組網(wǎng)信道,DTU通過GPRS網(wǎng)絡(luò)和服務(wù)端進行連接。

在采集站斷網(wǎng)(GPRS連接異常,服務(wù)器連接異常等)的情況下,RTU依然能進行采集,并將數(shù)據(jù)存儲在本地的固體存儲器中;網(wǎng)絡(luò)正常后,采集服務(wù)端根據(jù)斷網(wǎng)時間召回缺失數(shù)據(jù),保證了數(shù)據(jù)的完整性和連續(xù)性。

1.3 信息應(yīng)用層

信息應(yīng)用層主要由服務(wù)端采集程序、數(shù)據(jù)庫、移動客戶端、瀏覽器等組成。信息應(yīng)用層實現(xiàn)了對農(nóng)場數(shù)據(jù)的存儲、顯示、查詢等功能。服務(wù)端采集程序解析處理由信息傳輸層上傳的數(shù)據(jù),并將數(shù)據(jù)存儲在數(shù)據(jù)庫中,用戶通過移動客戶端和瀏覽器可以查看農(nóng)場的環(huán)境參數(shù),根據(jù)監(jiān)測到的數(shù)據(jù),實現(xiàn)對農(nóng)作物的精細化管理。

2 采集服務(wù)器

采集服務(wù)器使用workerman框架進行開發(fā)。workerman是一個高性能的PHP socket(PHP指超文本預(yù)處理器)服務(wù)器框架。workerman的目標是讓PHP開發(fā)者更容易地開發(fā)出基于socket的高性能的應(yīng)用服務(wù),而不用去了解PHP socket以及PHP多進程細節(jié)。workerman本身是一個PHP多進程服務(wù)器框架,具有PHP進程管理以及socket通信的模塊,所以不依賴于php-fpm、nginx或者apache等容器便可以獨立運行[8]。

采集服務(wù)器實現(xiàn)了和現(xiàn)場RTU的通信,采集數(shù)據(jù)并解析數(shù)據(jù)包存入數(shù)據(jù)庫中。RTU和服務(wù)器之間保持TCP(傳輸控制協(xié)議)長連接,利用心跳的方式確保連接的有效性,RTU在斷線后將自動進行重連,確保連接的有效性?,F(xiàn)場通信異?;謴?fù)后,采集服務(wù)器根據(jù)RTU的斷線時間召回掉線時間的數(shù)據(jù),確保了數(shù)據(jù)的連續(xù)性。

服務(wù)器采用多進程的方式和RTU進行通信,服務(wù)端數(shù)據(jù)包處理流程見圖2程序在啟動時,根據(jù)數(shù)據(jù)庫中RTU設(shè)備數(shù)量開啟進程,1個進程用來處理通用業(yè)務(wù)流程,其余的進程分別綁定了相應(yīng)的RTU,處理相應(yīng)的RTU數(shù)據(jù)。不同RTU的數(shù)據(jù)在不同進程上處理,確保了并發(fā)時不會因為處理時間過長導(dǎo)致進程阻塞。

程序啟動后,開始監(jiān)聽客戶端的接入,連接處理流程見圖3數(shù)據(jù)庫中事先添加了RTU設(shè)備信息,客戶端上線后,更新設(shè)備狀態(tài),根據(jù)設(shè)備離線的時間段向RTU發(fā)送召回數(shù)據(jù)命令。接收到數(shù)據(jù)后,根據(jù)數(shù)據(jù)的包頭信息區(qū)分數(shù)據(jù)類型,數(shù)據(jù)包頭主要包含RTU設(shè)備數(shù)據(jù)包頭、實時數(shù)據(jù)包頭、斷線數(shù)據(jù)包頭等, 根據(jù)包頭解析數(shù)據(jù)并將解析結(jié)果存入數(shù)據(jù)庫。服務(wù)端向外部發(fā)布Web服務(wù),客戶端可以調(diào)用相關(guān)接口訪問數(shù)據(jù)庫數(shù)據(jù)。

3 iOS客戶端設(shè)計

iOS客戶端軟件使用Objective-C語言在Xcode開發(fā)平臺下開發(fā)[9]。iOS客戶端實現(xiàn)了信息采集站的監(jiān)控。

iOS客戶端采用模型-視圖-控制器(model- view- controller,簡稱MVC)設(shè)計模式(圖4),MVC模型分離了程序的表現(xiàn)、控制和數(shù)據(jù),具有重用性高、耦合性低、可擴展、可維護等優(yōu)勢[10]。模型部分主要負責(zé)數(shù)據(jù)交互,分為網(wǎng)絡(luò)請求模塊和數(shù)據(jù)持久化模塊,網(wǎng)絡(luò)請求模塊負責(zé)與云端交互,調(diào)用服務(wù)端接口請求數(shù)據(jù)或上傳數(shù)據(jù),數(shù)據(jù)持久化模塊主要用來存儲賬號信息、保存草稿等;視圖部分用來展示客戶端界面,包含系統(tǒng)視圖和自定義視圖;模型和視圖之間不能直接通信,由控制器協(xié)調(diào)模型和視圖,根據(jù)業(yè)務(wù)邏輯把模型數(shù)據(jù)顯示到視圖上,同時,將用戶在視圖上操作事件的數(shù)據(jù)傳遞給模型。

iOS客戶端的工作流程見圖5。程序啟動后,首先驗證登錄狀態(tài),在token(令牌)非空并且未過期的情況下直接進入首頁,否則就進入登錄界面。用戶在使用賬號密碼登錄后,服務(wù)器會根據(jù)賬號信息生成1個token字符串,同時設(shè)置token的生命周期,登錄成功后客戶端把token存儲在本地??蛻舳苏埱髷?shù)據(jù)時須帶token參數(shù),從而保證了接口的安全性。登錄成功后,用戶可以查看客戶端所有功能模塊。

iOS客戶端主要包含實時數(shù)據(jù)、歷史數(shù)據(jù)、歷史曲線對比、天氣預(yù)報、地圖管理等功能模塊。實時數(shù)據(jù)模塊展示了各個站點的傳感器的實時數(shù)據(jù);歷史數(shù)據(jù)模塊展示了傳感器每天、每周、每月的數(shù)據(jù)信息,通過圖表和數(shù)據(jù)列表的形式展現(xiàn)出來;歷史曲線對比模塊可以根據(jù)用戶的需求查詢不同傳感器某個時間段的歷史數(shù)據(jù),并將歷史數(shù)據(jù)繪制到同一張圖表中展示傳感器數(shù)據(jù)之間的關(guān)系;天氣預(yù)報模塊展示了站點的天氣信息,根據(jù)RTU的位置信息,調(diào)用第三方天氣接口服務(wù),預(yù)報該站點的天氣;地圖管理模塊直觀地在地圖上展示了各個站點的位置信息,并提供了距離測量、導(dǎo)航等相關(guān)功能。

3.1 通信模塊設(shè)計

在網(wǎng)絡(luò)操作中,服務(wù)器返回的數(shù)據(jù)格式一般采用XML(可擴展標記語言)解析和JSON(JavaScript對象表示法)解析方式。XML文件龐大、格式復(fù)雜、傳輸帶寬大,但是其格式統(tǒng)一、符合標準,與其他系統(tǒng)進行遠程交互、數(shù)據(jù)共享容易。JSON格式簡單、占用帶寬小,直接通過鍵值解析數(shù)據(jù)。對于數(shù)據(jù)較少的解析一般采用JSON解析,對于大規(guī)模數(shù)據(jù)一般采用XML解析[11]。本系統(tǒng)iOS客戶端所涉及的數(shù)據(jù)量相對較小,格式簡單,因此選擇JSON格式進行數(shù)據(jù)傳輸。

iOS客戶端通過webservice方式與服務(wù)端進行通信,使用JSON格式進行數(shù)據(jù)交互。為了減少網(wǎng)絡(luò)通信的開銷,可以進行本地緩存。由于歷史數(shù)據(jù)不會發(fā)生變化,請求成功后,將歷史數(shù)據(jù)存儲到本地緩存中,下次請求時首先判斷緩存中是否有歷史數(shù)據(jù),如果有就可以直接從緩存中加載。對于實時數(shù)據(jù),仍然需要向服務(wù)端請求最新數(shù)據(jù)。

iOS客戶端采用同步阻塞請求的方式調(diào)用webservice接口,接口調(diào)用過程如下:(1)傳入接口URL(統(tǒng)一資源定位符)和參數(shù);(2)開新線程;(3)同步請求;(4)解析數(shù)據(jù)并將結(jié)果以block方式返回給主線程;(5)將結(jié)果顯示在界面上。

3.2 界面設(shè)計

界面主要采用Xcode的storyboard設(shè)計,同時也通過代碼和xib的方式自定義了一些視圖。界面考慮到了不同iPhone機型及iOS系統(tǒng)的適配,客戶端能在iOS7及以上系統(tǒng)的手機上運行。

良好的人機交互界面,不僅帶來好的用戶體驗,同時也可以大大提高工作效率[12]。客戶端的主要功能是各個站點的實時數(shù)據(jù)和歷史數(shù)據(jù)的展示(圖6、圖7)。

4 數(shù)據(jù)分析

系統(tǒng)近2年的運行累積了大量的農(nóng)業(yè)生產(chǎn)數(shù)據(jù)。下面從降水量、溫度(土壤溫度和大氣溫度)、濕度(土壤濕度和大氣濕度)等環(huán)境參數(shù)來分析農(nóng)業(yè)生產(chǎn)信息。

由表1可知,該區(qū)域在5月到9月降水量較高,同時溫度和濕度均較高,濕度和降水量之間并不是完全的線性關(guān)系,濕度相對于降水量有一定的延遲性。綜合上述環(huán)境參數(shù),農(nóng)業(yè)生產(chǎn)者可以根據(jù)農(nóng)作物的生長特點選擇適合當?shù)丨h(huán)境的農(nóng)作物種植,在濕度較低時灑水增加濕度,在溫度較低時選擇大棚種植方式保持合適的生長溫度,同時根據(jù)各個環(huán)境參數(shù)的變化規(guī)律事先作出生產(chǎn)決策。通過對農(nóng)場生產(chǎn)環(huán)境的監(jiān)測,有效反饋農(nóng)業(yè)生產(chǎn)。

表1 2016年高韓站部分環(huán)境參數(shù)

5 系統(tǒng)應(yīng)用

本系統(tǒng)已成功運用在四川省成都市的10個野外采集站,部分現(xiàn)場設(shè)備見圖8,近2年的運行表明,系統(tǒng)運行穩(wěn)定,實現(xiàn)了對農(nóng)業(yè)生產(chǎn)信息的實時監(jiān)測與分析,對農(nóng)業(yè)生產(chǎn)有積極的指導(dǎo)作用。

6 結(jié)語

本農(nóng)業(yè)信息采集系統(tǒng),通過iOS移動設(shè)備能隨時隨地查看農(nóng)田各項環(huán)境參數(shù),有效幫助農(nóng)業(yè)生產(chǎn)者掌握農(nóng)業(yè)生產(chǎn)信息,為生產(chǎn)決策提供了數(shù)據(jù)支持。本系統(tǒng)組網(wǎng)簡單、功耗低、安全性高、運行穩(wěn)定、便于野外部署,對農(nóng)業(yè)物聯(lián)網(wǎng)的推廣有積極的作用,適用于廣大農(nóng)場、果園等生產(chǎn)環(huán)境,有廣闊的市場。

本系統(tǒng)還有一些可以改進的地方。系統(tǒng)中信息感知層采用RS485組網(wǎng)方式,RS485為半雙工通信方式,且傳輸速度不高,采用速度更快的Wi-Fi組網(wǎng)方式,能夠減少現(xiàn)場布線,降低組網(wǎng)復(fù)雜度,同時能增加網(wǎng)絡(luò)容量。目前Internet網(wǎng)絡(luò)層主要使用的是IPv4協(xié)議,隨著互聯(lián)網(wǎng)本身的快速發(fā)展,IPv4的地址已經(jīng)日漸匱乏,從目前的地址消耗速度來看,IPv4地址空間已經(jīng)很難再滿足物聯(lián)網(wǎng)對網(wǎng)絡(luò)地址的龐大需求。下一代網(wǎng)絡(luò)協(xié)議IPv6采用了長度為128位的IP(網(wǎng)絡(luò)協(xié)議)地址,徹底解決了IPv4地址不足的難題,將IPv6技術(shù)運用到感知層傳感器組網(wǎng)中,對于提高網(wǎng)絡(luò)容量、增加網(wǎng)絡(luò)安全性、方便網(wǎng)絡(luò)管理等方面有積極的意義。

猜你喜歡
環(huán)境參數(shù)服務(wù)端視圖
基于云平臺的智能家居環(huán)境參數(shù)協(xié)同監(jiān)控系統(tǒng)設(shè)計
列車動力學(xué)模型時變環(huán)境參數(shù)自適應(yīng)辨識
一種食用菌大棚環(huán)境參數(shù)測控系統(tǒng)設(shè)計
電子制作(2019年7期)2019-04-25 13:17:10
云存儲中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
新時期《移動Web服務(wù)端開發(fā)》課程教學(xué)改革的研究
基于小型固定翼移動平臺的區(qū)域大氣環(huán)境參數(shù)采集系統(tǒng)設(shè)計
電子測試(2018年4期)2018-05-09 07:27:32
5.3 視圖與投影
在Windows Server 2008上創(chuàng)建應(yīng)用
視圖
Y—20重型運輸機多視圖
云南省| 突泉县| 泰安市| 乌审旗| 怀宁县| 周宁县| 嘉定区| 岑巩县| 高邮市| 江永县| 保亭| 越西县| 沙坪坝区| 新泰市| 芦山县| 什邡市| 隆昌县| 蓬安县| 商南县| 宁夏| 玛沁县| 隆尧县| 偃师市| 金山区| 阳城县| 疏勒县| 师宗县| 南靖县| 左云县| 宝丰县| 张北县| 彭泽县| 泾川县| 多伦县| 安乡县| 台东市| 吉水县| 独山县| 富宁县| 建水县| 什邡市|