基于nRF24LE1和百度地圖的校園警情定位系統設計
摘要:在手機報警受限的情況下,為了使求助者能向校園保衛處緊急報警并且準確定好自己所處的位置,本文研制了求助者隨身攜帶的微型無(wú)線(xiàn)遙控器和相應的配套系統。當求助者按下緊急求助按鈕時(shí),立即向保衛處發(fā)出求助信號,同時(shí)在保衛處的監控界面上直觀(guān)顯示求助者所在的位置。測試表明,從求助者按下緊急求助按鈕到保衛處頁(yè)面刷新顯示為40~50 s,位置精度為20~40m。
引言
學(xué)校安全工作是全社會(huì )安全工作的重要組成部分之一。它直接關(guān)系到青年學(xué)生能否安全、健康地成長(cháng),關(guān)系到千千萬(wàn)萬(wàn)個(gè)家庭的幸福安寧和社會(huì )穩定。廣東海洋大學(xué)湖光校區校園面積大,有些地方比較偏僻,往往是警情多發(fā)地段。遇到緊急情況,求助者通過(guò)手機報警,但往往很難準確描述其所在位置。若求助者手機報警受到限制,就更加無(wú)法對外發(fā)出求助。
為了解決以上的問(wèn)題,讓求助者能通過(guò)第二種方式向校園保衛處緊急報警并且準確定好自己所處的位置,本文研制了求助者隨身攜帶的微型無(wú)線(xiàn)遙控器和相應的配套裝置。當求助者按下緊急求助按鈕,立即向保衛處發(fā)出求助信號,同時(shí)在保衛處的監控界面上直觀(guān)顯示求助者所在的位置。
1 系統整體實(shí)現
該系統的整體架構如圖1所示。在某需要監控的區域布置中心站,在中心站周?chē)贾枚鄠€(gè)分站,形成一個(gè)星狀網(wǎng)絡(luò )。一旦各個(gè)站點(diǎn)布置的位置確定,其經(jīng)緯度的位置信息便確定下來(lái)。區域內的各個(gè)分站的信息直接或者間接傳送到中心站,中心站接著(zhù)把該信息傳送到數據中心。為了增加分站布置的靈活性,本文對分站之間信息的接力傳遞進(jìn)行了技術(shù)上的實(shí)現,但從實(shí)時(shí)性和可靠性的角度看,盡量避免分站之間信息的接力傳遞,從信息起始發(fā)起的分站到中心站之間的分站不應超過(guò)2個(gè)。

求助者按下隨身攜帶的微型無(wú)線(xiàn)遙控器的緊急求助按鈕,當離其最近的分站接收到該求助信號時(shí),該分站首先啟動(dòng)報警器蜂鳴,這樣做是為了獲得周?chē)罕姷膸椭?,然后該分站通過(guò)某種預定的路徑,直接或者間接地把該信息傳送到中心站。最后中心站通過(guò)GPRS網(wǎng)絡(luò )把該信息傳送到互聯(lián)網(wǎng)上的數據中心,并存儲在數據庫服務(wù)器中。
在WEB服務(wù)器上發(fā)布警情監控的網(wǎng)站,學(xué)校保衛處作為客戶(hù)端之一訪(fǎng)問(wèn)該網(wǎng)站。該頁(yè)面不斷實(shí)時(shí)刷新顯示最新的警情信息。學(xué)校保安人員也可以通過(guò)手機訪(fǎng)問(wèn)該網(wǎng)站,從而協(xié)助其準確到達案發(fā)地點(diǎn)。
監控開(kāi)始時(shí),客戶(hù)端在瀏覽器上鍵入“http://210.38.139.35/warn/default.htm”地址。假設現有不同用戶(hù)在不同地方按下緊急求助按鈕,圖2為顯示界面。

