《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)控制的雙模式兒童防走失系統(tǒng)設(shè)計(jì)
基于單片機(jī)控制的雙模式兒童防走失系統(tǒng)設(shè)計(jì)
來源:微型機(jī)與應(yīng)用2012年第6期
魏曉龍,任天平,陳 威
(鄭州大學(xué),河南 鄭州450000)
摘要: 鑒于傳統(tǒng)兒童防走失系統(tǒng)使用的局限性,介紹了一種基于單片機(jī)控制的、可以工作在無線信號(hào)與移動(dòng)信號(hào)兩種數(shù)據(jù)傳輸模式下的兒童防走失系統(tǒng)。分析并利用GPS全球定位系統(tǒng),準(zhǔn)確獲取兒童所在位置的經(jīng)緯度信息,通過某種數(shù)據(jù)傳輸方式將數(shù)據(jù)傳輸給父母端設(shè)備,處理數(shù)據(jù)并圖形顯示兒童與父母的具體或是相對(duì)位置。
Abstract:
Key words :

摘  要: 鑒于傳統(tǒng)兒童防走失系統(tǒng)使用的局限性,介紹了一種基于單片機(jī)控制的、可以工作在無線信號(hào)與移動(dòng)信號(hào)兩種數(shù)據(jù)傳輸模式下的兒童防走失系統(tǒng)。分析并利用GPS全球定位系統(tǒng),準(zhǔn)確獲取兒童所在位置的經(jīng)緯度信息,通過某種數(shù)據(jù)傳輸方式將數(shù)據(jù)傳輸給父母端設(shè)備,處理數(shù)據(jù)并圖形顯示兒童與父母的具體或是相對(duì)位置。
關(guān)鍵詞: 單片機(jī);GPS;數(shù)據(jù)傳輸;圖形顯示

    據(jù)公安部最新數(shù)據(jù)顯示,近年來我國每年有近20萬兒童失蹤。傳統(tǒng)的兒童防走失系統(tǒng)主要依靠無線電路實(shí)現(xiàn),兒童端有一個(gè)信號(hào)發(fā)射器,父母端接收此信號(hào)并判斷信號(hào)強(qiáng)度大小,當(dāng)信號(hào)強(qiáng)度小于設(shè)定值時(shí)即報(bào)警。該方案的優(yōu)點(diǎn)是結(jié)構(gòu)簡(jiǎn)單、體積小,顯著缺點(diǎn)是適用距離短,無法判別兒童方向,信號(hào)易受干擾。這往往是兒童防走失產(chǎn)品的致命缺點(diǎn)。
    本系統(tǒng)采用的方案是根據(jù)GPS信息判斷兒童具體位置并實(shí)現(xiàn)報(bào)警功能,報(bào)警的同時(shí)能夠在第一時(shí)間向父母提供兒童的準(zhǔn)確位置信息。系統(tǒng)的創(chuàng)新點(diǎn)與技術(shù)突破點(diǎn)主要體現(xiàn)在以下幾個(gè)方面:
    (1)雙模式工作:當(dāng)沒有移動(dòng)信號(hào)時(shí),可通過無線方式實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)通信,不依靠第三方;當(dāng)距離超過1 000 m時(shí)又可通過短信息傳遞數(shù)據(jù),方便可靠;
    (2)雙重圖形處理:十字坐標(biāo)顯示響應(yīng)快速直觀,第一時(shí)間指明孩子的方位;Google地圖顯示告知孩子的準(zhǔn)確位置,兩種方式一鍵切換;
    (3)在Android手機(jī)操作系統(tǒng)下開發(fā)了一套完全適用于兒童防走失系統(tǒng)的軟件,可移植性強(qiáng)。
    需要注意的是,系統(tǒng)可以工作在兩種傳輸模式下,且能在兩種模式之間自動(dòng)切換。具體體現(xiàn)在:開機(jī)情況下,兒童端設(shè)備默認(rèn)通過無線信號(hào)的方式與父母端設(shè)備進(jìn)行通信,而當(dāng)接收不到信號(hào)時(shí),兒童端設(shè)備將會(huì)立刻切換到通過短信息的方式與父母端設(shè)備通信。
