本發(fā)明屬于物聯(lián)網(wǎng)領(lǐng)域,尤其涉及一種基于物聯(lián)網(wǎng)的數(shù)據(jù)顯示系統(tǒng)及方法。
背景技術(shù):
隨著計算機、電子通訊、控制、信息等技術(shù)的發(fā)展,運用計算機物聯(lián)網(wǎng)技術(shù)可為生態(tài)農(nóng)、牧業(yè)建設(shè)和科學管理提供全方位、完善的監(jiān)測技術(shù)手段。建立生態(tài)物聯(lián)網(wǎng)可對農(nóng)業(yè)、草原牧區(qū)土壤和氣象環(huán)境參數(shù)進行實時、高效、快速的檢測,對生態(tài)產(chǎn)量和質(zhì)量進行預報,以及對重大農(nóng)、牧業(yè)生態(tài)環(huán)境污染事故做出預警,是有效扭轉(zhuǎn)我國目前生態(tài)農(nóng)牧發(fā)展現(xiàn)狀的技術(shù)方法之一,這將產(chǎn)生良好的社會和經(jīng)濟效益,推動社會發(fā)展。
無線傳感器網(wǎng)絡(luò)的產(chǎn)品備受消費者青睞,然而由于采集數(shù)據(jù)較多,用戶實時性要求較高,PC機笨重不便攜的缺點日益凸顯。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例的目的在于提供一種基于物聯(lián)網(wǎng)的數(shù)據(jù)顯示系統(tǒng)及方法,旨在解決現(xiàn)有物聯(lián)網(wǎng)無線傳感器網(wǎng)絡(luò)采用PC機,笨重便于攜帶和操作的問題。
本發(fā)明是這樣實現(xiàn)的,一種基于物聯(lián)網(wǎng)的數(shù)據(jù)顯示系統(tǒng),所述基于物聯(lián)網(wǎng)的數(shù)據(jù)顯示系統(tǒng)包括Android模塊、Zigbee傳感器網(wǎng)絡(luò)模塊、后臺系統(tǒng)、服務(wù)器;
所述服務(wù)器與所述后臺系統(tǒng)通過無線網(wǎng)絡(luò)連接,所述后臺系統(tǒng)與所述Zigbee傳感器網(wǎng)絡(luò)模塊通過無線網(wǎng)絡(luò)連接,所述Android模塊與所述服務(wù)器通過無線網(wǎng)絡(luò)連接;
所述Android模塊由底層到頂層分別為Linux內(nèi)核層、系統(tǒng)運行層、應(yīng)用框架層和應(yīng)用層;
所述Zigbee傳感器網(wǎng)絡(luò)模塊包括傳感器、數(shù)據(jù)采集器、路由器、協(xié)調(diào)器、Zigbee傳感器終端;
所述傳感器與所述數(shù)據(jù)采集器電性連接,所述數(shù)據(jù)采集器與所述路由器通過無線網(wǎng)絡(luò)連接,所述路由器與所述協(xié)調(diào)器通過無線網(wǎng)絡(luò)連接,所述Zigbee傳感器終端與所述協(xié)調(diào)器通過無線網(wǎng)絡(luò)連接;
所述傳感器包括TI CC2530芯片及與該TI CC2530芯片連接的傳感器接口、電源接口、天線接口;
在Linux內(nèi)核層中設(shè)置有相機驅(qū)動模塊、USB驅(qū)動模塊,在Linux內(nèi)核層的上一層是系統(tǒng)運行層,該系統(tǒng)運行層由內(nèi)庫層和安卓運行時模塊組成;
所述內(nèi)庫層包括2D圖庫引擎模塊、3D圖庫引擎模塊、SQLite模塊,C語言核心庫模塊;
所述安卓運行時模塊包括DVM模塊和Java語言核心庫模塊;
所述應(yīng)用框架層,包括視圖系統(tǒng)、通知管理器;
應(yīng)用層,包括桌面應(yīng)用模塊、手機聯(lián)系人應(yīng)用模塊、電話應(yīng)用模塊;
后臺系統(tǒng)的信息處理方法包括:
消息機制,對于Android中聯(lián)網(wǎng)請求異步消息,分為三步:主線程顯示提示視圖;分線程進行聯(lián)網(wǎng)請求,并得到響應(yīng)數(shù)據(jù);在主線程中顯示數(shù)據(jù)。在Android開發(fā)過程中與消息處理相關(guān)的API主要有Message和Handler;
當分線程聯(lián)網(wǎng)獲得了服務(wù)器返回的數(shù)據(jù),需在主線程里執(zhí)行,分線程發(fā)一個消息給主線程,然后在主線程中進行界面更新相關(guān)操作,Handler的作用定義為在線程間分發(fā)消息,Handler是Message的處理器,處理消息的發(fā)送和移除工作。Message通過其自己的靜態(tài)方法Message.obtain()創(chuàng)建一個對象,然后由obj或者argl對象對不同類型的消息進行封裝,最后由what對象對消息標識,Handler通過Handler.sendMessage或Handler.sendMessage發(fā)送消息,在主線程中,通過調(diào)用handleMessage來處理消息;
Json數(shù)據(jù),Json分為兩種格式Json數(shù)組和Json對象。Json數(shù)組的結(jié)構(gòu)為[value1,value2,value3……],而Json對象的結(jié)構(gòu)為[keyl:value1,key2:value2,key3:value3……];其中key的值是字符串,而value的數(shù)據(jù)類型數(shù)值或字符串、null、Json對象或Json數(shù)組。在服務(wù)器,將Java對象轉(zhuǎn)換為Json格式的字符串來返回給客戶端;在客戶端,通常反之進行操作;使用Gson框架。在導入Gson架包之后,然后創(chuàng)建Gson對象后通過調(diào)用String toJson方法將傳入的對象轉(zhuǎn)換為對應(yīng)格式的Json字符串;同樣在服務(wù)器,通過調(diào)用T fromJson解析Json字符串,得到對象;
服務(wù)器的信息處理方法包括:
(1)從數(shù)據(jù)源獲取最新的環(huán)境參數(shù)
當服務(wù)器獲得了客戶端發(fā)送的最新查詢請求后,需返回給客戶端該傳感器最新存儲到數(shù)據(jù)庫中的數(shù)據(jù),首先通過select語句獲得該節(jié)點的最新查詢時間。進而通過該最新查詢時間鎖定該查詢時間中獲取的環(huán)境參數(shù);
(2)DAO層
DAO層是新建一個訪問數(shù)據(jù)的類,包含了對數(shù)據(jù)庫的CRUD操作,把底層的數(shù)據(jù)訪問邏輯和上層的邏輯剝離開,使得DAO層實現(xiàn)數(shù)據(jù)訪問部分的功能;
所述基于物聯(lián)網(wǎng)的數(shù)據(jù)顯示系統(tǒng)的數(shù)據(jù)顯示方法包括:
Android模塊發(fā)出采集數(shù)據(jù)的命令,然后將命令由協(xié)調(diào)器節(jié)點通過無線網(wǎng)絡(luò)傳達給傳感器節(jié)點,在傳感器接收到采集命令后,遵照采集頻率進行數(shù)據(jù)的采集工作,采集到參數(shù)后,終端節(jié)點將采集到的數(shù)據(jù)連同參數(shù)獲取時間、區(qū)標識、節(jié)點標識參數(shù)值一同傳輸?shù)胶笈_系統(tǒng)并發(fā)送給服務(wù)器,服務(wù)器將收集到的數(shù)據(jù)處理并存儲,Android模塊發(fā)出讀取數(shù)據(jù)的命令給服務(wù)器,服務(wù)器將存儲的數(shù)據(jù)發(fā)送給Android模塊。
進一步,所述服務(wù)器設(shè)置有接收信號模塊,所述接收信號模塊的接收信號s(t)廣義二階循環(huán)累積量按如下公式進行:
接收信號s(t)的特征參數(shù)M2的理論值具體計算公式為:
經(jīng)過計算可知,BPSK信號和MSK信號的均為1,QPSK、8PSK、16QAM和64QAM信號的均為0,由此可以用最小均方誤差分類器將BPSK、MSK信號與QPSK、8PSK、16QAM、64QAM信號分開;對于BPSK信號而言,在廣義循環(huán)累積量幅度譜上僅在載頻位置存在一個明顯譜峰,而MSK信號在兩個頻率處各有一個明顯譜峰,由此可通過特征參數(shù)M2和檢測廣義循環(huán)累積量幅度譜的譜峰個數(shù)將BPSK信號與MSK信號識別出來;
檢測廣義循環(huán)累積量幅度譜的譜峰個數(shù)的具體方法如下:
首先搜索廣義循環(huán)累積量幅度譜的最大值Max及其位置對應(yīng)的循環(huán)頻率α0,將其小鄰域[α0-δ0,α0+δ0]內(nèi)置零,其中δ0為一個正數(shù),若|α0-fc|/fc<σ0,其中δ0為一個接近0的正數(shù),fc為信號的載波頻率,則判斷此信號類型為BPSK信號,否則繼續(xù)搜索次大值Max1及其位置對應(yīng)的循環(huán)頻率α1;若|Max-Max1|/Max<σ0,并且|(α0+α1)/2-fc|/fc<σ0,則判斷此信號類型為MSK信號。
進一步,所述路由器設(shè)置有接收準則模塊,所述接收準則模塊的信號處理方法包括:獲取x1和x2的接收干信比,即干擾信號與期望信號的功率比ki(i=1,2),信噪比以及干擾與期望信號的空間相關(guān)度cos2θ,并計算xi的接收準則
其中,i=1,2,為信噪比,對于i=1,對于i=2,f2=H2P2,
進一步,所述Zigbee傳感器網(wǎng)絡(luò)模塊設(shè)置有定位節(jié)點坐標計算模塊,所述定位節(jié)點坐標接收模塊的計算方法包括:
第一步,選定差分修正點,確定定位交點坐標和復數(shù)定位交點,計算定位交點間距離;
從中選擇距離值最小的錨節(jié)點A0為差分修正點,再從剩余的距離值中取出3個最小的距離值,這3個為距離值分別和對應(yīng)的錨節(jié)點坐標分別為A1(x1,y1)、A2(x2,y2)和A3(x3,y3),分別以錨節(jié)點Ai(xi,yi)為圓心,為半徑作三個定位圓i,其中i=1,2,3,三個定位圓的相交情況共有6種,兩個圓之間存在兩個交點,這兩個交點為兩個相等的實數(shù)交點,或兩個不相等的實數(shù)交點,或兩個復數(shù)交點;兩個定位圓的兩個交點中,選擇與第三定位圓圓心坐標的距離較小的那個交點作為定位交點,以參與待定位節(jié)點的定位;由3個定位圓確定三個定位交點及復數(shù)定位交點的個數(shù)m,由定位圓2和定位圓3確定的定位交點坐標為由定位圓1和定位圓3確定的定位交點的坐標為由定位圓1和定位圓2確定的定位交點的坐標為定位交點與與與的距離分別為d12、d23、d13:
第二步,設(shè)置閾值T,個體差異系數(shù)修正系數(shù)w,參數(shù)l(l>0),設(shè)置T=0.5、w=1500以及l(fā)=0.001,三個定位交點之間的距離d12<T、d23<T、d13<T時,執(zhí)行第四步;
第三步,根據(jù)如下自適應(yīng)距離修正公式修正得到修正距離為d1、d2、d3:
其中,di表示待定位節(jié)點與錨節(jié)點Ai之間的修正距離,d0i表示差分修正點A0與錨節(jié)點Ai之間的實際距離,表示差分修正點A0與錨節(jié)點Ai之間的測量距離,w表示個體差異系數(shù)修正系數(shù),li表示方向修正因子,exp(×)表示指數(shù)函數(shù);
根據(jù)修正后的距離d1、d2、d3,重新求解修正后的三個定位交點間的距離d12、d23、d13,返回第二步;
第四步,根據(jù)如下公式,計算出待定位節(jié)點的定位坐標O(x0,y0):
其中,a1、a2、a3分別表示的權(quán)重,b1、b2、b3分別表示的權(quán)重,
本發(fā)明利用Android開發(fā)技術(shù),將無線傳感器網(wǎng)路系統(tǒng)中獲取的環(huán)境參數(shù)信息,實時的顯示到用戶移動設(shè)備上,該應(yīng)用將會推動無線傳感器對農(nóng)作物生長環(huán)境進行技術(shù)檢測的發(fā)展,使用者可以在移動的情況下隨時隨地獲取遠距離參數(shù)。進而根據(jù)參數(shù),實時的調(diào)整種田和維護的策略,提高糧食產(chǎn)量,還可以應(yīng)用到草原牧區(qū)和林田等環(huán)境條件下,APP人機交互性良好,在準確率和時延性方面均能夠滿足客戶的需求。
附圖說明
圖1是本發(fā)明實施例提供的基于物聯(lián)網(wǎng)的數(shù)據(jù)顯示系統(tǒng)及方法的結(jié)構(gòu)示意圖;
圖2是本發(fā)明實施例提供的Zigbee傳感器網(wǎng)絡(luò)模塊的結(jié)構(gòu)示意圖;
圖中:1、Android模塊;2、Zigbee傳感器網(wǎng)絡(luò)模塊;2-1、傳感器;2-2、數(shù)據(jù)采集器;2-3、路由器;2-4、協(xié)調(diào)器;2-5、Zigbee傳感器終端;3、后臺系統(tǒng);4、服務(wù)器。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合實施例,對本本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本本發(fā)明,并不用于限定本發(fā)明。
下面結(jié)合附圖對本發(fā)明的應(yīng)用原理作詳細的描述。
請參閱圖1-圖2,本發(fā)明實施例的基于物聯(lián)網(wǎng)的數(shù)據(jù)顯示系統(tǒng)包括Android模塊1、Zigbee傳感器網(wǎng)絡(luò)模塊2、后臺系統(tǒng)3、服務(wù)器4。
所述服務(wù)器4與所述后臺系統(tǒng)3通過無線網(wǎng)絡(luò)連接,所述后臺系統(tǒng)3與所述Zigbee傳感器網(wǎng)絡(luò)模塊2通過無線網(wǎng)絡(luò)連接,所述Android模塊1與所述服務(wù)器4通過無線網(wǎng)絡(luò)連接。
所述Android模塊1由底層到頂層分別為Linux內(nèi)核層、系統(tǒng)運行層、應(yīng)用框架層和應(yīng)用層。
進一步,所述Zigbee傳感器網(wǎng)絡(luò)模塊2包括傳感器2-1、數(shù)據(jù)采集器2-2、路由器2-3、協(xié)調(diào)器2-4、Zigbee傳感器終端2-5。
所述傳感器2-1與所述數(shù)據(jù)采集器2-2電性連接,所述數(shù)據(jù)采集器2-2與所述路由器2-3通過無線網(wǎng)絡(luò)連接,所述路由器2-3與所述協(xié)調(diào)器2-4通過無線網(wǎng)絡(luò)連接,所述Zigbee傳感器終端2-5與所述協(xié)調(diào)器2-4通過無線網(wǎng)絡(luò)連接。
進一步,在Linux內(nèi)核層中設(shè)置有相機驅(qū)動模塊、USB驅(qū)動模塊,在Linux內(nèi)核層的上一層是系統(tǒng)運行層,該系統(tǒng)運行層由內(nèi)庫層和安卓運行時模塊組成;
所述內(nèi)庫層包括2D圖庫引擎模塊、3D圖庫引擎模塊、SQLite模塊,C語言核心庫模塊。
所述安卓運行時模塊包括DVM模塊和Java語言核心庫模塊。
所述應(yīng)用框架層,包括視圖系統(tǒng)、通知管理器。
應(yīng)用層,包括桌面應(yīng)用模塊、手機聯(lián)系人應(yīng)用模塊、電話應(yīng)用模塊。
進一步,基于物聯(lián)網(wǎng)的數(shù)據(jù)顯示方法包括:
Android模塊發(fā)出采集數(shù)據(jù)的命令,然后將命令由協(xié)調(diào)器節(jié)點通過無線網(wǎng)絡(luò)傳達給傳感器節(jié)點,在傳感器接收到采集命令后,遵照采集頻率進行數(shù)據(jù)的采集工作,采集到參數(shù)后,終端節(jié)點將采集到的數(shù)據(jù)連同參數(shù)獲取時間、區(qū)標識、節(jié)點標識參數(shù)值一同傳輸?shù)胶笈_系統(tǒng)并發(fā)送給服務(wù)器,服務(wù)器將收集到的數(shù)據(jù)處理并存儲,Android模塊發(fā)出讀取數(shù)據(jù)的命令給服務(wù)器,服務(wù)器將存儲的數(shù)據(jù)發(fā)送給Android模塊。
在本實施例的APP開發(fā)中,使用Gson來解析Json數(shù)據(jù),Gson是Google公司提供的一個用來在Java對象和Json數(shù)據(jù)之間進行映射的Java類庫。使用Gson,可以十分簡潔的將一串Json數(shù)據(jù)轉(zhuǎn)換為一個Java對象,或?qū)⒁粋€Java對象轉(zhuǎn)換為相應(yīng)的Json數(shù)據(jù),這相比Android原生API大大提高了效率。
采集內(nèi)蒙古自治區(qū)鄂爾多斯市五家堯村試驗田的草莓生長參數(shù)信息包括:二氧化碳含量、空氣溫度、土壤濕度、土壤溫度、光照強度、空氣濕度;
其中區(qū)編號一般表示農(nóng)田中的哪塊區(qū)域,終端節(jié)點編號則表示該區(qū)域哪個傳感器采集到的數(shù)據(jù)。
后臺結(jié)構(gòu)設(shè)計:
(1)消息機制
對于Android中聯(lián)網(wǎng)請求異步消息,大概可以分為三步:1、主線程顯示提示視圖;2、分線程進行聯(lián)網(wǎng)請求,并得到響應(yīng)數(shù)據(jù);3、在主線程中顯示數(shù)據(jù)。在Android開發(fā)過程中與消息處理相關(guān)的API主要有Message和Handler。
當分線程聯(lián)網(wǎng)獲得了服務(wù)器返回的數(shù)據(jù),需在主線程里執(zhí)行。分線程發(fā)一個消息給主線程,這個消息攜帶數(shù)據(jù),然后在主線程中進行界面更新等相關(guān)操作。Handler的作用定義為在線程間分發(fā)消息。也就是說Handler是Message的處理器,處理消息的發(fā)送和移除工作。Message通過其自己的靜態(tài)方法Message.obtain()創(chuàng)建一個對象。然后由obj或者argl對象對不同類型的消息進行封裝。最后由what對象對消息標識。Handler通過Handler.sendMessage(Message msg)或Handler.sendMessage(Message msg,Lang time)來發(fā)送消息,這兩種方法所不同的是發(fā)送的消息是否需要延時。在主線程中,通過調(diào)用handleMessage(Message msg)來處理消息。
(2)Json數(shù)據(jù)
Json分為兩種格式Json數(shù)組和Json對象。Json數(shù)組的結(jié)構(gòu)為[value1,value2,value3……],而Json對象的結(jié)構(gòu)為[key1:value1,key2:value2,key3:value3……]。
其中key的值必須是字符串,而value的數(shù)據(jù)類型可以是數(shù)值、字符串、null甚至還可以是Json對象或Json數(shù)組。在服務(wù)器,需要將Java對象轉(zhuǎn)換為Json格式的字符串來返回給客戶端;在客戶端,通常反之進行操作。
對于Json數(shù)據(jù)的解析可以用Android原生的API但相對來說比較繁瑣。而使用Gson框架就會使項目比較簡潔,在本次開發(fā)中使用的是Gson框架。在導入Gson架包之后,然后創(chuàng)建Gson對象后通過調(diào)用String toJson(Object src)方法就可以將傳入的對象轉(zhuǎn)換為對應(yīng)格式的Json字符串;同樣在服務(wù)器,通過調(diào)用T fromJson(String Json,Type typeofT)也可以解析Json字符串,得到對象。
服務(wù)器結(jié)構(gòu)設(shè)計:
(1)從數(shù)據(jù)源獲取最新的環(huán)境參數(shù)
當服務(wù)器獲得了客戶端發(fā)送的最新查詢請求(包括區(qū)編號以及節(jié)點編號)后,需返回給客戶端該傳感器最新存儲到數(shù)據(jù)庫中的數(shù)據(jù)。首先通過select語句獲得該節(jié)點的最新查詢時間。進而通過該最新查詢時間鎖定該查詢時間中獲取的環(huán)境參數(shù)。
(2)DAO層
DAO(Data Access Object)層是新建一個訪問數(shù)據(jù)的類,包含了對數(shù)據(jù)庫的CRUD(Creat,Read,Update,Delete)操作,而不包括任何業(yè)務(wù)相關(guān)的信息。這樣就能把底層的數(shù)據(jù)訪問邏輯和上層的邏輯剝離開。使得DAO層能夠更加專注于實現(xiàn)數(shù)據(jù)訪問部分的功能。這樣做的優(yōu)勢就是實現(xiàn)了功能的模塊化,更有利于代碼的維護的和升級。
進一步,所述服務(wù)器設(shè)置有接收信號模塊,所述接收信號模塊的接收信號s(t)廣義二階循環(huán)累積量按如下公式進行:
接收信號s(t)的特征參數(shù)M2的理論值具體計算公式為:
經(jīng)過計算可知,BPSK信號和MSK信號的均為1,QPSK、8PSK、16QAM和64QAM信號的均為0,由此可以用最小均方誤差分類器將BPSK、MSK信號與QPSK、8PSK、16QAM、64QAM信號分開;對于BPSK信號而言,在廣義循環(huán)累積量幅度譜上僅在載頻位置存在一個明顯譜峰,而MSK信號在兩個頻率處各有一個明顯譜峰,由此可通過特征參數(shù)M2和檢測廣義循環(huán)累積量幅度譜的譜峰個數(shù)將BPSK信號與MSK信號識別出來;
檢測廣義循環(huán)累積量幅度譜的譜峰個數(shù)的具體方法如下:
首先搜索廣義循環(huán)累積量幅度譜的最大值Max及其位置對應(yīng)的循環(huán)頻率α0,將其小鄰域[α0-δ0,α0+δ0]內(nèi)置零,其中δ0為一個正數(shù),若|α0-fc|/fc<σ0,其中δ0為一個接近0的正數(shù),fc為信號的載波頻率,則判斷此信號類型為BPSK信號,否則繼續(xù)搜索次大值Max1及其位置對應(yīng)的循環(huán)頻率α1;若|Max-Max1|/Max<σ0,并且|(α0+α1)/2-fc|/fc<σ0,則判斷此信號類型為MSK信號。
進一步,所述路由器設(shè)置有接收準則模塊,所述接收準則模塊的信號處理方法包括:獲取x1和x2的接收干信比,即干擾信號與期望信號的功率比ki(i=1,2),信噪比以及干擾與期望信號的空間相關(guān)度cos2θ,并計算xi的接收準則
其中,i=1,2,為信噪比,對于i=1,E1=H1p1,對于i=2,f2=H2P2,
進一步,所述Zigbee傳感器網(wǎng)絡(luò)模塊設(shè)置有定位節(jié)點坐標計算模塊,所述定位節(jié)點坐標接收模塊的計算方法包括:
第一步,選定差分修正點,確定定位交點坐標和復數(shù)定位交點,計算定位交點間距離;
從中選擇距離值最小的錨節(jié)點A0為差分修正點,再從剩余的距離值中取出3個最小的距離值,這3個為距離值分別和對應(yīng)的錨節(jié)點坐標分別為A1(x1,y1)、A2(x2,y2)和A3(x3,y3),分別以錨節(jié)點Ai(xi,yi)為圓心,為半徑作三個定位圓i,其中i=1,2,3,三個定位圓的相交情況共有6種,兩個圓之間存在兩個交點,這兩個交點為兩個相等的實數(shù)交點,或兩個不相等的實數(shù)交點,或兩個復數(shù)交點;兩個定位圓的兩個交點中,選擇與第三定位圓圓心坐標的距離較小的那個交點作為定位交點,以參與待定位節(jié)點的定位;由3個定位圓確定三個定位交點及復數(shù)定位交點的個數(shù)m,由定位圓2和定位圓3確定的定位交點坐標為由定位圓1和定位圓3確定的定位交點的坐標為由定位圓1和定位圓2確定的定位交點的坐標為定位交點與與與的距離分別為d12、d23、d13:
第二步,設(shè)置閾值T,個體差異系數(shù)修正系數(shù)w,參數(shù)l(l>0),設(shè)置T=0.5、w=1500以及l(fā)=0.001,三個定位交點之間的距離d12<T、d23<T、d13<T時,執(zhí)行第四步;
第三步,根據(jù)如下自適應(yīng)距離修正公式修正得到修正距離為d1、d2、d3:
其中,di表示待定位節(jié)點與錨節(jié)點Ai之間的修正距離,d0i表示差分修正點A0與錨節(jié)點Ai之間的實際距離,表示差分修正點A0與錨節(jié)點Ai之間的測量距離,w表示個體差異系數(shù)修正系數(shù),li表示方向修正因子,exp(×)表示指數(shù)函數(shù);
根據(jù)修正后的距離d1、d2、d3,重新求解修正后的三個定位交點間的距離d12、d23、d13,返回第二步;
第四步,根據(jù)如下公式,計算出待定位節(jié)點的定位坐標O(x0,y0):
其中,a1、a2、a3分別表示的權(quán)重,b1、b2、b3分別表示的權(quán)重,
Android模塊APP的主要功能是根據(jù)用戶輸入的區(qū)域編號、終端結(jié)點編號,顯示該終端節(jié)點采集到的最新該種參數(shù)數(shù)據(jù)。測試用例如表1所示。(CO2含量數(shù)值單位:CO2ppm=10000*(CO2/(16383×2)×3.3-0.4)/1.6;土壤濕度數(shù)值單位:100*SW/(16383×2)×3.3;土壤溫度數(shù)值單位:LT*1.0(自定義補償光系數(shù));光照強度數(shù)值單位:TEM*0.01-39.6;空氣濕度數(shù)值單位:HUM*0.0367-2.0468-1.5955E-6*HUM*HUM;空氣溫度數(shù)值單位:TEM*0.01-39.6采集時間格式為年月日時分秒(YYYYMMDDhhmmss));
表1
由于該APP主要目的是為了向使用者準確及時的反映農(nóng)田的生長環(huán)境參數(shù)。所以應(yīng)該考察該APP的傳送數(shù)據(jù)的準確性、及時性、遠距離傳輸?shù)忍匦?。又因為該APP是基于互聯(lián)網(wǎng)傳輸數(shù)據(jù),故測試主要考察APP的的準確性和及時性。
本次測試是在實驗室的環(huán)境情況下完成,同時采集六種環(huán)境信息,采集間隔為10s。然后分別請求不同的環(huán)境參數(shù),其中請求CO2參數(shù)8次,土壤濕度參數(shù)8次,光照強度參數(shù)8次,土壤溫度參數(shù)8次,空氣溫度參數(shù)8次,空氣濕度參數(shù)8次,共48組數(shù)據(jù);將APP顯示的數(shù)據(jù)分別與數(shù)據(jù)庫中的數(shù)據(jù)相對比。不妨假設(shè)ai為該類型數(shù)據(jù)在數(shù)據(jù)庫中的實際值(在本實驗中0≤i≤5);bi為該類型數(shù)據(jù)在手機端的顯示值(0≤i≤5)。下面給出誤差率μ的定義:
μ=|ai-bi|/ai(0≤i≤5)
本次測試嚴格按照測試計劃和測試用例執(zhí)行,主要從準確性方面進行測試,測試數(shù)據(jù)的誤差率為0。由于采取手工測試方式,未能完全在農(nóng)田環(huán)境中實現(xiàn)對大量數(shù)據(jù)進行操作的測試,但不影響實際使用情況下用戶對該應(yīng)用準確性的需求。
時延測試
假設(shè)si為某類數(shù)據(jù)在服務(wù)器的發(fā)送時間(在本實驗中0≤i≤5,si單位:毫秒);ri為客戶端顯示該數(shù)據(jù)的時間(ri單位:毫秒)。下面給出誤時延t的定義:
t=ri-si(0≤i≤5)
本次測試主要從時延性方面進行測試。經(jīng)測試,客戶端請求數(shù)據(jù)存在一定的時延,但時延一般維持在O.1s左右。由于只為每種類型傳感器設(shè)置一個終端節(jié)點,取了部分數(shù)據(jù)測試,但結(jié)果能夠滿足用戶對等待時間的需求。
經(jīng)過界面測試,該APP的界面設(shè)計符合人們的使用習慣,并在選擇查詢節(jié)點的過程中都有顯示。通過數(shù)據(jù)的準確性測試和時延測試發(fā)現(xiàn),本次實驗所設(shè)計的應(yīng)用能夠準確的獲取數(shù)據(jù)源的數(shù)據(jù),反映農(nóng)田的真實狀況。查詢相關(guān)資料發(fā)現(xiàn):0.1秒在該時間內(nèi)顯示反饋結(jié)果用戶是可以接受的。1.0秒是用戶保持不間斷的思維流的限定時間,用戶會注意到這樣的延遲。APP傳輸數(shù)據(jù)顯示的的時間大概在0.1秒左右,在用戶對時間要求的范圍內(nèi)。
本發(fā)明利用Android開發(fā)技術(shù),將無線傳感器網(wǎng)路系統(tǒng)中獲取的環(huán)境參數(shù)信息,實時的顯示到用戶移動設(shè)備上,該應(yīng)用將會推動無線傳感器對農(nóng)作物生長環(huán)境進行技術(shù)檢測的發(fā)展,使用者可以在移動的情況下隨時隨地獲取遠距離參數(shù)。進而根據(jù)參數(shù),實時的調(diào)整種田和維護的策略,提高糧食產(chǎn)量,還可以應(yīng)用到草原牧區(qū)和林田等環(huán)境條件下,APP人機交互性良好,在準確率和時延性方面均能夠滿足客戶的需求。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。