APP下载

基于STM32防丢器的设计与实现

2016-07-10张敏王宁刘赛

电子技术与软件工程 2016年8期

张敏 王宁 刘赛

摘 要:设计一款以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