1 系統(tǒng)架構(gòu)與功能
    本兒童防走失系統(tǒng)采用子母機(jī)形式。其中兒童端為子機(jī),主要用來獲取自身經(jīng)緯度數(shù)據(jù),同時(shí)監(jiān)聽父母端發(fā)送過來的指令,并將自身經(jīng)緯度數(shù)據(jù)返回給父母端設(shè)備;父母端設(shè)備為母機(jī),采用了兩種模式:自主開發(fā)的手持終端模式與智能手機(jī)模式,分別通過無線信號(hào)和移動(dòng)網(wǎng)絡(luò)信號(hào)進(jìn)行數(shù)據(jù)傳輸,兩種模式可自動(dòng)切換。系統(tǒng)整體框架如圖1所示。

    系統(tǒng)實(shí)現(xiàn)的主要功能有:(1)防走失報(bào)警:當(dāng)孩子與父母之間的距離超過任意設(shè)定的安全值時(shí)父母端設(shè)備報(bào)警,同時(shí)在父母端設(shè)備上自動(dòng)彈出孩子當(dāng)前的位置信息(以坐標(biāo)信息或Google地圖的形式);(2)父母主動(dòng)查看孩子的位置:在父母端手持設(shè)備上主動(dòng)操作可以獲得孩子的位置信息;(3)孩子主動(dòng)求助:當(dāng)孩子發(fā)現(xiàn)找不到父母時(shí),可以按下子機(jī)的傻瓜式按鍵,父母就收到孩子的求助信號(hào),同時(shí)彈出孩子當(dāng)前的位置信息。
2 系統(tǒng)功能單元設(shè)計(jì)
2.1 GPS數(shù)據(jù)獲取與分析

    GPS(Global Positioning System)全球定位系統(tǒng)是新一代的精密衛(wèi)星導(dǎo)航定位系統(tǒng),利用人造地球衛(wèi)星確定測(cè)站點(diǎn)位置[1]。在本兒童防走失系統(tǒng)中,定位分為兩種:父母手持終端上的定位和智能手機(jī)上的定位。
    智能手機(jī)上的定位主要依靠手機(jī)內(nèi)部的GPS芯片完成。由于Google開發(fā)的Android操作系統(tǒng)完全開源,可以獲得其所有API函數(shù),通過調(diào)用API函數(shù)并編寫相關(guān)代碼,可以啟動(dòng)手機(jī)的GPS硬件,獲得基于位置的服務(wù)。這些服務(wù)當(dāng)中包括查詢手機(jī)內(nèi)部存儲(chǔ)的最新位置信息、獲得當(dāng)前位置以及更新當(dāng)前位置信息等。在本文編寫的程序當(dāng)中,使用到了查詢手機(jī)內(nèi)部存儲(chǔ)的最新位置信息和更新當(dāng)前位置信息等功能,部分程序代碼如下:
    LocationManager locationManager = (LocationManager)getSystemService(context);
    Location location = locationManager.getLastKnownLocation(provider);
    updateWithNewLocation(location);
    其中LocationManager locationManager=(LocationManager)getSystemService(context)用來添加實(shí)例變量來存儲(chǔ)對(duì)LocationManager的引用,啟動(dòng)手機(jī)基于位置的服務(wù),基于位置的服務(wù)的目的是確定設(shè)備的物理位置;Location location=locationManager.getLastKnownLocation(provider)語句通過對(duì)實(shí)例變量locationManager的引用獲得手機(jī)內(nèi)部最新的GPS數(shù)據(jù),并存儲(chǔ)在location變量中;最后一條語句updateWithNewLocation(location)用來對(duì)手機(jī)內(nèi)部存儲(chǔ)的GPS數(shù)據(jù)信息進(jìn)行更新,以獲得最新的位置信息。
    在兒童和父母端的手持監(jiān)護(hù)終端上分別內(nèi)置了一個(gè)GPS信號(hào)接收機(jī)。由于GPS衛(wèi)星發(fā)送的導(dǎo)航定位信號(hào)是一種可供無數(shù)用戶共享的信息資源,對(duì)于陸地、 海洋和空間的廣大用戶,只要擁有能夠接收、跟蹤、變換和測(cè)量GPS信號(hào)的接收設(shè)備(即GPS信號(hào)接收機(jī)),就能夠獲取當(dāng)前的位置信息。利用GPS信號(hào)接收機(jī)將接收到的GPS信號(hào)轉(zhuǎn)化為GPS經(jīng)緯度數(shù)據(jù),并以TTL電平格式輸出,然后由單片機(jī)I/O口對(duì)其進(jìn)行讀取并進(jìn)行進(jìn)一步的處理。GPS模塊的電源引腳連接到單片機(jī)的VCC與GND引腳上,用以給GPS模塊進(jìn)行供電;GPS模塊的通信引腳連接到單片機(jī)的40與41引腳上,也就是單片機(jī)的異步串行接口RXD0、TXD0,GPS模塊通過這兩個(gè)引腳進(jìn)行數(shù)據(jù)的收發(fā),電平傳輸格式為TTL電平格式。
    當(dāng)系統(tǒng)獲得子機(jī)與母機(jī)的GPS數(shù)據(jù)后,通過一系列算法求得子機(jī)與母機(jī)之間的實(shí)際距離與方位角。具體算法是:由于地球表面無比巨大,將地表看作是一個(gè)平面,將地球的經(jīng)度當(dāng)做這個(gè)平面的Y坐標(biāo),將緯度看做是X坐標(biāo)。當(dāng)獲得了子機(jī)與母機(jī)的經(jīng)緯度數(shù)據(jù)時(shí),實(shí)際上就獲得了它們的橫縱坐標(biāo),通過勾股定理計(jì)算距離,通過三角函數(shù)關(guān)系計(jì)算方位角。為求出兩點(diǎn)之間的實(shí)際距離與相對(duì)角度,首先需要求出其中一點(diǎn)相對(duì)于另外一點(diǎn)在經(jīng)度方向上和緯度方向上的距離,也就是兩條直角邊的長度。而這兩條直角邊的長度可以通過兩點(diǎn)之間的經(jīng)度差和緯度差分別乘以兩點(diǎn)相對(duì)于地球軸心和地球球心半徑來獲得,當(dāng)獲得了兩條直角邊的長度后,兩點(diǎn)之間的實(shí)際距離也就是斜邊的長度。具體的計(jì)算過程如下:
    
