基于nRF24LE1的校園警情定位系統(tǒng)設(shè)計(jì)
3.3 中心站軟件
本文引用地址:http://m.butianyuan.cn/article/245747.htm中心站和分站的軟件實(shí)現(xiàn)在整體上有相似之處,稍微區(qū)別是當(dāng)分站確認(rèn)接收到警報(bào)數(shù)據(jù)包后,便向預(yù)定的目標(biāo)地址(其他分站或者中心站)發(fā)送該警報(bào)包,而中心站接收到警報(bào)數(shù)據(jù)包后,通過EM310往預(yù)定的目標(biāo)IP地址發(fā)送,其流程圖如圖5所示。
3.4 網(wǎng)站設(shè)計(jì)實(shí)現(xiàn)
本校園警情快速定位網(wǎng)站的地圖應(yīng)用設(shè)計(jì)采用百度地圖的JavaScript API。其是一套由JavaScript語言編寫的應(yīng)用程序接口,可幫助在網(wǎng)站中構(gòu)建功能豐富、交互性強(qiáng)的地圖應(yīng)用,支持PC端和移動(dòng)端基于瀏覽器的地圖應(yīng)用開發(fā),且支持HTML5特性的地圖開發(fā)。
用戶通過瀏覽器訪問該網(wǎng)站,即向該網(wǎng)站發(fā)出了服務(wù)請(qǐng)求,該網(wǎng)站便向數(shù)據(jù)庫提取警情數(shù)據(jù),同時(shí)向百度請(qǐng)求地圖服務(wù),最后把兩者數(shù)據(jù)融合,返回給用戶,刷新瀏覽界面,用戶看到就是在百度地圖中對(duì)應(yīng)的位置上標(biāo)記的警情信息和固定警力信息。
4 關(guān)鍵技術(shù)討論
4.1 數(shù)據(jù)包定義
本系統(tǒng)通信的數(shù)據(jù)包類型有應(yīng)答包和警報(bào)包。警報(bào)包又分為遙控器直接發(fā)出的警報(bào)包(稱為遙控器警報(bào)包)和分站轉(zhuǎn)發(fā)的警報(bào)包(稱為分站警報(bào)包),數(shù)據(jù)包類型標(biāo)識(shí)定義如表1所列。
為了形式上的統(tǒng)一,把各種數(shù)據(jù)包都規(guī)定為30個(gè)字節(jié)長度,數(shù)據(jù)包中各個(gè)字節(jié)的定義如表2所示。
某遙控器待發(fā)送的警報(bào)包數(shù)據(jù)存放在如下的數(shù)組中:
4.2 nRF24LE1數(shù)據(jù)包發(fā)送和接收
在nRF24LE1中,集成了一個(gè)功能齊全的2.4GHz收發(fā)器核nRF24L01+和一個(gè)加強(qiáng)型8051微控制器核。該微控制核和收發(fā)器核nRF24L01+是通過其專用的SPI接口進(jìn)行通信,因此數(shù)據(jù)包收發(fā)是通過SPI讀寫操作來完成的。
TxMode函數(shù)的參數(shù)分別描述如下:TxAddress:存放目標(biāo)地址數(shù)據(jù)的數(shù)組;TxAdrWidth:目標(biāo)地址長度;TxData:存放待發(fā)送數(shù)據(jù)的數(shù)組;TxDataLength:待發(fā)送的數(shù)據(jù)長度。
無線遙控器發(fā)送的警報(bào)是一個(gè)廣播性質(zhì)的數(shù)據(jù),所有分站都有同等的機(jī)會(huì)接收該警報(bào)數(shù)據(jù),因此在本系統(tǒng)中所有分站必須開啟一個(gè)能接收廣播類型數(shù)據(jù)的通道,也就是所有分站都具有同樣的接收廣播的地址。
nRF24LE1有6個(gè)接收數(shù)據(jù)的通道地址,能滿足這樣的要求,本系統(tǒng)僅僅用了2個(gè)接收數(shù)據(jù)的通道地址,一個(gè)是該分站專用的接收地址(即分站ID),另一個(gè)是該分站跟其他分站相同的接收地址,配置操作略——編者注。
無線遙控器發(fā)送數(shù)據(jù)是廣播型,因此發(fā)送就是向共有的接收地址發(fā)送。另外還需要開通一個(gè)接收應(yīng)答數(shù)據(jù)包的通道,因?yàn)閼?yīng)答包是有固定的指向,因此無線遙控器只需要開通一個(gè)專用的接收數(shù)據(jù)通道(即遙控器ID),其相關(guān)配置略——編者注。
為了增加系統(tǒng)的可靠性和可控性,這里只是允許接收中斷,而且接收中斷在某種情況下,還根據(jù)需要進(jìn)行關(guān)閉,然后再次開啟等。
4.3 隨機(jī)調(diào)整發(fā)包時(shí)間間隔參數(shù)策略
時(shí)間間隔調(diào)整是靠Delay函數(shù)里面的Temp參數(shù)的調(diào)整來確定的。Delay(Temp)延時(shí)時(shí)間大約為Temp值的1/10 s。延時(shí)參數(shù)Temp值等于基數(shù)10加上一個(gè)小于10的隨機(jī)數(shù),具體實(shí)現(xiàn)如下:
Delay(Temp)實(shí)現(xiàn)的延時(shí)是以1 s為基礎(chǔ)加上一個(gè)小于1的隨機(jī)小數(shù),總共有4個(gè)1 s左右的延時(shí)疊加,因此該延時(shí)是以4 s為基數(shù)進(jìn)行調(diào)整的,該參數(shù)的配置是根據(jù)實(shí)驗(yàn)測(cè)試并統(tǒng)計(jì)B從接收警報(bào)包,到轉(zhuǎn)發(fā)警報(bào)包,再到接收應(yīng)答包的時(shí)間,再適當(dāng)加上一定余量,權(quán)衡得出來的。
每一個(gè)設(shè)備都把自己認(rèn)為重要的事情做好,并且又能夠互相配合,使得整個(gè)系統(tǒng)可靠性和實(shí)時(shí)性達(dá)到一個(gè)相對(duì)完美的配合。
4.4 遠(yuǎn)程應(yīng)用服務(wù)器操作策略
網(wǎng)絡(luò)組網(wǎng)方案是數(shù)據(jù)中心服務(wù)器端采用公網(wǎng)固定IP地址,EM310直接通過IP地址訪問Internet。其中,最關(guān)鍵兩個(gè)動(dòng)作就是EM310連接遠(yuǎn)程應(yīng)用服務(wù)器操作和EM310往遠(yuǎn)程應(yīng)用服務(wù)器發(fā)送數(shù)據(jù)包。
本文從實(shí)時(shí)性角度出發(fā),采用最簡的操作步驟,如表3所示。
4個(gè)步驟之間緊密相連,缺一不可。每個(gè)AT指令發(fā)送出去后,會(huì)返回一個(gè)字符串,只有確認(rèn)返同字符串中有“OK”字符,才能認(rèn)為該AT指令操作成功,才可以進(jìn)入下一個(gè)步驟的操作,否則重新發(fā)送該AT指令。這種方法可以獲得最高的可靠性,同時(shí)也會(huì)帶來一定風(fēng)險(xiǎn),程序會(huì)一直在循環(huán)等待。
考慮到實(shí)時(shí)性,本文采用的是并不是每個(gè)AT指令操作后都等待“OK”字符,而是直接進(jìn)入第4個(gè)步驟,發(fā)送警報(bào)信息。在該指令發(fā)送后,經(jīng)過適當(dāng)?shù)难訒r(shí),然后去判斷返回的字符串中是否有“OK”字符,否則才開始從第1個(gè)步驟開始。
萬一警情信息發(fā)送不成功,需要重新連接服務(wù)器,即從第1個(gè)步驟重新開始。本文采用的并不是每個(gè)AT指令操作后都去作等待“OK”字符的動(dòng)作,而是經(jīng)過適當(dāng)延時(shí),直接進(jìn)入下一個(gè)動(dòng)作。因此必須預(yù)先對(duì)該延時(shí)參數(shù)有個(gè)估計(jì),同時(shí)要保留一定余量。本文通過大量測(cè)試,權(quán)衡后得到如表4所列的參數(shù)。
結(jié)語
測(cè)試兩種情況從按下求助按鈕到地圖顯示的時(shí)間:一是分站直接到中心站;二是分站間接到中心站(本系統(tǒng)分站到中心站最多是2個(gè)),結(jié)果是40~50 s。假設(shè)A轉(zhuǎn)發(fā)的數(shù)據(jù)包目標(biāo)是分站B,在A接收范圍內(nèi)按下一個(gè)求助按鈕,同時(shí)在B接收的范圍內(nèi),按下另一個(gè)求助按鈕。測(cè)試表明本系統(tǒng)能可靠把兩個(gè)警報(bào)包最終在百度地圖上顯示出來。因此,本系統(tǒng)所用的策略保障了一定的實(shí)時(shí)性和可靠性。
萬能遙控器相關(guān)文章:萬能遙控器代碼
蜂鳴器相關(guān)文章:蜂鳴器原理 燃?xì)鈭?bào)警器相關(guān)文章:燃?xì)鈭?bào)警器原理
評(píng)論