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

農業物聯網移動監控系統的研究與實現

2021-07-19 09:36:22萬春旭
電腦知識與技術 2021年14期

萬春旭

摘要:在人力成本提升、農業從業者結構性短缺的今天,農業物聯網成為有效提升農業生產效率的最佳手段之一。農業物聯網移動化監控系統是農業物聯網軟件系統中的一部分,它讓農業生產管理者在空間和時間上得到解放。該文分析了農業物聯網移動化監控系統開發的核心技術,具體介紹了這些技術的特點和使用方法,同時總結了一套高效、易用的開發模式。

關鍵詞:農業物聯網;移動監控系統;Android

中圖分類號:TP393? ? ? 文獻標識碼:A

文章編號:1009-3044(2021)14-0004-03

1 背景

我國是一個農業大國,但不是一個農業強國。要把14億人的飯碗端在自己的手里,需要大力發展現代化農業技術。從大力倡導發展農業機械化、到向以色列學習設施農業,再到現在全面發展智慧農業,我國農業在較短時間內實現了技術上的升級[1]。隨著物聯網、大數據、人工智能等技術在農業中的應用,讓農業產業精準化、節約化、工業化,擺脫人力密集、靠天吃飯等傳統農業的產業弊端。農業物聯網具有技術成熟,開發成本低、建設收益明顯等特點,在當今的農業產業中被廣泛應用。它的典型應用場景有智能養殖、智能溫室、農業產品跟蹤溯源等[2]。農業物聯網移動化監控系統是農業物聯網中的軟件部分,通過它可以實時、遠程監控農業生產環境和流通環節等,節約勞動力成本,提升農產品產量和品質。很多農業企業在尋求高效低成本地開發一個農業物聯網移動化監控系統的方法。

1 農業物聯網技術

1.1 農業物聯網技術架構

一個完整的農業物聯網系統在技術架構方面,可分為感知層、傳輸層和應用層三個層次,圖1展示了三個層的主要功能,以及層與層之間的邏輯關系。

感知層的核心功能是信息采集,傳輸層采用計算機網絡技術和通信技術,是進行信息交換和傳遞數據的通路。應用層包括數據存儲、數據分析、數據展示及任務執行等功能。農業物聯網的三個層次分別賦予了物聯網系統全面感知、可靠傳輸、有效優化及智能處理等特征。

1.2 農業物聯網移動化監控系統

從項目工程建設角度,農業物聯網系統可分為硬件和軟件兩大塊。硬件包括感知層的信息采集設備、傳輸層的網絡與相關設備、應用層的控制器和電機。軟件平臺包括云平臺、大數據系統、專家決策支撐系統和物聯網監控平臺等[3]。大數據系統、專家決策支撐系統由于開發成本高,中小型農業物聯網系統中一般租用公共平臺或直接使用人工決策機制。云平臺是一個必要部分,不同的云平臺功能差異較大,有的只是一個數據存儲和轉發平臺,有的在數據存儲外擁有強大數據處理能力。云平臺可以定制開發,也可以租用收費或免費公共云平臺。農業物聯網監控平臺用于實時數據展示,環境數值預警,遠程控制等。農業物聯網監控系統的表現形式可以是PC軟件、Web網站和移動應用等形式[4]。早期農業物聯網監控平臺只有PC軟件,用戶在農業生產環境邊的監控室里,通過軟件操控整個智能系統。后來發展為基于互聯網的Web應用,通過網絡遠程控制。隨著5G技術的應用,移動化監控應用成為標配,它在時間和空間上解放了農業生產。早期建設的農業智能化生產環境,在人力成本逐年提高的情況下,急需升級配置移動監控應用。一套高效率、低成本的農業物聯網移動化監控系統開發模式,可以幫助農業企業快速搭建一個農業移動化監控系統。

2 農業物聯網移動化監控系統開發關鍵技術

2.1 JSON數據格式

JSON 是存儲和交換文本信息的語法,它與平臺和語言無關,主要用于跨平臺的數據交換,與XML類似,但它比XML更小、更快,更易解析。在基于Android的移動應用開發中,JSON體積小、傳遞速度快的特性,具有更大的優勢,在農業物聯網移動化監控系統開發中被廣泛使用。移動監控系統與物聯網云平臺之間交換的數據大部分采用JSON格式。上傳云平臺時,需要把數據包裝成JSON格式,從云平臺取回JSON格式數后,需要從中解析出需要的數據。Android通過JSONObject類來生成和解析JSON格式數據,JSONObject類下有getString()、getJSONObject()和getJSONArray()三個方法用于處理不同數據類型。當數據嵌套多層時,需要從外到里一層層的解析。為提高開發效率和降低出錯的可能,建議使用開源插件,常用的有Gson、JackJson、FastJson等幾種。其中GSON是Google官方開發的Java類庫,它實現了用面向對象的方式處理JSON格式數據,它可以很方便地實現JSON字符串與Java對象之間的相互轉化。