其中,α1、α2、β1和β2分別是兩點(diǎn)的緯度值和經(jīng)度值,α為兩點(diǎn)的平均緯度值,OA、R分別為兩點(diǎn)到地球軸心和球心的半徑,AC、BC為兩點(diǎn)在經(jīng)度方向和緯度方向上的距離。
2.2 數(shù)據(jù)傳輸
    子機(jī)與母機(jī)之間的通信可以通過兩種模式進(jìn)行,分別是GSM短信息傳輸模式與無線信號(hào)傳輸模式。相應(yīng)地,為了與母機(jī)完成通信,在子機(jī)上分別使用了SIM300C GPRS帶協(xié)議模塊與APC240無線模塊。
    在父母端的智能手機(jī)上開發(fā)了一個(gè)兒童防走失系統(tǒng)配套軟件,當(dāng)父母使用手機(jī)查詢孩子的位置時(shí),將會(huì)發(fā)送一條含查詢指令的短信到子機(jī),子機(jī)上的SIM300C模塊接收到短信后會(huì)向單片機(jī)發(fā)送一條指令,單片機(jī)接收到指令后會(huì)對(duì)短信進(jìn)行讀取,然后根據(jù)短信內(nèi)容作出相應(yīng)動(dòng)作。短信發(fā)送程序代碼如下:
    SmsManager smsManager=SmsManager.getDefault();
    smsManager.sendTextMessage(mobile,null,content,null,null);
    其中SmsManager smsManager=SmsManager.getDefault()用來添加一個(gè)實(shí)例變量來存儲(chǔ)對(duì)SmsManager的引用,啟動(dòng)手機(jī)基于短信功能的服務(wù);smsManager.sendTextMessage
