羅桂蘭,張 梅,黃 偉,張麗娜
(大理大學(xué)數(shù)學(xué)與計(jì)算機(jī)學(xué)院,云南大理 671003)
隨著無(wú)線傳感器技術(shù)的快速發(fā)展和安卓系統(tǒng)的普遍使用,在物聯(lián)網(wǎng)、“互聯(lián)網(wǎng)+”和云計(jì)算不斷深入各個(gè)領(lǐng)域的今天,傳統(tǒng)的生物研究受到了巨大的沖擊,生物研究的技術(shù)和方式也發(fā)生了巨大的改變。
國(guó)外在昆蟲(chóng)監(jiān)測(cè)方面的現(xiàn)代化研究起步較早,2010年前就有人提出用于昆蟲(chóng)種群自動(dòng)監(jiān)測(cè)的電子陷阱,研究了兩個(gè)電子陷阱原型的設(shè)計(jì)和實(shí)現(xiàn),一個(gè)基于光敏電阻(LDR)傳感器,另一個(gè)基于紅外(IR)傳感器〔1〕。日本通過(guò)昆蟲(chóng)仿生學(xué)的研究已成功研制出依據(jù)氣味尋找目標(biāo)的機(jī)器人,美國(guó)國(guó)防部甚至訓(xùn)練蜜蜂來(lái)負(fù)責(zé)搜查地雷的工作〔2〕。近幾年來(lái),國(guó)外做了很多關(guān)于自然保護(hù)方面的昆蟲(chóng)研究。例如設(shè)計(jì)一個(gè)標(biāo)準(zhǔn)化的框架,以促進(jìn)昆蟲(chóng)生境監(jiān)測(cè)與物種恢復(fù)工作的整合,通過(guò)適應(yīng)性管理來(lái)明確地識(shí)別和跟蹤生境目標(biāo)和最終昆蟲(chóng)物種恢復(fù)的進(jìn)展情況,從而提高瀕危昆蟲(chóng)恢復(fù)工作的透明度和決策過(guò)程〔3〕;開(kāi)發(fā)一種基于MODIS(中分辨率成像光譜儀)衍生NDVI(歸一化植被指數(shù))的方法,用于近實(shí)時(shí)監(jiān)測(cè)瑞典北部亞高山白樺林中昆蟲(chóng)誘導(dǎo)的森林落葉,有助于及時(shí)進(jìn)行實(shí)地研究,并能夠更快地采取對(duì)策對(duì)樹(shù)木進(jìn)行保護(hù)〔4〕。
我國(guó)由于技術(shù)水平的限制,對(duì)昆蟲(chóng)生境的研究一直以人工方法為主,由專業(yè)研究人員定期到捕捉昆蟲(chóng)的樣點(diǎn)進(jìn)行現(xiàn)場(chǎng)采集昆蟲(chóng)生境數(shù)據(jù),將采集到的昆蟲(chóng)樣本和生境數(shù)據(jù)帶回實(shí)驗(yàn)室進(jìn)行研究分析。這種方法既耗費(fèi)人力,又存在很多弊端。人工采集昆蟲(chóng)生境數(shù)據(jù)在數(shù)據(jù)測(cè)量和記錄過(guò)程中往往引入了人為誤差,由于數(shù)據(jù)是定期采集,也很難反映出它的變化規(guī)律。而且能夠采集到的生境數(shù)據(jù)種類也比較少,使得利用所采集數(shù)據(jù)進(jìn)行的研究分析是不夠充分的〔5-6〕。近幾年來(lái),隨著遙感技術(shù)的不斷發(fā)展,將其應(yīng)用在生物生境監(jiān)測(cè)方面的研究也不斷增多〔7-8〕。其中,在昆蟲(chóng)方面的應(yīng)用主要涉及害蟲(chóng)防治。例如利用遙感技術(shù)獲取與蝗蟲(chóng)密切相關(guān)的各種生境因子,并結(jié)合GIS(地理信息系統(tǒng))技術(shù)研究蝗蟲(chóng)的生境因子對(duì)東亞飛蝗的產(chǎn)卵、孵化、成蟲(chóng)、遷飛等生育周期的影響機(jī)理,可實(shí)現(xiàn)對(duì)蝗蟲(chóng)監(jiān)測(cè)、預(yù)測(cè)預(yù)警〔9〕;通過(guò)衛(wèi)星遙感反演獲取稻飛虱的生境因子,有利于深入研究稻飛虱發(fā)生動(dòng)態(tài)以及暴發(fā)規(guī)律,以便作出可靠的預(yù)測(cè)〔10〕。
以上這些監(jiān)測(cè)系統(tǒng)的終端大多是固定的,用于監(jiān)測(cè)昆蟲(chóng)生境的移動(dòng)監(jiān)測(cè)終端的研究較少。濕地的地理特征給人工采集昆蟲(chóng)的生境數(shù)據(jù)帶來(lái)諸多不便,不利于生物多樣性的研究與保護(hù)〔11〕。與此同時(shí),4G移動(dòng)通信技術(shù)已經(jīng)普及,智能移動(dòng)終端更是鋪天蓋地,其中安卓系統(tǒng)占據(jù)了最大的市場(chǎng)份額,成為最主流的操作系統(tǒng)。隨著物聯(lián)網(wǎng)的發(fā)展,安卓系統(tǒng)的應(yīng)用不再停留在社交娛樂(lè)上,而是逐漸應(yīng)用在智能的生活和生產(chǎn)之中,但是在昆蟲(chóng)研究方面的應(yīng)用卻是少見(jiàn)〔12-13〕。本文提出的基于安卓系統(tǒng)的昆蟲(chóng)生境移動(dòng)監(jiān)測(cè)系統(tǒng),為洱海濕地昆蟲(chóng)種群研究提供了便利。洱海濕地昆蟲(chóng)生境數(shù)據(jù)的分析與研究對(duì)生物防治、物種培育、藥理研究以及洱海保護(hù)等都有重要意義,同時(shí)也將促進(jìn)洱海濕地生態(tài)學(xué)的健康發(fā)展。
1.1 采集節(jié)點(diǎn)硬件設(shè)計(jì)昆蟲(chóng)生境數(shù)據(jù)來(lái)自于安放在洱海月濕地、羅時(shí)江濕地和洱源東湖濕地的數(shù)據(jù)采集節(jié)點(diǎn),各個(gè)節(jié)點(diǎn)都搭載太陽(yáng)能供電系統(tǒng)。數(shù)據(jù)采集節(jié)點(diǎn)每隔1 min就會(huì)通過(guò)各類傳感器采集到一條昆蟲(chóng)生境數(shù)據(jù)并發(fā)送回來(lái),數(shù)據(jù)包括環(huán)境溫度、環(huán)境濕度、土壤溫度、土壤濕度、土壤pH值、光照強(qiáng)度、紫外輻射強(qiáng)度、紫外日累計(jì)值、瞬時(shí)風(fēng)速、2 min風(fēng)速、10 min風(fēng)速、風(fēng)向、降雨量等生境因子以及時(shí)間、經(jīng)度、緯度、電量等參數(shù)。圖1所示的就是一個(gè)數(shù)據(jù)采集節(jié)點(diǎn)。
圖1 數(shù)據(jù)采集節(jié)點(diǎn)
1.2 節(jié)點(diǎn)通訊方式在數(shù)據(jù)采集模塊中安裝了GPRS DTU設(shè)備,將監(jiān)測(cè)終端的IP地址配置到GPRS DTU設(shè)備上,并設(shè)置一個(gè)TCP協(xié)議公用通訊端口,端口號(hào)為5002。然后GPRS DTU設(shè)備就會(huì)通過(guò)安裝在它里面的SIM卡訪問(wèn)互聯(lián)網(wǎng),將數(shù)據(jù)采集模塊采集到的昆蟲(chóng)生境數(shù)據(jù)發(fā)送到對(duì)應(yīng)IP地址的監(jiān)測(cè)終端。在監(jiān)測(cè)終端處理原始數(shù)據(jù)并上傳至Bmob后端云數(shù)據(jù)庫(kù),安卓移動(dòng)監(jiān)測(cè)終端可以隨時(shí)隨地通過(guò)2G、3G、4G或者Wi-Fi上網(wǎng),從Bmob后端云上獲取昆蟲(chóng)生境數(shù)據(jù)并顯示出來(lái)。
2.1 軟件功能模塊設(shè)計(jì)軟件系統(tǒng)的總體設(shè)計(jì)目標(biāo)是可以隨時(shí)隨地地對(duì)洱海濕地昆蟲(chóng)的生境數(shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)測(cè)。在昆蟲(chóng)生境數(shù)據(jù)上傳至后端云數(shù)據(jù)庫(kù)后,應(yīng)用程序?qū)?huì)自動(dòng)獲取更新的數(shù)據(jù)并顯示出來(lái),達(dá)到實(shí)時(shí)移動(dòng)監(jiān)測(cè)昆蟲(chóng)生境的目的,同時(shí)讓昆蟲(chóng)生境數(shù)據(jù)的采集更加方便,對(duì)昆蟲(chóng)的研究更加高效。
軟件功能模塊主要包括數(shù)據(jù)獲取模塊和數(shù)據(jù)顯示模塊。其中,數(shù)據(jù)獲取模塊負(fù)責(zé)獲取Bmob后端云數(shù)據(jù)庫(kù)上更新的昆蟲(chóng)生境數(shù)據(jù),數(shù)據(jù)顯示模塊負(fù)責(zé)將獲取到的數(shù)據(jù)顯示在昆蟲(chóng)生境移動(dòng)監(jiān)測(cè)軟件的用戶界面上。軟件系統(tǒng)的功能模塊設(shè)計(jì)見(jiàn)圖2。
圖2 系統(tǒng)功能模塊
2.2 后端云數(shù)據(jù)庫(kù)的建立在云數(shù)據(jù)庫(kù)里創(chuàng)建表_User和表Data分別用來(lái)存放用戶數(shù)據(jù)和昆蟲(chóng)生境數(shù)據(jù)。
2.2.1 表_User 表_User用于存放昆蟲(chóng)生境移動(dòng)監(jiān)測(cè)軟件的用戶數(shù)據(jù),包括用戶名username、密碼password和手機(jī)號(hào)碼mobilePhoneNumber等。
2.2.2 表Data 表Data用于存放昆蟲(chóng)生境數(shù)據(jù),包括環(huán)境溫度、環(huán)境濕度、土壤溫度、土壤濕度、土壤pH值、光照強(qiáng)度、紫外輻射強(qiáng)度、紫外日累計(jì)值、瞬時(shí)風(fēng)速、2 min風(fēng)速、10 min風(fēng)速、風(fēng)向、降雨量等生境因子以及時(shí)間、經(jīng)度、緯度、電量等參數(shù)。
2.3 軟件設(shè)計(jì)流程在完成Bmob后端云服務(wù)器的搭建與配置基礎(chǔ)上,設(shè)計(jì)并開(kāi)發(fā)由線性界面布局、數(shù)據(jù)獲取模塊和數(shù)據(jù)顯示模塊組成的應(yīng)用程序,實(shí)現(xiàn)服務(wù)器連接、數(shù)據(jù)庫(kù)監(jiān)聽(tīng)、數(shù)據(jù)獲取、數(shù)據(jù)顯示等一系列流程。昆蟲(chóng)生境移動(dòng)監(jiān)測(cè)軟件數(shù)據(jù)獲取模塊會(huì)實(shí)時(shí)監(jiān)聽(tīng)Bmob后端云數(shù)據(jù)庫(kù)中的昆蟲(chóng)生境數(shù)據(jù)的更新?tīng)顟B(tài),如果發(fā)生了數(shù)據(jù)的更新,就將新上傳的那條數(shù)據(jù)獲取下來(lái)。數(shù)據(jù)獲取模塊獲取到數(shù)據(jù)后就把數(shù)據(jù)交給數(shù)據(jù)顯示模塊,數(shù)據(jù)顯示模塊拿到數(shù)據(jù)后使用SimpleAdapter適配器將昆蟲(chóng)生境數(shù)據(jù)顯示在ListView視圖上。軟件設(shè)計(jì)流程見(jiàn)圖3。
圖3 軟件流程圖
2.4 數(shù)據(jù)獲取功能實(shí)現(xiàn)
2.4.1 創(chuàng)建BmobRealTimeData對(duì)象 BmobRealTime-Data是Bmob SDK提供的用于實(shí)現(xiàn)安卓端與后端云數(shù)據(jù)實(shí)時(shí)同步的對(duì)象,昆蟲(chóng)生境數(shù)據(jù)移動(dòng)監(jiān)測(cè)軟件在InsectActivity中創(chuàng)建了一個(gè)該類型的對(duì)象data。
代碼如下:BmobRealTimeDatadata=newBmobRealTimeData()
2.4.2 連接Bmob后端云服務(wù)器 使用start方法連接Bmob后端云,并監(jiān)聽(tīng)服務(wù)器是否連接成功和后端云數(shù)據(jù)庫(kù)更新的回調(diào)。代碼如下:
2.4.3 監(jiān)聽(tīng)數(shù)據(jù) 成功連接Bmob后端云服務(wù)器后,就使用Bmob SDK提供的方法監(jiān)聽(tīng)后端云數(shù)據(jù)庫(kù)的表和行的更新或者刪除,昆蟲(chóng)生境數(shù)據(jù)移動(dòng)監(jiān)測(cè)軟件采用監(jiān)聽(tīng)表更新的方法。代碼如下:
主要測(cè)試應(yīng)用程序用戶注冊(cè)登錄功能、數(shù)據(jù)獲取功能、數(shù)據(jù)顯示功能以及數(shù)據(jù)的實(shí)時(shí)分析功能。
3.1 用戶注冊(cè)登錄打開(kāi)昆蟲(chóng)生境數(shù)據(jù)監(jiān)測(cè)軟件的賬號(hào)注冊(cè)頁(yè)面,輸入測(cè)試用戶名為admin,密碼為admin,并再次輸入密碼確認(rèn)注冊(cè)。此時(shí)軟件提示“注冊(cè)成功—用戶名:admin”,并進(jìn)入昆蟲(chóng)生境監(jiān)測(cè)首頁(yè)。打開(kāi)昆蟲(chóng)生境數(shù)據(jù)監(jiān)測(cè)軟件的用戶登錄頁(yè)面,使用之前注冊(cè)的賬號(hào)admin登錄。此時(shí)軟件提示“登錄成功—用戶名:admin”,并進(jìn)入昆蟲(chóng)生境監(jiān)測(cè)首頁(yè),此后進(jìn)入系統(tǒng)主界面。
3.2 數(shù)據(jù)獲取為了測(cè)試?yán)ハx(chóng)生境移動(dòng)監(jiān)測(cè)軟件的數(shù)據(jù)獲取功能模塊能否正常運(yùn)行,本節(jié)通過(guò)上傳一條昆蟲(chóng)生境數(shù)據(jù)至Bmob后端云數(shù)據(jù)庫(kù),檢查軟件的數(shù)據(jù)獲取功能模塊能否連接到Bmob后端云,連接云服務(wù)器成功后能否獲取到數(shù)據(jù)以及獲取到的數(shù)據(jù)是否與上傳的昆蟲(chóng)生境數(shù)據(jù)一致,具體步驟如下。
3.2.1 云服務(wù)器連接測(cè)試 為了測(cè)試?yán)ハx(chóng)生境移動(dòng)監(jiān)測(cè)軟件在運(yùn)行時(shí)能否正常連接到Bmob后端云,在軟件的數(shù)據(jù)獲取功能模塊中的onConnectCompleted方法里添加一行Log.d信息打印代碼,代碼如下:
該代碼將data.isConnected()的值輸出到Android Studio的調(diào)試信息框中,通過(guò)查看data.isConnected()的值是true還是false來(lái)判斷服務(wù)器連接是否成功,運(yùn)行效果見(jiàn)圖4。輸出的信息表明昆蟲(chóng)生境移動(dòng)監(jiān)測(cè)軟件已經(jīng)成功連接到了Bmob后端云。
圖4 軟件成功連接Bmob后端云
3.2.2 數(shù)據(jù)獲取測(cè)試 該部分是測(cè)試?yán)ハx(chóng)生境移動(dòng)監(jiān)測(cè)軟件的數(shù)據(jù)獲取功能模塊在連接Bmob后端云服務(wù)器后能否正常監(jiān)聽(tīng)到數(shù)據(jù)庫(kù)的更新,并將更新的數(shù)據(jù)獲取下來(lái),步驟如下:
首先,在昆蟲(chóng)生境移動(dòng)監(jiān)測(cè)軟件的數(shù)據(jù)獲取功能模塊中的onDataChange方法里添加一條Toast提示語(yǔ)句,具體代碼如下:
如果數(shù)據(jù)獲取功能模塊成功監(jiān)聽(tīng)并獲取到Bmob后端云數(shù)據(jù)庫(kù)的數(shù)據(jù)更新,則該代碼會(huì)將獲取的數(shù)據(jù)通過(guò)Toast消息提示的方式顯示在昆蟲(chóng)生境移動(dòng)監(jiān)測(cè)軟件上。其次,使用Postman插件向Bmob后端云數(shù)據(jù)庫(kù)上傳一條昆蟲(chóng)生境數(shù)據(jù)后,進(jìn)入Bmob后端云控制臺(tái)查看數(shù)據(jù)更新?tīng)顟B(tài),數(shù)據(jù)已經(jīng)成功上傳到Bmob后端云數(shù)據(jù)庫(kù)。需要注意的是,在數(shù)據(jù)上傳期間軟件要在運(yùn)行狀態(tài)中。最后,在數(shù)據(jù)上傳成功后,軟件立刻獲取到數(shù)據(jù)。
3.3 數(shù)據(jù)顯示為測(cè)試?yán)ハx(chóng)生境移動(dòng)監(jiān)測(cè)軟件的數(shù)據(jù)顯示功能模塊能否正常運(yùn)行,本節(jié)通過(guò)自定義的兩個(gè)String類型的數(shù)組title〔〕和text〔〕分別模擬生境因子名稱以及對(duì)應(yīng)的參數(shù)值,內(nèi)容如下:
將這兩個(gè)數(shù)組放在軟件數(shù)據(jù)顯示功能模塊中的組織數(shù)據(jù)步驟里,運(yùn)行效果見(jiàn)圖5。結(jié)果表明數(shù)據(jù)顯示功能模塊能夠?qū)⒔邮艿降臄?shù)據(jù)正常地顯示在布局中。
圖5 測(cè)試數(shù)據(jù)顯示成功
3.4 數(shù)據(jù)實(shí)時(shí)監(jiān)測(cè)為實(shí)現(xiàn)對(duì)昆蟲(chóng)生境數(shù)據(jù)的實(shí)時(shí)監(jiān)測(cè),昆蟲(chóng)生境移動(dòng)監(jiān)測(cè)軟件獲取并顯示數(shù)據(jù)的速度必須滿足實(shí)時(shí)性要求。通過(guò)多次測(cè)試,從開(kāi)始上傳昆蟲(chóng)生境數(shù)據(jù),一直到軟件將數(shù)據(jù)顯示出來(lái)的平均時(shí)間約為0.8 s。效果見(jiàn)圖6。
圖6 數(shù)據(jù)實(shí)時(shí)列表顯示
為滿足動(dòng)態(tài)生境數(shù)據(jù)實(shí)時(shí)監(jiān)測(cè),系統(tǒng)根據(jù)云數(shù)據(jù)庫(kù)樣本計(jì)算和統(tǒng)計(jì)分析,列出了當(dāng)天每個(gè)濕地監(jiān)測(cè)點(diǎn)的整點(diǎn)環(huán)境溫度。見(jiàn)圖7。
圖7 環(huán)境溫度整點(diǎn)實(shí)時(shí)變化曲線
在通信技術(shù)發(fā)展日新月異的今天,移動(dòng)監(jiān)測(cè)終端已經(jīng)逐漸廣泛地應(yīng)用在家居生活、交通控制、消防控制、農(nóng)業(yè)生產(chǎn)和工業(yè)控制等領(lǐng)域之中,其功能愈發(fā)的健全和成熟,并且還在趨于更加多元化的發(fā)展。針對(duì)移動(dòng)通信技術(shù)和安卓智能移動(dòng)終端設(shè)備的普及,本文設(shè)計(jì)了基于物聯(lián)網(wǎng)、安卓平臺(tái)和后端云的濕地昆蟲(chóng)生境移動(dòng)監(jiān)測(cè)系統(tǒng),應(yīng)用程序通過(guò)監(jiān)聽(tīng)后端云數(shù)據(jù)庫(kù)上昆蟲(chóng)生境數(shù)據(jù)的更新?tīng)顟B(tài),獲取最新上傳的數(shù)據(jù)并顯示,從而達(dá)到監(jiān)測(cè)昆蟲(chóng)生境數(shù)據(jù)的目的,為昆蟲(chóng)的研究提供信息化手段和數(shù)據(jù)實(shí)時(shí)分析方法。