圖2中標注“警衛”的地方就是學(xué)校固定警力分布的位置,標注“警報”的位置就是當前警情位置,其以不停的跳動(dòng)和聲音提示最新警情。只有保衛處用戶(hù)才有權限去處理該警情信息,其他用戶(hù)只有瀏覽權限。這樣保衛處根據求助地點(diǎn)和警衛的位置,作出最優(yōu)的指揮。同時(shí)警衛人員可以利用手機訪(fǎng)問(wèn)該網(wǎng)站,作為位置協(xié)助找到求助者。
2 系統硬件
2.1 nRF24LE1模塊
nRF24LE1是NORDIC公司新推出的一款芯片。nRF24LE1采用了NORDIC公司最新的無(wú)線(xiàn)和超低功耗技術(shù),在一個(gè)極小封裝中集成了2.4 GHz無(wú)線(xiàn)傳輸、增強型51 Flash高速單片機、豐富外設及接口等,是一個(gè)性能和成本的完美結合,很適合應用于各種2.4GHz的產(chǎn)品設計。
在本系統中的微型無(wú)線(xiàn)遙控器、分站和中心站的無(wú)線(xiàn)收發(fā)裝置選用的都是nRF24LE1模塊,它們之間的信息傳遞是通過(guò)各自的nRF24LE1模塊進(jìn)行的。其中,分站和中心站采用的nRF24LE1模塊帶有外置功率放大天線(xiàn),開(kāi)闊地傳輸距離約為200~400 m,而微型無(wú)線(xiàn)遙控器采用的nRF 24LE1網(wǎng)模塊帶有內置天線(xiàn),開(kāi)闊地通信距離為10~30 m。
2.2 EM310模塊
中心站最后還需要把警情信息通過(guò)GPRS網(wǎng)絡(luò )傳送到互聯(lián)網(wǎng)上的數據中心。GPRS網(wǎng)絡(luò )的接入采用華為公司生產(chǎn)的EM310模塊。EM310模塊內置了TCP/IP協(xié)議棧,由AT指令控制并使得應用程序可以很容易地接入網(wǎng)絡(luò )。該方案的優(yōu)點(diǎn)在于最小化了將網(wǎng)絡(luò )連接集成入一個(gè)新的或已存在的應用程序所需的成本和時(shí)間。
在本系統中,EM310模塊是由中心站的nRF24LE1通過(guò)AT指令控制操作的,它們之間的接口就是典型的三線(xiàn)制串行通信。
3 系統軟件的實(shí)現
3.1 微型無(wú)線(xiàn)遙控器軟件
考慮到遙控器的功耗和體積,采用紐扣電池供電。平時(shí)不需要報警的時(shí)候,電源按鈕處于被關(guān)閉狀態(tài),當有緊急情況時(shí),電源按鈕被按下,系統開(kāi)始工作,啟動(dòng)發(fā)送警報,其工作流程如圖3所示。

求助信號發(fā)送出去后,離其最近的分站接收到該信號,分站啟動(dòng)大功率蜂鳴器工作,同時(shí)發(fā)送一個(gè)應答包給該遙控器。當遙控器接收到該應答包后,停止發(fā)送警報,同時(shí)觸發(fā)LED指示,表示警報信息已經(jīng)被成功捕獲,否則重新發(fā)送。這樣設置是為了加強系統的可靠性,萬(wàn)一分站的蜂鳴器壞了,求助者無(wú)法通過(guò)蜂鳴器嗚叫來(lái)確認求助信息是否被成功捕獲。
3.2 分站軟件
與無(wú)線(xiàn)遙控器供電方式不同,分站采用連續的供電方式,其工作流程圖如圖4所示。分站不斷循環(huán)檢測是否有警報信息需要處理。若有警報信息需要處理,首先發(fā)出應答包,接著(zhù)往預定的目標地址發(fā)送警報數據包。該目標地址可以是其他分站,也可以是中心站,是根據實(shí)際需要設定的。

3.3 中心站軟件
中心站和分站的軟件實(shí)現在整體上有相似之處,稍微區別是當分站確認接收到警報數據包后,便向預定的目標地址(其他分站或者中心站)發(fā)送該警報包,而中心站接收到警報數據包后,通過(guò)EM310往預定的目標IP地址發(fā)送,其流程圖如圖5所示。
3.4 網(wǎng)站設計實(shí)現
本校園警情快速定位網(wǎng)站的地圖應用設計采用百度地圖的JavaScript API。其是一套由JavaScript語(yǔ)言編寫(xiě)的應用程序接口,可幫助在網(wǎng)站中構建功能豐富、交互性強的地圖應用,支持PC端和移動(dòng)端基于瀏覽器的地圖應用開(kāi)發(fā),且支持HTML5特性的地圖開(kāi)發(fā)。
用戶(hù)通過(guò)瀏覽器訪(fǎng)問(wèn)該網(wǎng)站,即向該網(wǎng)站發(fā)出了服務(wù)請求,該網(wǎng)站便向數據庫提取警情數據,同時(shí)向百度請求地圖服務(wù),最后把兩者數據融合,返回給用戶(hù),刷新瀏覽界面,用戶(hù)看到就是在百度地圖中對應的位置上標記的警情信息和固定警力信息。
4 關(guān)鍵技術(shù)討論
4.1 數據包定義
本系統通信的數據包類(lèi)型有應答包和警報包。警報包又分為遙控器直接發(fā)出的警報包(稱(chēng)為遙控器警報包)和分站轉發(fā)的警報包(稱(chēng)為分站警報包),數據包類(lèi)型標識定義如表1所列。

為了形式上的統一,把各種數據包都規定為30個(gè)字節長(cháng)度,數據包中各個(gè)字節的定義如表2所示。

某遙控器待發(fā)送的警報包數據存放在如下的數組中:

