版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学院(部)电子信息学院题 目基于SIM868的定位系统设计目 录摘 要1Abstract2第一章 绪 论31.1 课题背景31.2 研究目的与意义31.3 国内外研究现状31.4 论文结构安排5第二章 定位系统硬件设计62.1系统硬件整体设计概述62.2系统组成62.2.1 SIM868模块62.2.2 STM32F103系列微控制器82.3 硬件连接设计8第三章 定位系统软件设计103.1 GPS定位原理103.2 GPS数据格式103.3 GPS数据获取与处理123.3 AT指令流程143.4 发送数据至OneNET153.4.1 OneNET设备接入153.4.2 程序写入设备ID和AP
2、I KEY163.5软件总体设计方案及流程图16第四章 APP开发184.1 申请高德地图API Key184.2 高德地图SDK工具包添加194.3 显示地图204.4 经纬度位置标记224.5 辅助定位功能添加234.6 APP运行流程图24第五章 系统调试和实验结果265.1 实物展示265.2 系统调试265.3 实验结果28第六章 总结与展望30参考文献31致 谢33附 录34摘 要随着生活水平的提高、社会的进步,人的平均寿命逐渐增长,老年群体愈发庞大。随着年龄的增长,老年人的身体会出现各种各样的状况,有关大脑的问题众多,老人出现“痴呆”现象,从而导致走失事件频发,因此研究防老人走失
3、的定位装置具有现实意义。本系统拟设计一款可穿戴式设备用来实时定位老人位置,子女可通过手机APP查看老人位置,以此防止老人走丢。本文重点介绍了如何使用SIM868模块获取GPS定位信息并上传数据至服务器端,以及在手机app端查看位置信息的方法。通过学习SIM868模块的使用和工作原理以及完善的软硬件设计,成功达到预期的实验结果。本系统设计以ST(意法半导体)公司的使用ARM内核的STM32F103系列微控制器为主控核心,定位模块使用SIM868模块 ,手机APP使用Android Studio进行开发,主要功能为显示地图与位置信息。关键字:GPS定位;SIM868模块;SIM32F103系列微控
4、制器;手机APP AbstractWith the improvement of living standards and social progress, the average life expectancy of people is increasing gradually, and the elderly population is becoming larger and larger. As the growth of the age, the body old old people will appear a variety of condition, many questions
5、 about the brain and the old man appear "dementia" phenomenon, resulting in lost happened frequently, so the old man lost prevention positioning device has a realistic significance. The system intends to design a wearable device to locate the elderly in real time, and the children can chec
6、k the location of the elderly through the mobile APP to prevent the old man from getting lost. This article focuses on how to use the SIM868 module to obtain GPS location information and upload data to the server side, as well as to view location information on the mobile app. Through learning the u
7、se and working principle of SIM868 module and perfect software and hardware design, the expected experimental results are achieved successfully. The system is designed to use the STM32F103 series micro controller of ARM kernel as the main control core, and the positioning module USES the SIM868 modu
8、le. Mobile APP is developed with Android Studio, and the main function is to display the map and location information.Keywords: GPS positioning ;SIM868 module; SIM32F103 series micro controller;Mobile APP 第1章 绪 论 1.1 课题背景根据相关调查数据显示,每年全国走失老人约有50万人,而平均每天就约有1370名老人走失;从年龄上看,65岁以上老人容易走失,比例达到80%以上;迷路、精神疾病
9、和老年痴呆是老人走失的重要原因21。根据最新人口统计数据,我国老龄化现象严重,老年人占总人口的比例在不断提高。面对人口老龄化的现状,养老产业将迎来最大机遇和挑战老人数量增加,养老机构服务人员有限,如何提高自身服务水平、保障老人健康的问题被提上日程。目前,老年人的安全健康成为社会关心的一大热点,老年人走丢、迷路的事件在生活中时常发生。老年人走失问题如今已成为社会亟待解决的问题。 1.2 研究目的与意义面对如今老人走失问题严重这一现状,社会迫切需要改变这一现状的方法,最合理的方法便是子女或看护人员能够在第一时间知道老人的位置来防止走丢。本课题源于“老人健康监护定位手环”,目前带有定位功能的儿童手表
10、已经得到大多数家长的选择,但是子女对老人的看护明显不足,针对老年人的可穿戴定位装置市场上不是很多。在此基础上,本系统拟设计一款针对老年人的可穿戴式定位设备,能够实时上传老人所处位置信息,并且子女或看护人员可以在手机APP端查看老人位置。通过对本系统的研究,希望能够找到有效解决老年人走失问题的方法,保障老年人的健康,推动养老产业的不断完善。1.3 国内外研究现状现在市面上有很多GPS定位器,例如天眼星GPS定位器,把控制定位器的软件下载到手机里面就可以实时监控老人的活动情况,还有把老人经常活动的范围设置成围栏,老人只要走出这个范围监护人电话就会收到报警短信,防止老人走失等功能。目前已知针对如何快
11、速有效了解老人的位置,上海美迪索科公司基于定位技术采取以下几种方案(1)老人监测系统:通过老人携带智能手环,记录老人实时位置和活动轨迹,手环内置GPS/北斗/蓝牙/惯导等融合定位模块,实现室内外无缝定位,实现室内高精度定位;手环植入健康监测模块,监测老人身体健康状况,包括心跳、血氧、血压等一系列数据,一旦数据异常,系统后台警报,护理人员可以立刻获取健康状况异常的老人位置等信息、并根据信息采取最及时有效的护理措施。(2)智能养护系统 :机构各区域设置电子围栏,老人一旦离开电子围栏区域,系统报警并触发视频联动,有效降低失智老人走失情况;护理人员携带移动智能终端,内置定位模块,方便机构管理层快速调度
12、人员、实现线上考勤、电子点名等;智能终端接入老人监测系统,在老人出现紧急状况时,终端提醒并弹出位置信息,护理人员第一时间赶至现场。1.4 论文结构安排本论文共分为六个章节:第一章绪论主要介绍本课题的研究背景与目的以及国内外的研究现状;第二章定位系统硬件设计,详细介绍硬件整体设计方案、硬件各模块工作原理和电路以及硬件连接设计;第三章定位系统软件设计,详细介绍GPS定位原理和数据格式、SIM868模块的AT指令、服务器设备接入以及软件流程图;第四章APP开发,详细介绍本系统APP的制作过程;第五章系统调试与实验结果,介绍本系统调试过程以及实验结果展示;第六章总结与展望,主要总结自己在毕设过程中遇到
13、的问题与收获以及展望以后的学习。第2章 定位系统硬件设计2.1 系统硬件整体设计概述本系统以STM32单片机作为MCU即主控核心,采用SIM868定位模块,GPRS通信模块,云端服务器使用现有服务器,手机APP端查看位置。硬件部分总体设计方案如图2-1所示手机云端可穿戴终端设备地图显示位置获取定位信息APP服务器SIM868AT指令控制访问获取经纬度GPRS通信上传数据STM32F103图2-1 硬件部分总体设计方案图STM32F103对SIM868模块发送一系列AT指令控制,SIM868模块接收GPS信号,当接收到足够的GPS信号后,SIM868可获取定位信息,然后连接服务器,进行GPRS通
14、信,将获取到的定位数据发送至服务器,手机APP端调用地图,根据从服务器端获取的经纬度将位置在地图上标注出来。2.2系统组成2.2.1 SIM868模块SIM868模块工作频段为GSM850/900/1800/1900MHz,除了支持语音、GPRS数据传输、蓝牙、GPS定位等功能,还支持GPS、北斗和GLO三大定位系统,现在还免费提供支持基站定位主要应用于公共交通、共享单车等远程通讯设备。SIM868模块共有77个引脚,本设计中主要会用到SIM868模块中的GSM模块(单片机与SIM868串口通信,实现AT指令控制)、GPS模块(获取定位信息)以及GPRS模块(GPRS通信上传数据)。SIM86
15、8模块引脚图如图2-2所示:图2-2 SIM868模块引脚图SIM卡座是用来插入 SIM 卡的。SIM868模块不支持电信卡,最好使用GSM(2G)卡,但是现在基本上不使用2G 卡,本系统设计中使用的是移动4G卡,目前的 3G/4G 卡可以兼容以前 2G卡的 GSM/GPRS 功能。模块开机按键,将该按键按下 1秒以上,接着松开,就能够打开模块。然后在打开的状态下,再将该按键按下 1秒以上,就能够将模块关机。模块的工作状态可以通过模块状态指示灯(NET_STA)来查看。LED 指示灯状态模块工作状态熄灭 模块关机,未工作闪烁:亮60毫秒/熄灭800毫秒 模块没有找到服务(GSM 卡无服务)闪烁
16、:亮60毫秒/熄灭3000毫秒 模块找到服务,接收到服务信号闪烁:亮60毫秒/熄灭300毫秒 模块正在进行 GPRS 通信2.2.2 STM32F103系列微控制器本设计采用STM32F103微控制器来实现对系统的控制,系统整体需用到STM32F103微控制器的GPIO模块、UASRT(通用同步/异步串行收发器)、DMA控制器以及定时器,硬件上需要用到STM32单片机的电源、时钟电路、程序下载电路和复位电路。USART(通用同步/异步串行收发器)是一种能够把二进制位数据按位传送的通信装置,其主要功能是在输出数据时,把数据进行并/串转换,在输入数据时,把数据进行串/并转换。STM32单片机一共有
17、3个USART(USART1、USART2和USART3)和2个UARTT(UART1、UART2)4。 STM32单片机上可以看到很多I/O口,内部也有很多片内外设,片内外设一般会与I/O口公用引脚以此来节省硬件空间,这种方式被称为引脚复用5。本系统中I/O口引脚的复用引脚,用于发送AT指令到SIM868并返还指令状态;PA10为USART1_RX的复用引脚,用于接收SIM868获取的定位数据。2.3 硬件连接设计5V根据STM32F103微控制器和SIM868模块的原理图以及片内外设的引脚复用状态,拟设计如图2-3所示的连接方式PA3/USART2_RXV_INU_TXSTM32PA10/
18、USART1_RXPA2/USART2_TXSIM868GPS_TXU_RX3.3VV_IOGNDPWKGNDGND图2-3 STM32F103与SIM868连接图PA2、PA3作为USART2_TX和USART2_RX的复用引脚连接至SIM868的U_RX和U_TX使STM32F103可以发送AT指令至SIM868并返还指令执行状态;PA10作为USART1_RX的复用引脚连接至SIM868的GPS_TX可获取SIM868的定位数据。此时单片机通过USB线连接至电脑可在串口调试助手中查看调试信息(调试内容将在后面章节详细讲解)。注:当STM32F103连接电脑由电脑供电时,V-IN到5V的连
19、接线不可接,否则会导致短接烧坏板子;SIM868模块 DC 接口外部输入工作电压为直流6v-24v,并且保证给提供足够的2A 电流(实验过程中遇到SIM卡无法识别和GPRS通信的问题,原因即是未能提供足够2A的电流)本设计选用DC9V1A的电源供电。 第3章 定位系统软件设计3.1 GPS定位原理GPS是Global Positioning System(全球定位系统)的简称。利用GPS定位卫星,在全世界范围内实时进行定位、导航的系统,称为全球卫星定位系统,简称GPS1。GPS是一种具有全方位、全天候、全时段、高精度的卫星导航系统,能为全球用户提供成本低、精度高的三维位置、速度和准确定时等信息
20、。它的原理是测量出位置已知的卫星到信号接收机之间的距离,然后结合不同卫星的数据就可知道接收机的具体位置。GPS导航系统卫星部分的作用就是不断地发射导航电文。然而,由于用户接受机使用的时钟与卫星星载时钟不可能总是同步,所以除了用户的三维坐标x、y、z外,还要引进一个t即卫星与接收机之间的时间差作为未知数,然后用4个方程将这4个未知数解出来。所以如果想知道接收机所处的位置,至少要能接收到4个卫星的信号。用户设备部分即GPS信号接收机。当接收机捕获到跟踪的卫星信号后,就可测量出接收天线至卫星的伪距离和距离的变化率,解调出卫星轨道参数等数据。根据这些数据,接收机中的微处理计算机就可按定位解算方法进行定
21、位计算,计算出用户所在地理位置的经纬度、高度、速度、时间等信息。GPS定位有如下特点:(1)全球全天候定位(2)定位精度较高(3)观测时间短(4)设备操作起来简便。随着GPS技术的不断提升,GPS测量简易性越来越高(5)可提供全球统一的三维地心坐标(6)应用广泛3.2 GPS数据格式 NMEA 0183协议是国际海运事业无线电技术委员会(RTCM)为GPS导航技术设定的标准协议。NMEA 0183的接收速度为4800bps。NMEA0183协议是通过ASCII码来获得GPS定位数据的2。在本系统中将SIM868模块通上电源之后,将其放在室外或用GPS天线引出室外,能够通过串口调试助手查看SIM
22、868模块所接收到的定位数据。本系统设计需要采用的数据格式为$GNRMC,其格式如下: $GNRMC,161229.48,A,3723.24757,N,12158.34167,W,0.13,309.62,110518,*10,<CR><LF>。可知采用的数据格式为$GNRMC。161229.48表示的是UTC时间,UTC时间即协调世界时,也就是经度为零度的位置的时间,UTC时间加8小时可得到北京时间。A表示的是定位状态的数据有效,如果显示的是V,则表示定位状态的数据无效。3723.24757表示的是纬度信息,N则表示为北
23、纬,S为南纬。12158.34167表示的是经度信息,W表示为西经,E为东经。110518则表示的是日期为18年05月11日。3.3 GPS数据获取与处理STM32F103微控制器可通过USART1通信获取的SIM868模块的定位数据,本系统软件设计中,通过对USART1接收到的字符串进行判断,确认是否为$GNRMC这一帧数据,当确认是时,进行数据保存以及后续处理,程序如下:if(USART_RX_BUF0='$'&&USART_RX_BUF4='M'&&USART_RX_BUF5 = 'C')/确定是否收到&qu
24、ot;GPRMC/GNRMC"这一帧数据memset(Save_Data.GPS_Buffer,0,GPS_Buffer_Length); memcpy(Save_Data.GPS_Buffer, USART_RX_BUF, point1); /保存数据Save_Data.isGetData = true; memset(USART_RX_BUF, 0, USART_REC_LEN); /清空在串口调试助手查看定位数据可发现显示的经纬度与实际日常使用经纬度有所区别,所以需要加入数据处理的部分,将GPS经纬度参数转化为实际经纬度(这里将$GNRMC中的经纬度称作GPS经纬度参数,用来和
25、实际经纬度加以区别)GPS经度参数GPS纬度参数 由上节所介绍的协议可知GPS经度参数格式为(度分)格式,GPS纬度参数格式为(度分)格式,其中1度为60分3。下面以GPS经度参数为例,介绍进行数据处理,将GPS经度参数转化为实际经度的方法,GPS纬度参数转化方法与其类似不再重复。首先对GPS经度参数整数部分与小数部分进行分离,整数部分再进行%100,取出后两位的mm部分,该mm部分乘以10的n次方(n为小数部分位数),所得结果加上小数部分即为完整的mm部分,该部分乘以60再除以100即为实际经度的小数部分,整数部分进行/100即为实际经度的整数部分,两部分结合可得到实际经度。数据处理框图如图
26、3-1所示:GPS经度参数整数小数分离 小数部分整数部分%100后两位mm部分乘以10的n次方相加/100完整的mm部分*6/10实际经度整数部分实际经度小数部分整数小数结合实际经度图3-1GPS数据处理框图程序段如图3-2所示:图3-2 GPS数据处理程序段3.3 AT指令流程AT指令是单片机用来控制模块和与模块间进行通信的指令。AT指令的全名为Attention。每发送一个AT命令行就代表一条AT指令 ;发送AT指令的时候,除了A和T两个字符以外,还可以最多发送1056个字符的长度(也包含最后的空的字符)7。AT指令是以AT开头,字符结束的字符串,AT指令返还数据也包括在其中。每个指令执行
27、是成功还是失败都会有相应的回应。假如AT指令执行成功了,就会返回“OK”的字符串; 假如AT 指令执行结果失败或者发生了语法上的错误, 就会返回“ERROR”的字符串。本系统中需要实现STM32F103对SIM868模块的SIM卡初始化、连接服务器以及建立GPRS通信上传定位数据的控制,主要的方法便是通过AT指令。SIM868模块提供了大量的相关的GSM AT指令集,下面将对本系统软件程序设计和调试过程中用到的AT指令及其流程进行介绍。本系统程序中,拟设计的AT指令流程如图3-3所示AT+CGCLASS=B OKAT+CGDCONT=1OKAT+CGATT=1OKAT+CIPSTART=”TC
28、P”,80CONNECT OKAT+CIPSEND>准备JSON串及HTTP报头SEND OKAT+CIPCLOSECLOSE OKAT+CIPSHUT图3-3 AT指令流程图程序设计中,通过构造sendCommand()函数来发送AT指令,构造方法如下:unsigned int sendCommand(char *Command, char *Response)Command代表AT指令的字符串,Response代表AT指令执行成功后返回的字符串。当Response为USART2接收到的字符串的子串时,函数返回Success。即if (strstr(USART2_RX_BUF, Res
29、ponse) != NULL)return Success;例如sendCommand("AT+CGATT=1rn", "OKrn")=Success代表AT指令”AT+CGATT=1”发送成功。3.4 发送数据至OneNET3.4.1 OneNET设备接入本系统使用了现有服务器OneNET服务器,OneNET是中国移动提供的一个免费的平台。该平台的一个主要功能就是能够完成硬件接入与硬件连接。本系统设计中使用的现有服务器就是OneNET服务器。 在本系统设计中,为使OneNET服务器允许接收SIM868设备发送的定位数据,需要在OneNET平台上进行部署
30、,为设备申请设备ID和API KEY,申请方法如下:(1)访问(2)选择创建产品,填写产品名称等信息,其中最主要信息是设备接入方式选择公开信息,以及设备接入协议选择HTTP(超文本传输)协议(3)产品创建完成后,可以获得为设备申请的设备ID和API KEY,如图3-4和3-5所示:图3-4 设备 ID 图3-5 API Key3.4.2 程序写入设备ID和API KEY获取设备ID和API KEY后,在程序中需将其写入来实现SIM868成功发送数据至OneNET服务器。定义字符串,存放OneNET服务器域名、设备ID以及API KEY,程序段如图3-6所示:图3-6 存放域名、设备ID、API
31、 KEY程序段在HTTP报头中添加域名、设备ID和API KEY信息,程序段如图3-7所示:图3-7 HTTP报头程序段3.5软件总体设计方案及流程图 结合上述STM32F103工作原理、SIM868模块定位原理和相关GSM AT指令集,拟如下的软件总体设计方案:单片机各模块初始化,发送AT查询指令返回以确保STM32与SIM868连接正常,发送相关AT指令初始化SIM卡模块(包括移动台类别设置和GPRS业务附着等),解析SIM868模块获取的GPS数据,建立TCP连接,连接至服务器,成功连接后进行数据发送,发送完毕关闭TCP连接。软件流程图如图3-13所示(具体程序见附录):开始STM32模
32、块初始化NAT指令成功返回?YSIM卡模块初始化N为$GNRMC格式数据?YSTM32 USART通信获取并解析定位数据建立TCP连接,连接至服务器发送数据关闭TCP连接结束图3-8软件流程图第4章 APP开发本系统设计中,老人携带可穿戴设备上传定位信息,子女或监护人员要能在手机上查看到老人的位置,因此本系统设计中另一个重要任务是开发一个在地图上显示设备位置信息的APP。由于OneNET服务器不提供自制的APP访问数据的服务,较难实现,故该系统设计中开发的APP显示的设备位置为代码中指定的经纬度,而非从服务器端获取的经纬度。作为第一次接触APP开发,本章将介绍该系统APP开发的具体过程,包括地
33、图API的调用,地图的绘制点标记以及辅助定位功能的添加等。4.1 申请高德地图API KeyAPI即应用程序编程接口,该APP制作中接触的最多的便是API。它是一些事先编写好的的函数,开发者需要理解它的功能以及调用方法,在APP编写中加以使用,以达到自己想要实现的功能14。本系统设计中的APP显示的高德地图便是通过使用高德地图工具包调用高德地图实现的,而在使用高德地图前,需要申请一个高德地图的API Key。登录高德地图开放平台,注册成为平台开发者,注册过程较简单,这里不详细介绍。注册完成登录高德开放平台,进入控制台。创建新应用,点击,填写若干信息,其中两项“package name”和“调试
34、版安全码SHA1”(无需发布版安全码SHA1),如图4-1所示图4-1 package name和SHA1值本系统APP只需debug版的Keystore来获取调试版安全码SHA1获取方法如下: 输入密钥后回车此时可在控制台显示信息中获取 SHA1 值,如图4-2所示SHA1值图4-2 获取的SHA1值PackageName为应用包名,可在本系统APP的Android Studio应用工程的MainActivity文件中查看到。如图4-3所示PackageName图4-3 Package Name应用包名输入正确的SHA1值和PackgeName后,获取地图API Key,如图4-9所示:AP
35、I Key图4-4 获取的API Key4.2 高德地图SDK工具包添加进入高德地图开发者平台首页,在Android平台上选择下载地图SDK,下载完成后,将jar包加入libs文件夹(以Project形式打开项目时,在app模块下会显示libs文件夹)下,如图4-5所示图4-5 libs文件夹下的jar包4.3 显示地图本系统APP一个最基本的功能是在手机上显示地图,在获取到高德地图的SDK工具包和API Key后,需要在Android Studio应用工程的对应文件中编写相关代码实现显示地图这一功能。(1)res/layout目录下的activity_main.xml文件为该工程的布局文件,
36、与APP视图相关的布局便是在这里编写的,为了能在APP中显示高德地图,需要在布局文件中添加地图控件,编写activity_main.xml文件如下:这里的com.amap.api.map2d.MapView控件是高德地图提供的专门用于展示地图的控件,宽高设置为match_parent表示该布局宽高自适应手机屏幕宽高。(2)本系统APP的主要功能是在src/main/java目录下的MainActicity.java文件中,编写的,编写MainActivity如下:代码中首先通过findViewByld()方法获取MapView对象,再通过MapView对象在Activity的各个声明周期方法中
37、调用对应的方法。(3)AndroidManifest.xml是每个Android程序中必须的文件,主要功能是注册各组件,配置所需要的权限,还有一些相关信息17。MainActivity需要在这里进行注册才能使用,虽然本系统APP的Activity中没有使用需要申请权限的内容,但是使用的高德地图的jar包中有所涉及,而使用高德地图所需要的API Key也需要在其中配置,对应代码段如下:网络访问权限SD卡写权限注册MainActivity申请的API Key4.4 经纬度位置标记本系统APP还需要实现的一个重要功能是根据指定的经纬度在地图上标记设备位置,该节将介绍其实现方法。实现该功能主要依靠高德
38、地图SDK提供的点标记功能中的marker类,在地图上标记指定经纬度位置的代码如下:指定经纬度代码中MarkeOption类包含marker类的各项属性然而在仅使用marker类的情况下,APP的功能仍然不是很完善,由上一节APP显示的地图来看,高德地图默认显示的是首都北京,而在本系统中希望运行APP时,首先展示的是标记的指定经纬度的设备位置,并且展示的位置信息能够更详细,即地图缩放级别较高。指定经纬度这时需要用到高德地图SDK的另一个CameraUpdate 类,可以通过改变地图上的中心点的 CameraUpdate 参数来改变打开地图时的地图的中心点以及缩放的级别。代码构造方法如下:Cam
39、eraUpdate 类中CameraPosition参数依次是:视角调整区域的中心点坐标(经纬度),缩放级别,俯仰角0°到45°(垂直地图时为0),偏航角0到360°(正北方为0)缩放级别可单独设置,方法如下:aMap.moveCamera(CameraUpdateFactory.zoomTo(15);缩放级别总共分为 17 级,从 3 到 19。级别越高,地图所展示的信息就越精确。4.5 辅助定位功能添加在本系统APP制作中,还添加了定位手机位置的功能,以便查看自己与标记点的位置关系,在本节中将进行介绍。定位手机位置主要用到AMap(地图控制器)对象中的AMap
40、location类(1) 首先需要初始化AMap对象,代码如下:小蓝点图标名(2) 自定义系统定位小蓝点,设置相关属性,并且设置定位监听,显示定位层触发定位等。代码如下:设置为true表示显示定位层并可触发定位设置默认定位按钮是否显示其中名为location_marker的小蓝点图片需添加进src/res/drawable目录下才能调用(3) 初始化定位,在activate()中设置定位初始化及启动定位,在deactivate()中写停止定位的相关调用,代码如下:停止定位启动定位设置定位参数设为高精度定位模式设置定位回调监听初始定位参数初始化定位(4) 定位图标的显示需要在定位回调的函数中设置
41、,回调的方法为:onLocationChanged(AMapLocation amapLocation)在回调方法中调用此方法,这样就可以在地图上显示定位图标,代码如下:显示系统小蓝点允许程序访问CellID或WiFi热点来获取粗略的位置(5) 实现手机定位,还需要修改AndroidManifest.xml增加权限并配置一个用来定位的service,代码如下:允许程序访问WiFi网络信息定位需要的服务4.6 APP运行流程图本系统APP运行流程如图4-6所示:初始化MapView对象,获取地图控件引用初始化AMap(地图控制器)地图控制器创建地图改变地图中心点及缩放级别绘制点标记初始化并启动定
42、位显示定位图标停止定位保存地图当前状态销毁地图图4-6 APP运行流程图第五章 系统调试和实验结果5.1 实物展示图5-1为本定位系统的实物展示图,主要包括SIM868模块,STM32F103微控制器以及电源,各硬件之间的连接方式详见第二章2.3节,可通过NEWLIGHT指示灯闪烁情况查看SIM868模块工作状态,详见第二章2.2.1节。NEWLIGHT指示灯STM32F103微控制器电源SIM868模块图5-1 实物展示图5.2 系统调试用USB线将STM32F103连接至电脑,设备运行正常时,可在串口调试助手中查看硬件及程序运行情况。(1)AT指令测试正常、SIM卡初始化成功,如图5-2所
43、示:图5-2 SIM卡初始化成功(2)获取到$GNRMC定位数据并解析,如图5-3所示:图5-3定位数据获取并解析(3)TCP连接成功,开始发送数据,如图5-4所示:图5-4发送数据(4)准备发送的数据:HTTP报头(包含HTTP请求方法POST向指定的资源提交要被处理的数据、设备ID、HTTP协议版本1.1、API KEY、服务器域名:、传输长度等信息)、JSON格式数据流(包含数据流名称location及经纬度等信息),如图5-5所示:图5-5准备发送的数据(5)服务器返还信息,表示数据发送和响应成功,如图5-6所示:图5-6服务器返还信息5.3 实验结果(1)SIM868获取定位信息,经
44、度参数为12038.437693,纬度参数为3118.227969,数据处理后的实际经纬度为(120.6406281E,31.30379948N),在GPS测试工具中,输入经纬度参数查询位置,发现定位位置基本准确,符合系统要求,如图5-7所示:图5-7 定位位置查询(2)数据发送至服务器成功,在OneNET平台上可以查看到上传的数据,如图5-8所示:图5-8 OneNET平台查看到上传数据(3)APP运行成功,首先显示标记位置,然后开启定位,定位当前手机位置,选取三组经纬度标记位置展示,从左到右依次是(120.635E,31.31N)、(120.64E,31.30N)和(120.65E,31.
45、31N)。手机定位位置标记位置高德地图图5-9 APP展示第六章 总结与展望 这次的毕业设计,从一开始对GPS定位技术的学习与研究,到对SIM868模块的学习与使用,再到后来开始硬件部分的设计,其中遇到了不少问题,例如起初发现SIM868模块无法识别SIM卡和无法进行GPRS通信的问题,通过检查硬件和AT指令测试,最终发现是供电电源的问题,无法提供足够2A的电流,更换合适的电源后得以解决。然后开始软件的设计,包括软件流程的设计,程序的编写,程序编写中涉及GPS数据处理以及与服务器之间通信的问题也研究与调试了不少时间。最后还学习开发APP,作为第一次接触APP开发,遇到的问题着实不少,因为APP
46、开发中接触的API函数为预先定义好的函数,所以了解其功能和使用方法就变得很困难,而本系统设计开发的地图APP又恰恰需要大量的API函数,也是查阅了大量的资料和不断地编写与调试才最终完成,不过也因此有了更深的理解。虽然完成了毕业设计任务,但还是存在一些不足之处。本系统设计中对服务器端涉及较少,SIM868的定位数据是发送到现有的OneNET服务器,而APP端的经纬度是在程序中指定的,而非从服务器端获取的,所以希望以后能学习服务器通信以及APP与服务器交互方面的知识。通过此次毕业设计,我懂得了要善于思考、善于发现问题、从多个角度寻找解决问题的方法;也发现了自己在提高能力的同时做事不细心的不足。希望
47、在接下来的学习生涯中,逐步完善自己,提高自身能力,学习更多有用的知识。参考文献1陈俊勇.GPS技术进展及其现代化J.大地测量与地球动力学,2010,30(03):1-4.2侯金亮,吴风华,王涛.GPS数据格式转换的研究J.河北联合大学学报(自然科学版),2014,36(01):51-55.3E Swart,P Ihle,S Geyer,T Grobe,W Hofmann. GPS - Good Practice Secondary Data AnalysisJ. Gesundheitswesen,2005,67(06).4杨婷,黄韬,谢亮.基于STM32微控制器的智能手环的设计J.科技广场,2
48、016(08):190-192.5周宇媚.基于stm32定位系统的研究与设计J.信息记录材料,2017,18(12):154-156.6张爱民,王云沼,龚松显.STM32微控制器的可靠串口通信技术研究J.单片机与嵌入式系统应用,2013,13(10):21-23.7李志伟.基于AT指令的串行通信程序的设计J.微计算机信息,2007(09):272-274.8余臻.基于AT指令集的远程通信的实现J.厦门大学学报(自然科学版),2004(02):166-169.9吴晓庆,呼和牧仁.单片机控制GSM模块通信J.内蒙古科技与经济,2010(02):87-88.10黄玉兰,刘静,王洪革,李志军.基于AT
49、指令集的GPRS智能通信系统J.吉林大学学报(信息科学版),2009,27(04):424-429.11耿灿忠.GPS原理及应用J.山东通信技术,2001(03):45-46.12Shan Huang,Feng Mei Liang. The Design and Implementation of Intelligent Farmland Irrigation SystemJ. Applied Mechanics and Materials,2014,2911(475).13Hui-fu Zhang,Wei Kang. Design of the Data Acquisition System
50、 Based on STM32J. Procedia Computer Science,2013,17.14张建源.Android开发技术的学习及应用J.现代工业经济和信息化,2014,4(12):62-64.15张燕兵. Android手机定位与地图设计与实现D.吉林大学,2013.16刘丹枫. 基于Android平台的地图SDK的设计与实现D.东南大学,2015.17宋小倩,周东升.基于Android平台的应用开发研究J.软件导刊,2011,10(02):104-106.18Tuan Shan Zhang,Ya Mei Li. Data Acquisition Design Based o
51、n the STM32J. Advanced Materials Research,2012,2076(591).19Vlatko Nikolovski,Petre Lameski,Ivan Chorbev. Cloud Based Patient Monitoring Platform Using Android Smartphone SensorsJ. Cybernetics and Information Technologies,2015,15(7).20Étienne Payet,Fausto Spoto. Static analysis of Android progra
52、msJ. Information and Software Technology,2012,54(11).21孙枫明,李蕾,陈国永.老年痴呆病人防走失定位导航纽扣的设计J.科技创新导报,2017,14(27):148-149.致 谢通过此次毕业设计,我懂得了要善于思考、善于发现问题、从多个角度寻找解决问题的方法;也发现了自己在提高能力的同时做事不细心的不足。要特别感谢我的毕设指导老师王丽荣老师,王丽荣老师平易近人,态度负责,治学严谨。在我的毕业设计中王老师提供了很多指导性的意见和建议,帮助我打开了思路,开阔了视野,学会了很多解决问题的方法。也要感谢研究生学长马刚在我进行软硬件设计中提供了很大的
53、帮助以及研究生学姐倪婕在我学习APP开发中解答了很多问题。附 录1、STM32主程序:#include "stm32f10x.h"#include "delay.h"#include "usart.h"#include "led.h"#include "usart2.h"#define Success 1U#define Failure 0Uunsigned long Time_Cont = 0; char OneNetServer = "" char device_id =
54、 "28384312" char API_KEY = "q6=ekYkE3=H1djJ=jvvSDMdw=s0=" char sensor_gps = "location"unsigned int count = 0;void errorLog(int num);void phone(char *number);unsigned int sendCommand(char *Command, char *Response, unsigned long Timeout, unsigned char Retry);void sendMessage(char *number,char *msg);void Sys_Soft_R
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 紫外-可见吸收光谱法(UV-Vis)
- 大学生入职职业规划
- 大班活动教案保护大自然
- 医疗单位安全培训
- 儿童骨折的护理查房
- 三位数乘两位数能力测试模拟题大全附答案
- 《吉林大学采购管理》课件
- 大气压强实践活动
- 《入侵检测技术培训》课件
- 微课人力资源部门所承担的主要职责及发展趋势财经管理人力
- 新能源基础知识入门
- 2024年插花花艺师理论知识考试题库(含答案)
- 软硬件集成方案
- 自身免疫性脑炎护理
- 放射科院感管理制度
- 2024年基因编辑技术的伦理问题
- 材料力学课程导学与考研指导
- 腮腺及面神经解剖
- 统编本道德与法治小学四年级上册第五、第六单元集体备课(各一套)
- 生鲜食品配送部各项管理制度
- GB/T 43232-2023紧固件轴向应力超声测量方法
评论
0/150
提交评论