(mobile,null,content,null,null)語句引用SmsManager下的發(fā)送短信功能來發(fā)送指令,其中括號(hào)內(nèi)第一個(gè)參數(shù)為要發(fā)送到手機(jī)的電話號(hào)碼,第三個(gè)參數(shù)為發(fā)送的具體內(nèi)容。
    兒童手持終端中GSM通信部分電路圖如圖2所示。其中左半部分為通信指示燈部分,右半部分為SIM300C模塊與SIM卡的引腳定義。

    當(dāng)父母使用手持終端機(jī)時(shí),將通過普通無線通信的方式進(jìn)行數(shù)據(jù)傳輸。首先由單片機(jī)讀取所需的各種信息,包括GPS數(shù)據(jù)信息與指令信息等,再通過其I/O口將數(shù)據(jù)信息傳遞給無線模塊,由無線模塊進(jìn)行數(shù)據(jù)傳輸。圖3所示為兒童端電路板上的無線發(fā)射部分電路圖(左側(cè)僅畫出發(fā)送部分電路使能圖,接收部分未畫出)。由于整個(gè)板子上共有三處需要使用到串行接口,分別是無線通信部分、GSM通信部分和GPS數(shù)據(jù)收發(fā)部分,而ATMEGA64單片機(jī)只有兩個(gè)串行接口,所以將RXD1與TXD1作為了復(fù)用串口,通過使能端EN_A或EN_B來選擇使用無線通信或是GSM通信。

 

 

2.3 父母端手機(jī)軟件開發(fā)
    正如之前所說,在父母端的智能手機(jī)上開發(fā)了一個(gè)兒童防走失系統(tǒng)配套軟件。父母可以將采用Android操作系統(tǒng)的手機(jī)與子機(jī)配套使用。Android是一個(gè)開源的軟件棧,它包含了操作系統(tǒng)、中間件和關(guān)鍵的應(yīng)用程序,以及一組用于編寫移動(dòng)應(yīng)用程序的API庫。Android通過提供一個(gè)以開源的Linux內(nèi)核為基礎(chǔ)而構(gòu)建的開放的開發(fā)環(huán)境。通過一系列API庫,所有應(yīng)用程序都可以對(duì)硬件進(jìn)行訪問,并且可以在嚴(yán)格受控的條件下完全支持應(yīng)用程序之間的交互[2]。
    當(dāng)父母使用智能手機(jī)與子機(jī)通信時(shí),將會(huì)通過GSM短信息的方式與子機(jī)進(jìn)行數(shù)據(jù)傳輸。利用手機(jī)內(nèi)置的GPS芯片獲取自身的GPS數(shù)據(jù),通過處理子機(jī)傳送過來的GPS數(shù)據(jù)與自身的GPS數(shù)據(jù)來判斷孩子是否處于安全范圍以內(nèi)并顯示兩者之間的相對(duì)位置關(guān)系,或是采用Google地圖的形式來顯示兩者的具體位置。
      手機(jī)軟件部分的主要功能有:(1)主動(dòng)查詢孩子當(dāng)前位置;(2)距離可控定時(shí)查詢報(bào)警;(3)圖形顯示孩子當(dāng)前位置;(4)修改默認(rèn)號(hào)碼等。使用時(shí),首先進(jìn)入主界面,在主界面上可以完成設(shè)置默認(rèn)號(hào)碼、查詢子機(jī)位置、設(shè)置自動(dòng)報(bào)警參數(shù)等功能。其中,默認(rèn)號(hào)碼一旦設(shè)定成功,以后每次開機(jī)或是打開軟件將不必重新設(shè)定目標(biāo)電話號(hào)碼;自動(dòng)報(bào)警模式設(shè)置成功后手機(jī)將會(huì)自動(dòng)每隔一段時(shí)間查詢一次子機(jī)位置,并根據(jù)設(shè)定好的安全距離判斷孩子是否在安全范圍以內(nèi);當(dāng)點(diǎn)擊查詢按鍵時(shí),首現(xiàn)出現(xiàn)的將會(huì)是十字坐標(biāo)形式的顯示模式,顯示兒童相對(duì)于自己當(dāng)前的位置,同時(shí)可點(diǎn)擊切換Google地圖按鍵,切換到Google地圖顯示模式,顯示具體街道信息。并顯示具體距離和相對(duì)方位,手機(jī)部分具體的功能流程圖如圖4所示。

    正如之前剛剛提到的,兒童的位置信息有兩種顯示方式,分別是十字坐標(biāo)顯示和Google地圖顯示。在十字坐標(biāo)顯示中,以父母的位置為原點(diǎn)建立十字坐標(biāo)系,將孩子對(duì)父母的相對(duì)位置標(biāo)注在坐標(biāo)系上,同時(shí)用文字標(biāo)注出孩子相對(duì)于父母的方位角與實(shí)際距離,方便父母尋找孩子;而在Google地圖顯示當(dāng)中,首先在屏幕中添加一個(gè).MapView控件,用以調(diào)用Google地圖,然后在地圖上加一透明的覆蓋層,將手機(jī)本身和子機(jī)的經(jīng)緯度數(shù)據(jù)傳入地圖,在實(shí)際的位置上標(biāo)注出孩子與父母的位置,幫助父母更直觀地了解到孩子的位置。
      正如之前所列出的一樣,兩種圖形顯示各有其優(yōu)缺點(diǎn):十字坐標(biāo)顯示響應(yīng)快速直觀,能夠在第一時(shí)間指明孩子方位,而Google地圖的顯示需要更大的數(shù)據(jù)量,所以在響應(yīng)速度方面會(huì)有一些滯后;但是Google地圖顯示能夠告知父母孩子的準(zhǔn)確位置,這是坐標(biāo)顯示所無法相比的。