4.2 nRF24LE1數據包發(fā)送和接收
在nRF24LE1中,集成了一個(gè)功能齊全的2.4GHz收發(fā)器核nRF24L01+和一個(gè)加強型8051微控制器核。該微控制核和收發(fā)器核nRF24L01+是通過(guò)其專(zhuān)用的SPI接口進(jìn)行通信,因此數據包收發(fā)是通過(guò)SPI讀寫(xiě)操作來(lái)完成的。
TxMode函數的參數分別描述如下:TxAddress:存放目標地址數據的數組;TxAdrWidth:目標地址長(cháng)度;TxData:存放待發(fā)送數據的數組;TxDataLength:待發(fā)送的數據長(cháng)度。
無(wú)線(xiàn)遙控器發(fā)送的警報是一個(gè)廣播性質(zhì)的數據,所有分站都有同等的機會(huì )接收該警報數據,因此在本系統中所有分站必須開(kāi)啟一個(gè)能接收廣播類(lèi)型數據的通道,也就是所有分站都具有同樣的接收廣播的地址。
nRF24LE1有6個(gè)接收數據的通道地址,能滿(mǎn)足這樣的要求,本系統僅僅用了2個(gè)接收數據的通道地址,一個(gè)是該分站專(zhuān)用的接收地址(即分站ID),另一個(gè)是該分站跟其他分站相同的接收地址,配置操作略——編者注。
無(wú)線(xiàn)遙控器發(fā)送數據是廣播型,因此發(fā)送就是向共有的接收地址發(fā)送。另外還需要開(kāi)通一個(gè)接收應答數據包的通道,因為應答包是有固定的指向,因此無(wú)線(xiàn)遙控器只需要開(kāi)通一個(gè)專(zhuān)用的接收數據通道(即遙控器ID),其相關(guān)配置略——編者注。
為了增加系統的可靠性和可控性,這里只是允許接收中斷,而且接收中斷在某種情況下,還根據需要進(jìn)行關(guān)閉,然后再次開(kāi)啟等。
4.3 隨機調整發(fā)包時(shí)間間隔參數策略
時(shí)間間隔調整是靠Delay函數里面的Temp參數的調整來(lái)確定的。Delay(Temp)延時(shí)時(shí)間大約為T(mén)emp值的1/10 s。延時(shí)參數Temp值等于基數10加上一個(gè)小于10的隨機數,具體實(shí)現如下:

Delay(Temp)實(shí)現的延時(shí)是以1 s為基礎加上一個(gè)小于1的隨機小數,總共有4個(gè)1 s左右的延時(shí)疊加,因此該延時(shí)是以4 s為基數進(jìn)行調整的,該參數的配置是根據實(shí)驗測試并統計B從接收警報包,到轉發(fā)警報包,再到接收應答包的時(shí)間,再適當加上一定余量,權衡得出來(lái)的。
每一個(gè)設備都把自己認為重要的事情做好,并且又能夠互相配合,使得整個(gè)系統可靠性和實(shí)時(shí)性達到一個(gè)相對完美的配合。
4.4 遠程應用服務(wù)器操作策略
網(wǎng)絡(luò )組網(wǎng)方案是數據中心服務(wù)器端采用公網(wǎng)固定IP地址,EM310直接通過(guò)IP地址訪(fǎng)問(wèn)Internet。其中,最關(guān)鍵兩個(gè)動(dòng)作就是EM310連接遠程應用服務(wù)器操作和EM310往遠程應用服務(wù)器發(fā)送數據包。
本文從實(shí)時(shí)性角度出發(fā),采用最簡(jiǎn)的操作步驟,如表3所示。

4個(gè)步驟之間緊密相連,缺一不可。每個(gè)AT指令發(fā)送出去后,會(huì )返回一個(gè)字符串,只有確認返同字符串中有“OK”字符,才能認為該AT指令操作成功,才可以進(jìn)入下一個(gè)步驟的操作,否則重新發(fā)送該AT指令。這種方法可以獲得最高的可靠性,同時(shí)也會(huì )帶來(lái)一定風(fēng)險,程序會(huì )一直在循環(huán)等待。
考慮到實(shí)時(shí)性,本文采用的是并不是每個(gè)AT指令操作后都等待“OK”字符,而是直接進(jìn)入第4個(gè)步驟,發(fā)送警報信息。在該指令發(fā)送后,經(jīng)過(guò)適當的延時(shí),然后去判斷返回的字符串中是否有“OK”字符,否則才開(kāi)始從第1個(gè)步驟開(kāi)始。
萬(wàn)一警情信息發(fā)送不成功,需要重新連接服務(wù)器,即從第1個(gè)步驟重新開(kāi)始。本文采用的并不是每個(gè)AT指令操作后都去作等待“OK”字符的動(dòng)作,而是經(jīng)過(guò)適當延時(shí),直接進(jìn)入下一個(gè)動(dòng)作。因此必須預先對該延時(shí)參數有個(gè)估計,同時(shí)要保留一定余量。本文通過(guò)大量測試,權衡后得到如表4所列的參數。

結語(yǔ)
測試兩種情況從按下求助按鈕到地圖顯示的時(shí)間:一是分站直接到中心站;二是分站間接到中心站(本系統分站到中心站最多是2個(gè)),結果是40~50 s。假設A轉發(fā)的數據包目標是分站B,在A(yíng)接收范圍內按下一個(gè)求助按鈕,同時(shí)在B接收的范圍內,按下另一個(gè)求助按鈕。測試表明本系統能可靠把兩個(gè)警報包最終在百度地圖上顯示出來(lái)。因此,本系統所用的策略保障了一定的實(shí)時(shí)性和可靠性。
評論