2.2 網絡訪問與線程

農業物聯網移動管理系統與物聯網云平臺需要進行頻繁的數據交換,與其他多媒體類系統相比,農業物聯網移動管理系統的網絡訪問數據量相對較少。因此,大部分物聯網云平臺采用URL通信方式。在Android 6.0以后的版本中通過HttpURLConnection實現HTTP請求,網絡訪問過程可分為以下幾個環節:

1)生成URL類地址對象,具體語句為:URL url = new URL(url);

2)通過URL對象建立與服務器的連接:HttpURLConnection conn = (HttpURLConnection) url.openConnection();

3)設置HttpURLConnection的相關參數,例如請求方式、請求時限等;

4)從HttpURLConnection連接中取得數據輸入流InputStream,由輸入流讀入字符輸入流。輸入的數據如果有中文,還需要對中文進行編碼處理;

5)在線程中讀入數據無法直接顯示到界面中,需要使用Handler對象處理線程之間的消息處理。

由于網絡訪問的非即時響應特性,執行網絡訪問時需要開啟子線程。網絡訪問與線程處理混合在一起,讓實現難度加備。Android開發團隊于2013年推出了綜合的網絡通信框架Volley,它適用于“一次網絡通信中傳輸的數據量較少,但網絡通信業務比較頻繁的應用”,這一特點非常契合農業物聯網移動管理系統的網絡訪問。Volley最核心的兩個類分別是: JSON請求類:JsonObjectRequest和請求隊列類:RequestQueue。RequestQueue主要負責網絡請求的線程處理,所有網絡請求都需要加入到RequestQueue隊列中,才能被系統調度執行。JsonObjectRequest是一個Json格式的網絡請求類,通過網絡響應返回監聽Response.Listener和Response.ErrorListener來處理網絡通信結果。

RequestQueue myQue = Volley.newRequestQueue(context);

StringRequest stringRequest = new StringRequest(Request.Method.GET,url,

new Response.Listener() {

@Override

public void onResponse(String response) {

//網絡請求成功后,回調處理代碼在該方法中

}

}, new Response.ErrorListener() {

@Override

public void onErrorResponse(VolleyError error) {

//網絡請求失敗后,回調處理代碼在該方法中

}

});

stringRequest.setTag(tag);

myQue.add(stringRequest); //網絡訪問加入線程隊列中

2.3 數據庫技術

Android系統配備了SQLite數據庫,它占用系統資源少、功能全面,同時也保留了JDBC操作方法和SQL指令體系。SQLite提供了兩個數據庫操作類,分別是SQLiteDatabase和SQLiteOpenHelper。SQLiteOpenHelper用于數據庫的創建、打開和版本更新,但它是一個抽象類,不用直接使用,需要自己定義一個繼承于它的類,并實現主要方法。SQLiteDatabase是一個數據庫訪問類,是SQLite數據庫操作的基礎,這個類里面封裝了一系列數據庫操作的API,通過它可以進行數據庫相關操作,如添加、查詢、更新、刪除等[5]。SQLite類操作數據庫時,需要自己撰寫SQL語句,當數據表的字段較多時,編碼與后期維護的工作量將非常大。ORMLite數據庫框架采用“對象關系映射”方式管理數據庫,數據庫表與Java對象一一對應,通過使用Java類中的方法實現對數據表操作。Java類中的“屬性”對應用數據表中的“字段”,ORMLite通過給Java類中的“屬性”和“方法”添加Java注解的方式,讓Java類與數據表之間建立映射關系,實現操作Java類的屬性和方法就能直接改變數據表中的數據。下面這段代碼是ORMLite“對象關系映射”的應用實例,數據表名稱為:senseInfo,對應的類名為:SensenInfo。這個類里面的id屬性,對應數據表中名為id的字段,該字段為自增類型主鍵。

@DatabaseTable(tableName = "senseInfo") //建立表與類之間一對一的關系