3 實(shí)驗(yàn)結(jié)果及分析
    實(shí)際測(cè)量時(shí)有很多因素都會(huì)影響到GPS的準(zhǔn)確率,以下列舉一些引入GPS誤差的因素:(1)衛(wèi)星時(shí)鐘誤差:0~1.5 m;(2)衛(wèi)星軌道誤差:1~5 m;(3)電離層引入的誤差:0~30 m;(4)大氣層引入的誤差:0~30 m;(5)接收機(jī)本身的噪音:0~10 m;(6)多路反射:0~1 m。
    理論分析GPS定位誤差最大約為28 m。
    實(shí)際情況下,在某一點(diǎn)做長時(shí)間連續(xù)測(cè)量記錄,并分析在同一點(diǎn)上經(jīng)緯度數(shù)據(jù)的變化量,如表1所示。
    選取上述數(shù)據(jù)的兩個(gè)極限值,然后由兩點(diǎn)經(jīng)緯度計(jì)算出兩點(diǎn)距離,計(jì)算結(jié)果如表2所示。
    由表2可以看出,在某一點(diǎn)做長時(shí)間測(cè)量,其誤差的最大值為8.5 m,遠(yuǎn)小于上述總定位誤差28 m,而且實(shí)際測(cè)量值應(yīng)該落在以實(shí)際測(cè)量點(diǎn)為圓心,以8.5 m為半徑的圓內(nèi),所以GPS的定位誤差是可以接受的。

    經(jīng)過大量試驗(yàn)驗(yàn)證,系統(tǒng)的各項(xiàng)功能均滿足設(shè)計(jì)要求,系統(tǒng)整體性能穩(wěn)定。但與此同時(shí),系統(tǒng)在GPS定位精度、外觀等方面還存在不足,有待于進(jìn)一步提高。
    基于單片機(jī)控制的多功能兒童防走失系統(tǒng)的大部分操作屬于被動(dòng)操作,便于兒童使用;另外系統(tǒng)通過GPS信號(hào)進(jìn)行處理,不但能夠判斷距離的遠(yuǎn)近,同時(shí)還可以指出具體的方向,且系統(tǒng)誤差小于8 m;同時(shí),雙模式的工作方式使得系統(tǒng)適合多樣的場(chǎng)合,適應(yīng)性更強(qiáng),有很好的市場(chǎng)推廣價(jià)值。
參考文獻(xiàn)
[1] 李天文.GPS原理及應(yīng)用[M].北京:科學(xué)出版社,2010.
[2] MEIER R.Android高級(jí)編程[M].北京:清華大學(xué)出版社,2010.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。