陳海生,蔡澤明,陳德宜,鄧銳
(廣東海洋大學(xué)信息學(xué)院,湛江524000)
學(xué)校安全工作是全社會(huì)安全工作的重要組成部分之一。它直接關(guān)系到青年學(xué)生能否安全、健康地成長(zhǎng),關(guān)系到千千萬萬個(gè)家庭的幸福安寧和社會(huì)穩(wěn)定。廣東海洋大學(xué)湖光校區(qū)校園面積大,有些地方比較偏僻,往往是警情多發(fā)地段。遇到緊急情況,求助者通過手機(jī)報(bào)警,但往往很難準(zhǔn)確描述其所在位置。若求助者手機(jī)報(bào)警受到限制,就更加無法對(duì)外發(fā)出求助。
為了解決以上的問題,讓求助者能通過第二種方式向校園保衛(wèi)處緊急報(bào)警并且準(zhǔn)確定好自己所處的位置,本文研制了求助者隨身攜帶的微型無線遙控器和相應(yīng)的配套裝置。當(dāng)求助者按下緊急求助按鈕,立即向保衛(wèi)處發(fā)出求助信號(hào),同時(shí)在保衛(wèi)處的監(jiān)控界面上直觀顯示求助者所在的位置。
該系統(tǒng)的整體架構(gòu)如圖1所示。在某需要監(jiān)控的區(qū)域布置中心站,在中心站周圍布置多個(gè)分站,形成一個(gè)星狀網(wǎng)絡(luò)。一旦各個(gè)站點(diǎn)布置的位置確定,其經(jīng)緯度的位置信息便確定下來。區(qū)域內(nèi)的各個(gè)分站的信息直接或者間接傳送到中心站,中心站接著把該信息傳送到數(shù)據(jù)中心。為了增加分站布置的靈活性,本文對(duì)分站之間信息的接力傳遞進(jìn)行了技術(shù)上的實(shí)現(xiàn),但從實(shí)時(shí)性和可靠性的角度看,盡量避免分站之間信息的接力傳遞,從信息起始發(fā)起的分站到中心站之間的分站不應(yīng)超過2個(gè)。
求助者按下隨身攜帶的微型無線遙控器的緊急求助按鈕,當(dāng)離其最近的分站接收到該求助信號(hào)時(shí),該分站首先啟動(dòng)報(bào)警器蜂鳴,這樣做是為了獲得周圍群眾的幫助,然后該分站通過某種預(yù)定的路徑,直接或者間接地把該信息傳送到中心站。最后中心站通過GPRS網(wǎng)絡(luò)把該信息傳送到互聯(lián)網(wǎng)上的數(shù)據(jù)中心,并存儲(chǔ)在數(shù)據(jù)庫(kù)服務(wù)器中。
在WEB服務(wù)器上發(fā)布警情監(jiān)控的網(wǎng)站,學(xué)校保衛(wèi)處作為客戶端之一訪問該網(wǎng)站。該頁(yè)面不斷實(shí)時(shí)刷新顯示最新的警情信息。學(xué)校保安人員也可以通過手機(jī)訪問該網(wǎng)站,從而協(xié)助其準(zhǔn)確到達(dá)案發(fā)地點(diǎn)。
監(jiān)控開始時(shí),客戶端在瀏覽器上鍵入“http://210.38.139.35/warn/default.htm”地址。假設(shè)現(xiàn)有不同用戶在不同地方按下緊急求助按鈕,圖2為顯示界面。
圖2 校園警情快速定位頁(yè)面
圖2中標(biāo)注“警衛(wèi)”的地方就是學(xué)校固定警力分布的位置,標(biāo)注“警報(bào)”的位置就是當(dāng)前警情位置,其以不停的跳動(dòng)和聲音提示最新警情。只有保衛(wèi)處用戶才有權(quán)限去處理該警情信息,其他用戶只有瀏覽權(quán)限。這樣保衛(wèi)處根據(jù)求助地點(diǎn)和警衛(wèi)的位置,作出最優(yōu)的指揮。同時(shí)警衛(wèi)人員可以利用手機(jī)訪問該網(wǎng)站,作為位置協(xié)助找到求助者。
nRF24LE1是NORDIC公司新推出的一款芯片。nRF24LE1采用了NORDIC公司最新的無線和超低功耗技術(shù),在一個(gè)極小封裝中集成了2.4GHz無線傳輸、增強(qiáng)型51Flash高速單片機(jī)、豐富外設(shè)及接口等,是一個(gè)性能和成本的完美結(jié)合,很適合應(yīng)用于各種2.4GHz的產(chǎn)品設(shè)計(jì)[1-2]。
在本系統(tǒng)中的微型無線遙控器、分站和中心站的無線收發(fā)裝置選用的都是nRF24LE1模塊,它們之間的信息傳遞是通過各自的nRF24LE1模塊進(jìn)行的。其中,分站和中心站采用的nRF24LE1模塊帶有外置功率放大天線,開闊地傳輸距離約為200~400m,而微型無線遙控器采用的nRF24LE1模塊帶有內(nèi)置天線,開闊地通信距離為10~30m[3-4]。
中心站最后還需要把警情信息通過GPRS網(wǎng)絡(luò)傳送到互聯(lián)網(wǎng)上的數(shù)據(jù)中心。GPRS網(wǎng)絡(luò)的接入采用華為公司生產(chǎn)的EM310模塊。EM310模塊內(nèi)置了TCP/IP協(xié)議棧,由AT指令控制并使得應(yīng)用程序可以很容易地接入網(wǎng)絡(luò)[5]。該方案的優(yōu)點(diǎn)在于最小化了將網(wǎng)絡(luò)連接集成入一個(gè)新的或已存在的應(yīng)用程序所需的成本和時(shí)間。
在本系統(tǒng)中,EM310模塊是由中心站的nRF24LE1通過AT指令控制操作的,它們之間的接口就是典型的三線制串行通信[6]。
考慮到遙控器的功耗和體積,采用紐扣電池供電。平時(shí)不需要報(bào)警的時(shí)候,電源按鈕處于被關(guān)閉狀態(tài),當(dāng)有緊急情況時(shí),電源按鈕被按下,系統(tǒng)開始工作,啟動(dòng)發(fā)送警報(bào),其工作流程如圖3所示。
求助信號(hào)發(fā)送出去后,離其最近的分站接收到該信號(hào),分站啟動(dòng)大功率蜂鳴器工作,同時(shí)發(fā)送一個(gè)應(yīng)答包給該遙控器。當(dāng)遙控器接收到該應(yīng)答包后,停止發(fā)送警報(bào),同時(shí)觸發(fā)LED指示,表示警報(bào)信息已經(jīng)被成功捕獲,否則重新發(fā)送。這樣設(shè)置是為了加強(qiáng)系統(tǒng)的可靠性,萬一分站的蜂鳴器壞了,求助者無法通過蜂鳴器鳴叫來確認(rèn)求助信息是否被成功捕獲。
圖3 微型無線遙控器工作流程圖
與無線遙控器供電方式不同,分站采用連續(xù)的供電方式,其工作流程圖如圖4所示。分站不斷循環(huán)檢測(cè)是否有警報(bào)信息需要處理。若有警報(bào)信息需要處理,首先發(fā)出應(yīng)答包,接著往預(yù)定的目標(biāo)地址發(fā)送警報(bào)數(shù)據(jù)包。該目標(biāo)地址可以是其他分站,也可以是中心站,是根據(jù)實(shí)際需要設(shè)定的。
中心站和分站的軟件實(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所示。
圖4 分站設(shè)備工作流程圖
圖5 中心站工作流程圖
本校園警情快速定位網(wǎng)站的地圖應(yīng)用設(shè)計(jì)采用百度地圖的JavaScript API。其是一套由JavaScript語(yǔ)言編寫的應(yīng)用程序接口,可幫助在網(wǎng)站中構(gòu)建功能豐富、交互性強(qiáng)的地圖應(yīng)用,支持PC端和移動(dòng)端基于瀏覽器的地圖應(yīng)用開發(fā),且支持HTML5特性的地圖開發(fā)[7-9]。
用戶通過瀏覽器訪問該網(wǎng)站,即向該網(wǎng)站發(fā)出了服務(wù)請(qǐng)求,該網(wǎng)站便向數(shù)據(jù)庫(kù)提取警情數(shù)據(jù),同時(shí)向百度請(qǐng)求地圖服務(wù),最后把兩者數(shù)據(jù)融合,返回給用戶,刷新瀏覽界面,用戶看到就是在百度地圖中對(duì)應(yīng)的位置上標(biāo)記的警情信息和固定警力信息。
本系統(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所列。
表1 主要數(shù)據(jù)包類型標(biāo)識(shí)
為了形式上的統(tǒng)一,把各種數(shù)據(jù)包都規(guī)定為30個(gè)字節(jié)長(zhǎng)度,數(shù)據(jù)包中各個(gè)字節(jié)的定義如表2所示。
表2 數(shù)據(jù)包格式
某遙控器待發(fā)送的警報(bào)包數(shù)據(jù)存放在如下的數(shù)組中:
在nRF24LE1中,集成了一個(gè)功能齊全的2.4GHz收發(fā)器核nRF24L01+和一個(gè)加強(qiáng)型8051微控制器核。該微控制核和收發(fā)器核nRF24L01+是通過其專用的SPI接口進(jìn)行通信,因此數(shù)據(jù)包收發(fā)是通過SPI讀寫操作來完成的[10]。
本系統(tǒng)中的數(shù)據(jù)包發(fā)送函數(shù)TxMode原型略——編者注。
TxMode函數(shù)的參數(shù)分別描述如下:TxAddress:存放目標(biāo)地址數(shù)據(jù)的數(shù)組;TxAdrWidth:目標(biāo)地址長(zhǎng)度;Tx-Data:存放待發(fā)送數(shù)據(jù)的數(shù)組;TxDataLength:待發(fā)送的數(shù)據(jù)長(zhǎng)度。
無線遙控器發(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)閉,然后再次開啟等。接收中斷服務(wù)程序略——編者注。
時(shí)間間隔調(diào)整是靠Delay函數(shù)里面的Temp參數(shù)的調(diào)整來確定的。Delay(Temp)延時(shí)時(shí)間大約為Temp值的1/10s。延時(shí)參數(shù)Temp值等于基數(shù)10加上一個(gè)小于10的隨機(jī)數(shù),具體實(shí)現(xiàn)如下:
Delay(Temp)實(shí)現(xiàn)的延時(shí)是以1s為基礎(chǔ)加上一個(gè)小于1的隨機(jī)小數(shù),總共有4個(gè)1s左右的延時(shí)疊加,因此該延時(shí)是以4s為基數(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ì)完美的配合。
網(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ù)包[11]。
本文從實(shí)時(shí)性角度出發(fā),采用最簡(jiǎn)的操作步驟,如表3所示。
表3 遠(yuǎn)程應(yīng)用服務(wù)器操作步驟
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ù)。
表4 延時(shí)參數(shù)
測(cè)試兩種情況從按下求助按鈕到地圖顯示的時(shí)間:一是分站直接到中心站;二是分站間接到中心站(本系統(tǒng)分站到中心站最多是2個(gè)),結(jié)果是40~50s。假設(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í)性和可靠性。
編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。
[1] 王立峰,王光欣.基于nRF24LE1的智能雙向汽車遙控系統(tǒng)[J] .工業(yè)控制計(jì)算機(jī),2011,24(1):99-100.
[2] 潘曉寧,鄭芙蓉.基于nRF24LE1的無線溫度監(jiān)測(cè)系統(tǒng)[J] .深圳信息職業(yè)技術(shù)學(xué)院學(xué)報(bào),2010,8(4):67-71.
[3] 馬躍坤,應(yīng)時(shí)彥.基于nRF24LE1的無線數(shù)據(jù)傳輸系統(tǒng)實(shí)現(xiàn)[J] .浙江工業(yè)大學(xué)學(xué)報(bào),2010,38(6):666-672.
[4] 李劼,楊劍.基于nRF24LE1的無線射頻數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J] .工業(yè)控制計(jì)算機(jī),2006,19(8):6-7.
[5] 高珊,溫從溪.基于STM32單片機(jī)和EM310的無線終端設(shè)計(jì)[J] .工業(yè)控制計(jì)算機(jī),2013,26(2):35-37.
[6] 劉成巖,孫晶華.EM310無線模塊與PIC單片機(jī)的接口設(shè)計(jì)[J] .單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2011,11(9):46-47.
[7] 沈娣麗,上官同英.ZigBee和百度地圖API在農(nóng)田信息采集系統(tǒng)中的應(yīng)用[J] .中國(guó)農(nóng)機(jī)化,2012(4):185.
[8] 梁廣榮,黎紅.基于百度地圖API的虛擬校園實(shí)現(xiàn)[J] .廊坊師范學(xué)院學(xué)報(bào):自然科學(xué)版,2012,12(6):47.
[9] 王紅崧,周海晏.基于百度地圖API的旅游地理信息系統(tǒng)開發(fā)[J] .現(xiàn)代計(jì)算機(jī),2012(8):60.
[10] 黃智偉,楊案江.超低功耗單片機(jī)無線系統(tǒng)應(yīng)用入門——基于2.4GHz無線SoC芯片nRF24LE1[M] .北京:北京航空航天大學(xué)出版社,2011:185.
[11] 朱春燕,賈新宇.基于EM310短消息防盜系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J] .電子測(cè)試,2010(6):75-78.