public class SenseInfo {

//建立字段名與類屬性之間一對一的關系

@DatabaseField(generatedId = true,columnName = "id")

public int id;

//空的構造方法一定要有,否則數據庫會創建失敗

public SenseInfo(){}

}

2.4 數據的圖表展示

將農業物聯網系統采集到的數據以圖表形式呈現出來,可以幫助管理者更好地了解不同數據間的比例關系和變化趨勢,方便管理者做出合理的推斷和預測。Android原生API支持圖表種類多,但功能繁復,操作難度大。為了減少開發難度,推薦使用開源圖表框架,如MPAndroidChart、achartengine、GraphView等,每種框架都有各自的特色,根據應用需要選擇一種直接套用即可。MPAndroidChart因其功能強大和使用簡單成為主流圖表框架。它支持線狀圖、柱狀圖、散點圖、柱狀圖、氣泡圖、餅狀圖和蜘蛛網狀圖,同時支持圖表的縮放、拖動、選擇和動畫等運行功能。

MPAndroidChart中不同圖表的生成方式不盡相同,但總體上可以歸納為7個步:step1:實例化圖表對象-> step2:生成圖中所有點的坐標數據(Entry組成的List)-> step3:生成數據軸標簽(String類型組成的List,與上一步的List數量相等)-> step4:生成坐標點集生成一條線的數據集(DataSet)-> step5:由數據集生成圖表數據源對象(Data)-> step6:把數據源加載到圖表中-> step7:刷新圖表。

2.5 App Inventor的快速搭建模式

