張敏 王寧 劉賽


摘 要:設計一款以STM32為核心控制核心的防丟器。STM32獲取GPS實時位置坐標,并控制GSM模塊把坐標信息傳遞給服務器。服務器通過TCP監聽,獲取并處理硬件的位置信息,通過算法實現百度地圖實時查看位置信息。
【關鍵詞】STM32 百度地圖 GSM GPS
1 引言
中國已開始進入老齡化社會,家有一老如有一寶。上了年紀的老年人,難免會有走失的危險,為節省社會資源,防止老人頻繁走失。為了找到一個合適的方法,本項目研究了一款智能防丟器,用戶可以更直觀看出自身和目標的距離,并且防止老人、兒童、寵物走失以及行李等物品被竊等。
本文設計制作便攜式GPS電子追蹤器,是一款基于STM32的防丟器原型機,實驗者可通過手機或電腦,實時跟蹤接收衛星的數據和跟蹤定位。在電腦屏幕上,實時同步顯示,實驗者可在電腦屏幕上顯示坐標,并能在手機屏幕上呈現出電子地圖和路線,并能在硬件不被供電的情況下,通過識別標簽,訪問到用戶信息。
擬解決的關鍵問題:
(1)stm32芯片功能應用。
(2)通過addGPSPosMarker調用百度API將地理坐標顯示在地圖上。
(3)通過SQL語句將收到的數據實時保存到數據庫和將所需的數據調用出來。
(4)使用eclipse軟件編寫手機app軟件。
2 防丟器的結構
防丟器以STM32為核心,外圍電路由SIM900A型GSM模塊、GPS模塊、LCD液晶、串口組成。圖1是系統結構圖,STM32利用UART3獲取到GPS當前位置信息,通過內部DMA傳遞給UART2,信息由UART2直接傳遞給SIM900A,SIM900A利用TCP協議把位置信息上傳到服務器。STM32內部的FSMC可以驅動LCD顯示,經過內部處理當前位置信息也在LCD上實時顯示,也可以利用UART1把數據發送到電腦上,利用電腦處理當前位置信息。
3 服務器搭建
服務器使用Tomcat搭建,使用eclipse編寫服務器源碼,把服務器源碼運行在Tomcat上去。服務器結構如圖2所示,服務器通過TCP線程監聽端口,檢測是否有硬件進行連接,當有硬件連接時數據以json的格式被數據庫獲取,位置信息被處理過后直接傳遞到百度地圖,利用JSP技術把地圖顯示到網頁上去。
Tomcat服務器是一個免費的開放源代碼的Web應用服務器,屬于輕量級應用服務器,在中小型系統和并發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP程序的首選。對于一個初學者來說,可以這樣認為,當在一臺機器上配置好Apache服務器,可利用它響應HTML(標準通用標記語言下的一個應用)頁面的訪問請求。
TCP負責發現傳輸的問題,一有問題就發出信號,要求重新傳輸,直到所有數據安全正確地傳輸到目的地。本設計利用TCP連接到服務器,把數據進行實時傳輸。百度地圖提供了很多豐富的接口,開發十分簡單,地圖需要一個HTML元素作為容器,這樣才能展現到頁面上。這里我們創建了一個div元素并制定它的大小。地圖會根據容器大小調整自身尺寸。利用百度地圖API,可以與其進行交互了。API中的地圖對象的外觀與行為與百度地圖網站上交互的地圖非常相似。它支持鼠標拖拽、滾輪縮放、雙擊放大等交互功能。服務器接收硬件上傳的數據如圖3,可以看到longitude=11620.403920,即經緯度分別為116.2,40.392,當前的位置在北京城市學院,參看谷歌地圖得到的位置坐標,由于民用GPS有一定誤差,因此得到的結果還可以接受。
設計使用5V直流供電,電源經降壓模塊后為STM32供電,硬件上電后首先進行硬件初始化如圖4所示,硬件初始化,包括時鐘、管腳、定時器、UART等硬件片上資源初始化,接著初始化SIM900A,SIM900A使用串口AT指令,程序首先檢查SIM900A是否存在,如果存在則使用AT指令對其進行初始化,并連接遠程服務器,發送測試代碼,服務器連接成功后,開始對GPS進行初始化,GPS是直接接收數據,利用DMA片內外設進行操作,當有GPS數據時,DMA進入中斷,數據會被系統讀取,讀取到的數據后,SIM900A進入透傳模式(即所發即所得),服務器收到的數據就是GPS回傳的當前位置信息。服務器收到消息判斷為有效消息,則通過JSON方法,把全部GPS信息讀取出來,然后賦給用戶對象,然后利用百度地圖API進行數據處理,這樣之后就得到了用戶的位置信息。當用戶進行查詢時,使用JSP技術就可以把當前所在百度地圖上的信息展示出來。
軟件實現過程中使用到了STM32的UART2和UART3,波特率分別為115200和9600,SIM900A使用串口時需要打開中斷進行數據接收的處理,GSM直接接收數據,
4 結束語
本文給出了STM32、GSM、GPS實現防丟器硬件的設計,利用網絡把GPS坐標傳遞到百度地圖,通過服務器的處理最終把位置信息在地圖中實時顯示出來。得到的坐標信息可以做后續的電子柵欄、測距該、測速等應用以及APP開發,本設計已經完成實物的測試,并取得滿意的效果。
參考文獻
[1]張洋,劉軍,嚴漢宇.原子教你玩STM32[M].北京:北京航空航天大學出版社,2013.
[2]郭天祥.新概念51單片機C語言教程—入門、提高、開發、拓展全攻略[Z].2009.
作者單位
北京城市學院 北京市 102206