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