范兵兵 艾信友 曾研 胡凱旋 任澤明
摘 要:文章設計了基于STM32和SIM卡基站定位的位置定位系統。首先,在開機后,使用者需要向SIM900A模塊的SIM卡發送短信,該短信的內容為使用者的手機號碼。STM32單片機接收各傳感器采集的數據并處理分析后,通過SIM900A短信、GSM、GPRS模塊將位置信息以短信的方式發送到手機,同時操作者通過手機瀏覽器瀏覽http://gpsspg.com/bs.htm網站查詢基站定位所獲得位置的地圖,從而知道具體位置。
關鍵詞:SIM900A;基站定位;STM32F407;定位系統
中圖分類號:TN967.1 文獻標志碼:A 文章編號:2095-2945(2018)12-0090-02
Abstract: A position location system based on STM32 and SIM card is designed in this paper. First, after the boot, the user needs to send a short message to the SIM card of the SIM900A module, the content of which is the mobile phone number of the user. After receiving and analyzing the data collected by each sensor, STM32 microcontroller sends the position information to the mobile phone by SMS, GSM and GPRS module. At the same time, the operator browses the http://gpsspg.com/bs.htm website through the mobile phone browser to query the map of the location of the base station, so as to know the specific location.
Keywords: SIM900A; base station positioning; STM32F407; positioning system
引言
隨著社會老齡化越來越嚴重,越來越多的老人患老年癡呆癥,越來越多的老人走丟,而老人的子女等監護人沒有那么多的時間照看老人;而市面上的老人防走丟的定位系統售價很高。為了防止老人走丟和一定程度上解放老人的子女等監護人,讓更多的普通家庭也能享受到科技進步帶來的福利,設計出一個穩定、安全、可靠實用、便攜、便宜的定位系統就具有很高的實用價值。
1 系統概述
該系統以STM32F407微控制器為核心,SIM900A為定位數據的采集端和信息發送端,Android手機為顯示終端。總體設計如圖1所示。
2 原理
2.1 基站定位原理
基站定位的原理為:不同基站測量移動電話的下行導頻信號,得到不同基站下行導頻的到達時刻或到達時間差,根據該測量結果和不同基站的坐標,采用相應的三角公式估計算法,就能夠計算出移動電話的大致位置。實際的位置估計算法需要考慮多基站(3個或3個以上)定位的情況,因此算法相對復雜。根據原理,參與測量的基站數目越多,測量所得位置精度越高,定位性能改善越明顯。而在城市之中,通信基站較多,可以確保基站定位精度在10米左右。
本文是實現患有老年癡呆癥的老人的位置定位,由于老人處在相對安全的城市中,不需要位置精確到米,符合需求。由于基站定位已經由運營商實現,本文任務就是獲得運營商測得位置,相對而言較為簡單,所以本系統采用基站定位。
2.2 系統實現原理
SIM900A模塊獲取SIM卡的基站位置信息,然后在STM32F407微控制器的控制下,將位置信息發送到手機端。
3 硬件設計
該系統硬件設計主要包括STM32F407微控制器模塊、電源模塊、SIM手機卡的SIM900A模塊。
3.1 微控制器模塊
微控制器模塊采用以意法半導體公司的 STM32 F407為核心的單片機最小系統,以接收SIM900A模塊采集的位置信息和其它數據,并對數據進行相應處理和發送。
3.2 電源模塊
該系統電源采用專用電源的方式,用紐扣電池經過AMS1117穩壓芯片穩壓后的電壓,為不同對象模塊提供相匹配的電源。
3.3 傳感器模塊
該系統信息采集部分只含有SIM900A模塊。插入SIM手機卡后,在SIM卡連接到網絡后,SIM900A模塊可以通過基站定位方式得到得該SIM卡的位置數據,然后將位置數據以SPI串口傳輸方式傳輸到STM32F407單片機,在經過STM32F407單片機的數據處理后,再通過短信的方式將該SIM卡位置的國家代碼、運營商代碼、位置區號碼、當前服務區號等信息發送到手機。
SIM900A模塊:
SIM900A是可以通過插入SIM卡實現手機功能的產品。它屬于雙頻的GSM/GPRS模塊,采用的是普遍的SMT封裝形式,其性能穩定,外觀小巧,性價比高,能滿足本系統對于與手機通信的各種需求。
另外,SIM900A的封裝尺寸的大小為24×24×3mm,體積相對較小,可以符合本系統中關于便攜式的要求。SIM900A可以通過AT控制指令以SPI串口通信方式進行控制。
4 軟件設計
該系統軟件部分采用的編程語言為C 語言。首先,對進行SIM900A模塊進行初始化,檢測SIM卡是否存在,檢測到存在后通過AT指令獲得初始地址信息。然后,等待手機向SIM卡發送號碼的短信,在發送短信后,STM32單片機對SIM900A模塊發出指令,采集SIM卡的位置數據,在SIM900A模塊將采集到位置數據傳輸到STM32單片機后,對位置信息進行判斷,當前的位置數據與前一次正確的位置數據不同,確實發生改變時(連續進行三次相同判斷,防止出現錯誤數據)。將改變后的數據通過短信發送到手機上,然后手機通過瀏覽器查詢定位位置。
4.1 系統主程序流程圖(見圖2)
4.2 數據處理
因為傳感器在工作工程中存在不可消除的干擾,所以在本系統可能會出現錯誤的位置信息,而且,老人行動緩慢,在正常情況下SIM卡不可能出現快速位置變化,所以,在確定位置區號和服務區號是否改變時,需要進行三次位置信息的判斷。
只有經過三次判斷后符合條件,確實出現位置改變時,STM32F407微控制器才通過SIM900A模塊向手機發送改變后的位置信息的短信,否則舍棄本次錯誤數據繼續監聽下次的位置數據,重復此過程。
5 結束語
該系統在實際的聯調中,軟件和硬件運行穩定,實現了對老人位置的有效定位和發送短信,符合預期的設計目的。在實際應用中,該系統具有價格低廉、實現簡單、操作簡單、便攜的特點,適合普通家庭和老人消費,具有應用價值。
參考文獻:
[1]馬忠梅.ARM Cortex核TI微控制器原理及應用[M].北京:北京航空航天大學出版社,2011.
[2]劉火良.STM32庫開發實戰指南[M].北京:機械工業出版社,2015.
[3]張洋.原子教你玩STM32(庫函數版)(第二版)[M].北京:北京航空航天大學出版社,2015.