包曉敏 楊迪煥
摘要:為實(shí)現(xiàn)農(nóng)業(yè)害蟲(chóng)測(cè)報(bào)系統(tǒng)移動(dòng)端測(cè)報(bào)工作,更便捷地獲取農(nóng)田害蟲(chóng)情況,基于Android移動(dòng)平臺(tái)害蟲(chóng)測(cè)報(bào)APP,將樹(shù)莓派終端作為數(shù)據(jù)采集端,以云平臺(tái)作為數(shù)據(jù)存儲(chǔ)和信息交互橋梁,完成害蟲(chóng)圖像與環(huán)境值數(shù)據(jù)采集,并將計(jì)數(shù)結(jié)果和害蟲(chóng)圖像一并展示在移動(dòng)端上,供用戶(hù)查看。實(shí)驗(yàn)表明,該移動(dòng)端可實(shí)時(shí)控制樹(shù)莓派數(shù)據(jù)采集并展示結(jié)果。基于Android移動(dòng)平臺(tái)的害蟲(chóng)測(cè)報(bào)APP投入到實(shí)際測(cè)報(bào)工作中后,運(yùn)行穩(wěn)定,數(shù)據(jù)精準(zhǔn),可實(shí)現(xiàn)各項(xiàng)功能。
關(guān)鍵詞:移動(dòng)端;手機(jī)APP;遠(yuǎn)程控制;害蟲(chóng)測(cè)報(bào)
DOI: 10. 11907/rjdk.191996
開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
中圖分類(lèi)號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1672-7800(2020)004-0139-04
Mobile Terminal Design of Pest Forecasting System
BAO Xiao-min . YANG Di-huan
(College of Infornzation , Zh.ejiang Sci- Tech Univer.sity , Hangzhou 3100 18.China )Abstract: In order to realise monitoring and f'orecasting of agricultural pests in the mobile terminal of the system so as to obtain f'arm-land pests more conveniently, tliis article is based on the Android mobile platform ' s pest monitoring and reporting App, using a Rasp-berry Pi terminal as a data acquisition terminal. and takes a cloud platform as a bridge for data storage and information interaction,,-hich are displayed on the mobile terminal f'or users to view. The results show that the mobile terminal can control raspberry pie to col-lect data and display results in real time. The App for pest prediction based on Android mobile platform runs steadih and accuratelv af-ter it is put into the actual forecasting work . and can run various f'unctions.Key Words : terminal; phone APP; remote control; monitoring and forecasting of agriculture pests
O 引言
我國(guó)耕地面積廣大且農(nóng)業(yè)人口眾多,蟲(chóng)害對(duì)我國(guó)糧食生產(chǎn)構(gòu)成直接威脅,影響糧食產(chǎn)量…。防止蟲(chóng)害是保證糧食產(chǎn)量的前提[2-2]。傳統(tǒng)測(cè)報(bào)方式采用人工下田、人計(jì)數(shù)的方式[4],人力成本高且不夠及時(shí)、便捷。因此,及時(shí)獲悉田間害蟲(chóng)種類(lèi)及數(shù)量不僅是制定防治害蟲(chóng)方案的基礎(chǔ),更可為后期預(yù)測(cè)預(yù)報(bào)害蟲(chóng)爆發(fā)期提供原始數(shù)據(jù)。目前,我國(guó)農(nóng)業(yè)智能化發(fā)展迅速,已有較為突出的研究成果,如使用傳感器采集各項(xiàng)影響農(nóng)業(yè)生產(chǎn)的重要因素?cái)?shù)據(jù)[5-8]等應(yīng)用。近年來(lái),智能手機(jī)等智能可移動(dòng)終端的普及應(yīng)用使多個(gè)行業(yè)步入遠(yuǎn)程遙控的發(fā)展階段[9]?;贏ndroid平臺(tái)的手機(jī)APP在生活中的應(yīng)用越來(lái)越廣泛,但在農(nóng)業(yè)中的應(yīng)用還不多見(jiàn)[10]
為改進(jìn)現(xiàn)有蟲(chóng)害測(cè)報(bào)方法,針對(duì)其蟲(chóng)害報(bào)警不及時(shí)的問(wèn)題,設(shè)計(jì)一套可實(shí)時(shí)獲取害蟲(chóng)圖像和害蟲(chóng)數(shù)量的移動(dòng)端系統(tǒng)。該設(shè)計(jì)針對(duì)環(huán)境值、地理位置、害蟲(chóng)圖像與害蟲(chóng)數(shù)量進(jìn)行監(jiān)測(cè)控制,主要實(shí)現(xiàn)3個(gè)功能:①開(kāi)發(fā)可用于An-droid智能移動(dòng)設(shè)備的害蟲(chóng)測(cè)報(bào)APP,包括數(shù)據(jù)庫(kù)、服務(wù)器及人機(jī)交互界面設(shè)計(jì)與開(kāi)發(fā)等過(guò)程,實(shí)現(xiàn)界面簡(jiǎn)潔友好、操作簡(jiǎn)單的害蟲(chóng)測(cè)報(bào)系統(tǒng);②選擇監(jiān)控區(qū)域的設(shè)備,遠(yuǎn)程操控樹(shù)莓派的拍攝任務(wù),獲取最新害蟲(chóng)圖像、害蟲(chóng)數(shù)量、環(huán)境數(shù)據(jù)及地理位置等信息;③根據(jù)年份和月份查詢(xún)歷史害蟲(chóng)圖像及對(duì)應(yīng)的歷史數(shù)據(jù)。
1 系統(tǒng)架構(gòu)與功能設(shè)計(jì)
1.1 系統(tǒng)架構(gòu)
測(cè)報(bào)系統(tǒng)組成由數(shù)據(jù)采集端、測(cè)報(bào)云平臺(tái)和Android移動(dòng)客戶(hù)端組成,如圖l所示。數(shù)據(jù)采集端主要包括:環(huán)境數(shù)據(jù)采集、害蟲(chóng)圖片采集、上傳數(shù)據(jù)和圖片;測(cè)報(bào)云平臺(tái)包括:云數(shù)據(jù)庫(kù)存儲(chǔ)環(huán)境數(shù)據(jù)、云對(duì)象存儲(chǔ)服務(wù)器存儲(chǔ)害蟲(chóng)圖片、云服務(wù)器圖像處理;手機(jī)客戶(hù)端APP為本文重點(diǎn),包括:APP客戶(hù)端、服務(wù)器端。系統(tǒng)架構(gòu)如圖1所示。
1.1.1 APP客戶(hù)端
首先,在Windows系統(tǒng)下搭建JDKl.7開(kāi)發(fā)環(huán)境并配置環(huán)境變量。使用And-oid SDK集成開(kāi)發(fā)T具Eclipse進(jìn)行源代碼編寫(xiě)、編譯等T作。代碼實(shí)現(xiàn)主要考慮遠(yuǎn)程聯(lián)網(wǎng)獲取數(shù)據(jù)的操作及數(shù)據(jù)顯示效果。為了更好地將數(shù)據(jù)顯示在移動(dòng)端,進(jìn)行界面優(yōu)化設(shè)計(jì)。同時(shí)為提高軟件運(yùn)行速度、改善用戶(hù)體驗(yàn),采用碎片技術(shù)進(jìn)行代碼編寫(xiě)[11-12]。從功能角度考慮主要是提供命名發(fā)送、最新圖像與數(shù)據(jù)獲取展示、歷史圖片與數(shù)據(jù)獲取展示。本文使用的真機(jī)為Meizu4,系統(tǒng)版本Android6.0。
1.1.2服務(wù)器端
Tomcat服務(wù)器具有技術(shù)先進(jìn)、性能穩(wěn)定且擴(kuò)展性好的優(yōu)點(diǎn)[13-14],因此本文使用Servlet搭配Tomcat的方式構(gòu)建服務(wù)器端。同時(shí),HTTP作為應(yīng)用最廣的網(wǎng)絡(luò)協(xié)議,是響應(yīng)客戶(hù)端請(qǐng)求、實(shí)現(xiàn)服務(wù)器端與客戶(hù)端通信的基礎(chǔ)[17]。
1.2功能設(shè)計(jì)
害蟲(chóng)測(cè)報(bào)APP主要監(jiān)測(cè)的環(huán)境參數(shù)包括:溫度、濕度、光照強(qiáng)度、下雨情況及害蟲(chóng)圖像。首先,使用涂有昆蟲(chóng)性誘劑的害蟲(chóng)粘板捕獲害蟲(chóng),工作人員通過(guò)“拍攝”按鈕,可實(shí)時(shí)獲取田間害蟲(chóng)照片及環(huán)境數(shù)據(jù)。執(zhí)行終端樹(shù)莓派,將拍攝的照片及環(huán)境值上傳并保存至云服務(wù)器,通過(guò)“最新圖像”按鈕顯示最新圖像,并顯示當(dāng)前設(shè)備、地理位置、圖像名字、溫濕度、光照強(qiáng)度、害蟲(chóng)數(shù)量等信息。其中圖像名字采用拍攝時(shí)間命名,精確到秒。APP可直接區(qū)分當(dāng)前圖片拍攝時(shí)間,如“2019-06-20-10-30-Ol.jpg”,云服務(wù)器在接收?qǐng)D片后,根據(jù)設(shè)備編號(hào)將圖片名字單獨(dú)存入對(duì)應(yīng)編號(hào)的數(shù)據(jù)庫(kù)表中。為避免在同一個(gè)界面顯示過(guò)多歷史數(shù)據(jù),設(shè)計(jì)按月為單位展示歷史數(shù)據(jù),即T作人員通過(guò)年份和月份查看害蟲(chóng)圖像及相關(guān)數(shù)據(jù)信息,這樣可有效提升用戶(hù)體驗(yàn)。
2 移動(dòng)端實(shí)現(xiàn)
2.1登陸界面實(shí)現(xiàn)
登陸界面主要實(shí)現(xiàn)工作人員登陸系統(tǒng)時(shí)的校驗(yàn)功能,工作人員在輸入正確的用戶(hù)名和密碼后將跳轉(zhuǎn)至APP主界面。登陸界面如圖2所示。
安卓開(kāi)發(fā)中,界面展示效果主要通過(guò)編寫(xiě)AndroidXML文件實(shí)現(xiàn)。登陸界面采用四大布局中的線性布局。主要使用TextView控件提供用戶(hù)輸入項(xiàng),使用CheckBox控件勾選“記住用戶(hù)名和密碼”,使用Button控件提交用戶(hù)名和密碼。
Java文件實(shí)現(xiàn)過(guò)程為:給Button按鈕設(shè)置點(diǎn)擊事件,用戶(hù)點(diǎn)擊“登陸”后,開(kāi)啟一個(gè)線程訪問(wèn)遠(yuǎn)程服務(wù)器。在該線程中,APP使用HTTP協(xié)議以POST的方式將從界面中獲取到的用戶(hù)名和密碼發(fā)送給服務(wù)器端[19-21],并且沒(méi)置請(qǐng)求超時(shí)時(shí)間為5s,在5s內(nèi)接收到服務(wù)器響應(yīng),即說(shuō)明移動(dòng)端請(qǐng)求成功,此時(shí)服務(wù)器返回200狀態(tài)碼給客戶(hù)端,則客戶(hù)端接收服務(wù)器返回的數(shù)據(jù)流,實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)并給出“登陸成功”的提示。本次請(qǐng)求中的URL為:http://lll .231. 105 .41/CH ai/And roidLoginServlet。另外,如果用戶(hù)在點(diǎn)擊“登陸”按鈕前勾選“記住用戶(hù)名和密碼”且后臺(tái)校驗(yàn)成功,則在/data/data/cn.yangdh.chai T程包下創(chuàng)建一個(gè)Userlnfo.txt文本記錄文件,并把當(dāng)前輸入的用戶(hù)名和密碼保存進(jìn)該文件,等到下次再次使用APP時(shí),就無(wú)需再輸入用戶(hù)名和密碼。
2.2主界面實(shí)現(xiàn)
主界面主要包括以下功能:首先,可以根據(jù)地理位置的不同,選擇地區(qū)目標(biāo)設(shè)備。地理位置與設(shè)備的選擇均采用下拉菜單的形式呈現(xiàn)。由于目前該測(cè)報(bào)系統(tǒng)僅部署在浙江省杭州市和寧波市兩個(gè)地區(qū),所以在目標(biāo)設(shè)備的選擇中,城市對(duì)應(yīng)的下拉菜單中只有杭州市和寧波市兩個(gè)選項(xiàng)。在選定城市后,隨后選擇城市對(duì)應(yīng)的區(qū),再選擇待查看的設(shè)備編號(hào)。采用三級(jí)聯(lián)動(dòng)的方式獲取對(duì)應(yīng)地區(qū)、對(duì)應(yīng)設(shè)備的害蟲(chóng)測(cè)報(bào)數(shù)據(jù)。主界面如圖3所示。
其次,在選擇對(duì)應(yīng)設(shè)備后,如選擇:杭州市、江干區(qū)、設(shè)備l,即可點(diǎn)擊“拍照”按鈕,實(shí)現(xiàn)遠(yuǎn)程控制樹(shù)莓派拍攝當(dāng)前粘板上害蟲(chóng)照片。由于樹(shù)莓派在接收拍照指令并執(zhí)行拍照動(dòng)作上傳、生成對(duì)應(yīng)的XML文件等一系列過(guò)程約需花費(fèi)20-30s,所以在點(diǎn)擊“拍攝”按鈕后,需等待片刻,然后再點(diǎn)擊“最新照片”按鈕,即可查詢(xún)剛分拍攝的照片。
用戶(hù)在完成上述拍照及照片、數(shù)據(jù)查看后進(jìn)行歷史數(shù)據(jù)查詢(xún),依然采用下拉列表的形式,選擇目標(biāo)年月后,即可點(diǎn)擊“歷史照片”按鈕查詢(xún)歷史數(shù)據(jù)。該設(shè)計(jì)不僅可降低下滑篇幅、提升用戶(hù)體驗(yàn),而且可對(duì)該月害蟲(chóng)情況進(jìn)行周期性了解。
主界面設(shè)計(jì)采用線性布局,方向?yàn)榇怪迸挪肌3鞘?、區(qū)、設(shè)備、年份、月份,5個(gè)下拉列表的實(shí)現(xiàn)采用Android白帶的Spinner控件,并將城市、區(qū)、設(shè)備對(duì)應(yīng)的3個(gè)下拉控件單獨(dú)放置在一個(gè)LinearLavout中,年份、月份對(duì)應(yīng)的兩個(gè)下拉控件單獨(dú)放置在一個(gè)LinearLavout中,設(shè)置權(quán)重為1。使用Button按鈕提交“拍照”、“最新照片”、“歷史照片”3個(gè)操作。其中下拉效果如圖4所示。
Java文件實(shí)現(xiàn)過(guò)程為:首先,對(duì)Spinner控件進(jìn)行初始操作,由于城市、區(qū)、設(shè)備、年份及月份的下拉列表中填充的數(shù)據(jù)均為字符串,所以使用ArrayAdapter適配器進(jìn)行數(shù)據(jù)填充,并把城市、區(qū)、設(shè)備、年份及月份數(shù)據(jù)源一一封裝成對(duì)應(yīng)的List集合。其中,下拉樣式采用Android白帶的android.R.lavout.simple_spinner_item樣式。此外,給每個(gè)下拉菜單設(shè)置選中事件,并將選中的列表記錄到日志文件中,使每一次操作均有記錄。在選定目標(biāo)設(shè)備后,即可點(diǎn)擊“拍攝”按鈕,根據(jù)選中的設(shè)備,APP使用HTTP協(xié)議以GET的方式將拍照請(qǐng)求發(fā)送給服務(wù)器中對(duì)應(yīng)的處理類(lèi),同時(shí)設(shè)置請(qǐng)求的超時(shí)時(shí)間為Ss,若在Ss內(nèi)接收到服務(wù)器響應(yīng),即說(shuō)明移動(dòng)端請(qǐng)求成功,此時(shí)服務(wù)器返回200狀態(tài)碼給客戶(hù)端,客戶(hù)端接收服務(wù)器返回的數(shù)據(jù)流提示“拍照成功”,如圖5所示。
同理,在點(diǎn)擊“最新照片”、“歷史照片”按鈕后,同樣向服務(wù)器端發(fā)起請(qǐng)求,結(jié)合Intent意圖對(duì)象實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn),并利用意圖對(duì)象把用戶(hù)選擇的城市、區(qū)、設(shè)備編號(hào)數(shù)據(jù)流轉(zhuǎn)到下一個(gè)界面,供下一個(gè)界面使用。
2.3最新圖片界面實(shí)現(xiàn)
最新圖片界面主要用于呈現(xiàn)對(duì)應(yīng)地區(qū)樹(shù)莓派拍攝的最新照片和數(shù)據(jù)。害蟲(chóng)具有趨黃性,在田間設(shè)置黃色粘板誘殺害蟲(chóng)是廣為使用的方法[15-17]。將粘板圖片直觀呈現(xiàn)在手機(jī)終端上,并將經(jīng)后臺(tái)處理后的害蟲(chóng)計(jì)數(shù)結(jié)果、溫度、濕度、光照、下雨情況及拍攝設(shè)備所處的地理位置等信息一并呈現(xiàn),界面顯示一目了然。最新測(cè)報(bào)數(shù)據(jù)如圖6所示。
該界面整體布局采用線性布局,并設(shè)置方向?yàn)榇怪迸挪肌T诮缑孀钌隙嗽O(shè)置顯示當(dāng)前設(shè)備所處的地理位置、設(shè)備編號(hào)與圖片拍攝時(shí)間,即在Android XML布局文件中設(shè)置3個(gè)TextView控件,設(shè)置其寬和高均為包裹內(nèi)容,字體大小為22sp。另外,使用SmartImageView控件展示最新圖像的顯示,圖片下方顯示當(dāng)前圖中害蟲(chóng)數(shù)量。使用4個(gè)TextView結(jié)合drawahleLeft屬性實(shí)現(xiàn)環(huán)境數(shù)據(jù)的圖文顯示,將對(duì)應(yīng)圖標(biāo)放置在文字左邊,方便用戶(hù)瀏覽信息。
Java文件實(shí)現(xiàn)過(guò)程為:首先拿到Intent意圖對(duì)象從上頁(yè)流轉(zhuǎn)過(guò)來(lái)的數(shù)據(jù),分別是設(shè)備編號(hào)和地理位置;然后根據(jù)設(shè)備編號(hào)、地理位置開(kāi)啟線程訪問(wèn)遠(yuǎn)程URL資源。同理,在該線程中APP使用HTTP協(xié)議,以GET方式請(qǐng)求服務(wù)器端,并且設(shè)置請(qǐng)求的超時(shí)時(shí)間為Ss,在Ss內(nèi)接收到服務(wù)器響應(yīng),即說(shuō)明移動(dòng)端請(qǐng)求成功,此時(shí)服務(wù)器返回200狀態(tài)碼給客戶(hù)端,則客戶(hù)端接收服務(wù)器返回的數(shù)據(jù)流。
設(shè)計(jì)采用XML方式進(jìn)行數(shù)據(jù)傳輸。APP端在獲得數(shù)據(jù)庫(kù)返回的數(shù)據(jù)后,進(jìn)行有效數(shù)據(jù)解析。解析過(guò)程為:編寫(xiě)一個(gè)Photo實(shí)體類(lèi)代表一張圖片涵蓋的所有數(shù)據(jù),它具有6個(gè)靜態(tài)屬性,分別為id、linage、temp、humi、lux和raln;編寫(xiě)一個(gè)解析XML的T具類(lèi),使用XmIPuIIParser解析器,其原理是基于事件進(jìn)行解析,通過(guò)從開(kāi)始節(jié)點(diǎn)到結(jié)束節(jié)點(diǎn)一行一行實(shí)現(xiàn)解析目的;解析XML中的標(biāo)簽,當(dāng)遇到pho-tos標(biāo)簽時(shí),創(chuàng)建一個(gè)List集合,遇到photo標(biāo)簽時(shí)創(chuàng)建一個(gè)Photo實(shí)體類(lèi)對(duì)象,遇到lrnage標(biāo)簽時(shí)把圖片地址取出來(lái),遇到temp時(shí)把溫度值取出來(lái),同理,將所有值都取完成后,將所有數(shù)據(jù)封裝進(jìn)List集合中;最后,遍歷整個(gè)集合,將有效數(shù)據(jù)取出,用于更新UI控件中的值,包括拍攝時(shí)間與4個(gè)環(huán)境數(shù)據(jù)。
同樣在XML文件中設(shè)置一個(gè)節(jié)點(diǎn)photo,代表當(dāng)前圖片所有信息。在它內(nèi)部有6個(gè)子標(biāo)簽:id、lrnage、temp、hu-mi、lux、raln,它們分別代表圖片編號(hào)、圖片地址、溫度、濕度、光照強(qiáng)度、下雨情況的信息。其中l(wèi)nlage標(biāo)簽中封裝的是圖片URL數(shù)據(jù),如http://111.231.105.41/example s/photo/2019-05-20-10-OO-Ol.jpg,該數(shù)據(jù)主要在SmartImageView控件上呈現(xiàn)圖片時(shí)使用。
此外,移動(dòng)端APP使用獨(dú)立設(shè)計(jì)的SmartImageView框架替代Android標(biāo)準(zhǔn)的ImageView,以此獲取遠(yuǎn)程服務(wù)器圖像。該框架支持URL地址加載圖片和圖片緩存。
2.4歷史圖片界面實(shí)現(xiàn)
歷史圖片界面主要呈現(xiàn)歷史圖像與數(shù)據(jù)。采用滑動(dòng)列表的形式進(jìn)行呈現(xiàn)。首先顯示圖片名字;與此同時(shí),給每一個(gè)列表項(xiàng)添加點(diǎn)擊事件監(jiān)聽(tīng),將遠(yuǎn)程圖片與數(shù)據(jù)一并加載并顯示出來(lái),即先根據(jù)月份展示該月所有圖片名字,再根據(jù)圖片名字展示對(duì)應(yīng)的圖片內(nèi)容與數(shù)據(jù)。其中歷史圖片名稱(chēng)列表界面如圖7所示。
該界面主要通過(guò)ListView控件實(shí)現(xiàn)。此外,在界面底部的“主頁(yè)”按鈕可實(shí)現(xiàn)從該頁(yè)到主頁(yè)的跳轉(zhuǎn)。
Java文件實(shí)現(xiàn)過(guò)程為:首先獲取Intent意圖對(duì)象從上頁(yè)流轉(zhuǎn)過(guò)來(lái)的數(shù)據(jù),分別是設(shè)備編號(hào)、地理位置、年份和月份;接著初始化ListView控件,即聯(lián)網(wǎng)獲取遠(yuǎn)程服務(wù)器端的數(shù)據(jù),拿到數(shù)據(jù)流后進(jìn)行XML解析,封裝進(jìn)List集合;然后遍歷集合,將用戶(hù)選擇的年份、月份與集合中所有Photo對(duì)象進(jìn)行比較,取出對(duì)應(yīng)月份的所有圖片數(shù)據(jù);最后使用runOnUiThread方法更新UI控件,實(shí)現(xiàn)數(shù)據(jù)展示。編寫(xiě)一個(gè)內(nèi)部類(lèi)實(shí)現(xiàn)BaseAdapter類(lèi),重寫(xiě)getCount()方法和getView()方法。其中g(shù)etCount()方法中返回的整型值為完成封裝的List集合的元素個(gè)數(shù)。getView()方法中返回ListView待顯示的每個(gè)項(xiàng)。
2.5服務(wù)器端與手機(jī)APP間通信實(shí)現(xiàn)
服務(wù)器端主要完成兩個(gè)任務(wù):服務(wù)器端環(huán)境搭建、接收手機(jī)APP遠(yuǎn)程訪問(wèn)并作出處理。
服務(wù)器端環(huán)境搭建內(nèi)容為:云服務(wù)器采用騰訊云公司推出的云服務(wù)器ECS,搭載CentOS 7.2 64位操作系統(tǒng),結(jié)合Tomcat軟件服務(wù)器及Java Socket網(wǎng)絡(luò)編程,實(shí)現(xiàn)對(duì)數(shù)據(jù)采集終端上傳數(shù)據(jù)的接收與保存。此外,數(shù)據(jù)庫(kù)管理系統(tǒng)采用關(guān)系型數(shù)據(jù)庫(kù)MvSQL。在Windows平臺(tái)上使用Navi-cat數(shù)據(jù)庫(kù)客戶(hù)端遠(yuǎn)程設(shè)計(jì)該數(shù)據(jù)庫(kù)。主要包含兩種類(lèi)型的表,一個(gè)為樹(shù)莓派終端上傳數(shù)據(jù)后存儲(chǔ)使用,其中表的字段包括:編號(hào)、圖像名字、光照強(qiáng)度、溫度、濕度和下雨情況;另一張表為害蟲(chóng)數(shù)量的存儲(chǔ)使用,其中表的字段包括:編號(hào)、圖像名字、害蟲(chóng)數(shù)量。利用OpenCV圖像庫(kù)對(duì)圖像進(jìn)行處理,完成害蟲(chóng)計(jì)數(shù)。
接收手機(jī)APP遠(yuǎn)程訪問(wèn)并作出處理,具體指在Eclipse集成開(kāi)發(fā)T具中編寫(xiě)Java代碼。編寫(xiě)Java類(lèi),使其繼承HttpSe-vlet類(lèi),使用HttpServletRequest對(duì)象接收手機(jī)App發(fā)過(guò)來(lái)的請(qǐng)求數(shù)據(jù)。此外,在每次接收樹(shù)莓派上傳的圖像后,自動(dòng)編輯生成對(duì)應(yīng)的XML文件內(nèi)容,并作為XML文件輸出到Tomcat服務(wù)器的特定目錄下,該文件將作為“最新圖像”與“歷史圖像”的訪問(wèn)數(shù)據(jù)源,供遠(yuǎn)程APP訪問(wèn)。將整個(gè)丁程打包成war包并導(dǎo)出,使用FileZilla文件傳輸工具將其上傳至Tomcat的wehapps目錄下,并使用Linux客戶(hù)端T具XShell 6開(kāi)啟Tomcat容器,Tomcat自動(dòng)將war包解壓并運(yùn)行。此時(shí),即可對(duì)服務(wù)器進(jìn)行訪問(wèn)。另外,從功能角度出發(fā),設(shè)計(jì)固定時(shí)間點(diǎn)發(fā)送拍攝命令給樹(shù)莓派,具體設(shè)置的時(shí)間點(diǎn)為:上午8點(diǎn)、8點(diǎn)30、9點(diǎn)、9點(diǎn)30、10點(diǎn)、10點(diǎn)30與11點(diǎn),下午2點(diǎn)、2點(diǎn)30、3點(diǎn)、3點(diǎn)30、4點(diǎn)與4點(diǎn)30。工作人員可在這些時(shí)間點(diǎn)獲取最新的害蟲(chóng)圖片及數(shù)據(jù),無(wú)需再進(jìn)行拍攝。
3 結(jié)語(yǔ)
本文害蟲(chóng)測(cè)報(bào)系統(tǒng)移動(dòng)端設(shè)計(jì)將Androici技術(shù)、JAVA技術(shù)、移動(dòng)互聯(lián)網(wǎng)技術(shù)與傳統(tǒng)農(nóng)業(yè)相結(jié)合,使計(jì)數(shù)結(jié)果與原始圖像一并呈現(xiàn)在移動(dòng)端平臺(tái)上,實(shí)現(xiàn)了害蟲(chóng)圖像采集、上傳、計(jì)數(shù)、展示、測(cè)報(bào)等功能。通過(guò)傳統(tǒng)微信公眾號(hào),只能獲取害蟲(chóng)計(jì)數(shù)數(shù)據(jù),無(wú)法提供直觀的原始圖像。相比之下,移動(dòng)端害蟲(chóng)測(cè)報(bào)更加便捷、高效、直觀。本文系統(tǒng)功能主要有:移動(dòng)端APP遠(yuǎn)程控制拍照、移動(dòng)端APP實(shí)時(shí)獲取害蟲(chóng)圖像和害蟲(chóng)數(shù)量、移動(dòng)端APP遠(yuǎn)程獲取歷史圖像和歷史數(shù)據(jù)。實(shí)驗(yàn)證明,本文系統(tǒng)可以穩(wěn)定、有效地T作,實(shí)現(xiàn)各項(xiàng)功能。未來(lái)將進(jìn)一步完善移動(dòng)端用戶(hù)界面、提升用戶(hù)體驗(yàn)度。