前面介紹了農業物聯網移動化監控系統開發中用到的數據庫、網絡、圖表等開發技術,但對于項目開發經驗不足的程序員,即使全部掌握了這些技術,要獨立開發一個完整的項目,難度還是很大。如果遇上項目開發時間緊、技術能力不足、團隊人員又少的情況,推薦使用可視化快速移動應用開發工具:App Inventor。App Inventor簡稱ai2,是谷歌公司開發的基于web的可視化Android系統應用開發工具,現轉由麻省理工學院(MIT)運維。ai2采用的是在線編碼+手機或模擬器測試的開發模式,本地計算機只需Java運行環境和瀏覽器,再配一個Android系統的手機用于項目測試。在線開發最核心的是服務器,ai2官方服務器在麻省理工,國內目前有兩三個漢化的、持續更新并穩定運行的服務器,華南理工大學楊道全開發管理的WxBit漢化版(服務器地址為:https://app.wxbit.com/)運行比較穩定。

ai2中UI通過拖拽和屬性設置方式實現組件的擺放和樣式設計,功能邏輯采用圖形化編程模式,有過樂高開發經驗的人對這種方式會非常的熟悉。ai2外在表現形式是“圖形化”“積木式”,但它本質上還是一個面向對象的編程語言,跳出積木編程思維,從面向對象的邏輯角度解構,ai2的項目結構如圖2所示。組件和行為是一個應用的核心,變量、方法是一種編程手段和方式。ai2中有常用的標簽、文本框、按鈕、動畫等可視化組件,還有傳感器、數據庫、網絡訪問等不可見的組件。事件和事件響應模塊幾乎涵蓋了所有程序邏輯相關功能。能滿足農業物聯網移動化監控系統開發的大部分需求,但在數據存儲和圖表展示方面還需要利用其他資源配套使用。

ai2提供的網絡微數據庫是一個開發者共享數據庫,采用“key:value”存儲方式,如果遇到key相同時,后存的value會覆蓋前面的value值。為了數據安全性,ai2為深入開發用戶也提供了自己建立數據庫的方法,官方數據庫平臺(http:// appinventorapi.com /create-a-web-database-python-2-7)上面有創建自己的網絡數據庫的詳細介紹,按照上面的說明操作就可以建立起屬于自己的部署在互聯網上的數據庫,而且與App Inventor的協議兼容,谷歌的云服務工具會分配給你一個網址,把網絡微數據庫中的網址改成這個網址,就可以訪問個人數據庫,并用它來創建基于網絡的移動應用建立屬于自己的互聯網上的數據庫。ai2網絡微數據采用標準的HTTP請求來向服務器發送數據,如果要向網絡微數據庫里“保存數據”時,發送的頭部參數為Accept:application/json,發送的數據為:["STORED","標簽","值"]。如果要從網絡微數據庫中取數據時,發送的數據為:["VALUE", "標簽"],根據這些特性,也可以自己編寫網絡數據庫存取服務器。

ai2在圖形化方面提供了最基礎的圖形繪制功能,從理論角度來說,通過這些線條、圖形的繪制功能也能夠畫出一張圖表來。但用這種模式繪制一張圖表,就類似于憑借個人力量蓋一座樓。要比較快捷的制作一張圖表,可以借助一些圖表專用工具,如Google Chart API和ECharts等。這兩個工具都用于生成基本網頁的圖表,在ai2中需要借助“網絡瀏覽”組件,通過瀏覽器組件展示靜態圖表。

3 結束語

農業物聯網移動監控系統因為移動化遠程控制的優勢,成為新建的農業物聯網系統的標配。同時,很多早期建設的農業物聯網系統,也在做移動化升級。如何高效、低成本的開發一個實用性強的移動監控應用,是很多農業企業最關心的問題。使用本文給出的核心開發技術,農業企業信息化從業人員也能開發出實用的農業物聯網移動監控系統,節約農業生產成本,從而助力鄉村振興。

參考文獻:

[1] 趙春江.發展智慧農業 建設數字鄉村[J].農機科技推廣,2020(6):6-9.

[2] 億歐智庫.2018智慧農業發展研究報告——新科技驅動農業變革[EB/OL].[2020-04-08].https://www.iyiou.com/research/20180508555.

[3] 徐曉雨,張旭,朱勇.基于物聯網技術的智慧農業監控系統設計[J].信息記錄材料,2018,19(5):100-102.

[4] 王英杰,鄭明輝.基于物聯網技術的智慧農業管理系統設計[J].福建農業科技,2019(6):56-59.

[5] 劉劍英.基于Android的智能小車控制系統軟件設計與開發[J].軟件工程,2020,23(10):46-48.

【通聯編輯:謝媛媛】

主站蜘蛛池模板: 在线观看欧美精品二区| 在线无码九区| 男人天堂伊人网| 色婷婷成人网| 伊人色综合久久天天| 嫩草国产在线| 欧美综合区自拍亚洲综合绿色| 欧美日韩第三页| 老司机精品99在线播放| jizz国产视频| 成人免费视频一区| 九九久久精品国产av片囯产区| 人与鲁专区| 中文字幕在线看视频一区二区三区| 国产欧美自拍视频| 91网址在线播放| 午夜毛片福利| 91系列在线观看| 无遮挡国产高潮视频免费观看| 国产在线观看一区二区三区| 国产高清不卡视频| 亚洲婷婷丁香| 亚洲精品无码AⅤ片青青在线观看| 欧美区在线播放| 免费毛片在线| 国产日韩欧美黄色片免费观看| 日韩av手机在线| 在线精品亚洲国产| 日韩人妻少妇一区二区| 国产一区二区福利| 精品国产Av电影无码久久久| 成人福利免费在线观看| 亚洲AV人人澡人人双人| 色播五月婷婷| 在线亚洲精品自拍| 国产探花在线视频| 久久精品亚洲专区| 另类欧美日韩| 国产伦精品一区二区三区视频优播 | 777国产精品永久免费观看| 国产91线观看| 日韩专区欧美| 四虎精品免费久久| 女人一级毛片| 人妻无码中文字幕一区二区三区| 亚洲男人在线| 精品少妇人妻无码久久| 伊人中文网| 国产乱子伦无码精品小说| 国产精品一区在线麻豆| 国产91丝袜在线观看| 免费看黄片一区二区三区| 亚洲午夜福利精品无码| 欧美一级色视频| 久久综合色88| 国产日韩欧美在线播放| 麻豆精品久久久久久久99蜜桃| 免费在线看黄网址| 一级一毛片a级毛片| 精品免费在线视频| 青草视频久久| 亚洲黄色片免费看| 国产网站一区二区三区| 中国国语毛片免费观看视频| 亚洲午夜福利在线| 国产精品大白天新婚身材| 青青草综合网| 亚洲综合经典在线一区二区| 日韩在线永久免费播放| 亚洲综合久久成人AV| 中国一级毛片免费观看| 日本尹人综合香蕉在线观看 | 亚洲日韩久久综合中文字幕| 亚洲精品无码高潮喷水A| 国产高颜值露脸在线观看| 国产第八页| 亚洲欧美日本国产综合在线| 午夜视频在线观看区二区| 免费国产在线精品一区| 久久精品66| 毛片一区二区在线看| 久久91精品牛牛|