【毕业设计】基于单片机的GPS定位位置记录系统 – 物联网 嵌入式 stm32

首页 » 物联网 » 【毕业设计】基于单片机的GPS定位位置记录系统 – 物联网 嵌入式 stm32

文章目录

  • 0 前言
  • 1 简介
  • 2 主要器件
  • 3 实现效果
  • 4 硬件设计
    • 概述
    • 硬件模块的连接
    • **AB32VG1主控MCU**
  • 5 软件说明
  • 6 部分核心代码
  • 7 最后

0 前言

🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是

🚩 **基于单片机的GPS定位位置记录系统 **

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:4分
  • 工作量:4分
  • 创新点:3分

🧿 选题指导, 项目分享:

https://gitee.com/dancheng-senior/project-sharing-1/blob/master/%E6%AF%95%E8%AE%BE%E6%8C%87%E5%AF%BC/README.md

1 简介

基于stm32单片机丰富的板载资源,并结合GPS模块及显示等其他模块,在方便记录轨迹的同时,提供校为便利的用户交互体验(如声音提示和用户按键交互,及屏幕显示)。项目可用于运动轨迹记录,及实时显示速度等展示,及其他应用领域,解决部分场景下位置记录实时查看不便或需要借助其他功耗相对较高的记录设备的问题,同时增加生活的趣味性。

2 主要器件

  • stm32单片机
  • RT-Thread物联网操作系统
  • SSD1306 OLED显示屏
  • GPS模块(支持北斗和GSP双模定位)
  • SD卡
  • 按键、LED灯

3 实现效果

定位界面

【毕业设计】基于单片机的GPS定位位置记录系统 - 物联网 嵌入式 stm32

系统日期和时间界面 (GPS校时后)

【毕业设计】基于单片机的GPS定位位置记录系统 - 物联网 嵌入式 stm32

经纬度界面

【毕业设计】基于单片机的GPS定位位置记录系统 - 物联网 嵌入式 stm32

实时速度于定位距离界面

【毕业设计】基于单片机的GPS定位位置记录系统 - 物联网 嵌入式 stm32

系统日期时间界面,GPS轨迹录制状态显示

【毕业设计】基于单片机的GPS定位位置记录系统 - 物联网 嵌入式 stm32

GPS轨迹查看

【毕业设计】基于单片机的GPS定位位置记录系统 - 物联网 嵌入式 stm32

4 硬件设计

概述

整体硬件由4部分组成:

stm32单片机、SSD1306 OLED显示屏、GPS模块(支持北斗和GSP双模定位)和SD卡

注:其中开发板还用到了GREEN和RED灯,和S2及S3按键

硬件示意图

【毕业设计】基于单片机的GPS定位位置记录系统 - 物联网 嵌入式 stm32

硬件整体外观如下图所示

【毕业设计】基于单片机的GPS定位位置记录系统 - 物联网 嵌入式 stm32

硬件模块的连接

SSD1306 OLED显示屏(II2C)引脚连接

PE3 – OLED SCL、PE2 – OLED SDA、电源引脚

【毕业设计】基于单片机的GPS定位位置记录系统 - 物联网 嵌入式 stm32

GPS模块引脚连接(串口)

PA4 – GPS RX、PA3 – GPS TX、电源引脚

【毕业设计】基于单片机的GPS定位位置记录系统 - 物联网 嵌入式 stm32

OLED和GPS模块电源引脚连接

模块供电,均采用开发板提供的3.3V电源引脚

【毕业设计】基于单片机的GPS定位位置记录系统 - 物联网 嵌入式 stm32

AB32VG1主控MCU

简介

开发板采用中科蓝讯的32位RISC-V指令集的AB32VG1型号MCU,主频120M。MCU有8M的Flash,和192K SRAM。支持3.0V-5.0V供电。
与一般MCU不同的是,这款MCU具有MPU模块,就是电源管理模块,支持Charge电路、BUCK电路、LDO电路等等,手册第十页给出了MPU模块的详细参数。
【毕业设计】基于单片机的GPS定位位置记录系统 - 物联网 嵌入式 stm32
开发环境搭建

根据官方的指导,使用的是RT-thread官方stduio平台,先更新软件源代码至最新版,下载中科蓝讯软件包,下载RISC-V-GCC工具链,编译程序会用到。

【毕业设计】基于单片机的GPS定位位置记录系统 - 物联网 嵌入式 stm32

软件包配置

【毕业设计】基于单片机的GPS定位位置记录系统 - 物联网 嵌入式 stm32
接下来选择我们本次实验用到的软件包,wavplayer软件包、optparse软件包和multibutton软件包,实现通过板载按键控制声音的播放语音量的增减。
【毕业设计】基于单片机的GPS定位位置记录系统 - 物联网 嵌入式 stm32
然后对软件包进行简单配置,按键的示例代码可以勾选也可以不勾选,后面要对此进行修改,改为评测板上的用户按键,optparse软件包默认即可。
【毕业设计】基于单片机的GPS定位位置记录系统 - 物联网 嵌入式 stm32

5 软件说明

项目的软件采用RT-Thread官方提供的IDE RT-ThreadStudio开发,SDK基于AB32VG1-AB-PROUGEN,同时部分模块采用官方软件包,如ssd1306软件包,也移植了部分软件,如TinyGPS++和GPX(该部分开源软件主要由C++编写,移植采用C实现,并修改部分BUG),GPS记录后的轨迹符合GPX规范,可以用GPXSee(http://www.gpxsee.org) 软件查看。

软件框架

【毕业设计】基于单片机的GPS定位位置记录系统 - 物联网 嵌入式 stm32

6 部分核心代码

核心数据结构和API如下:

/* Clock */
typedef struct{    
    uint16_t year;    
    uint8_t month;    
    uint8_t day;    
    uint8_t week;    
    uint8_t hour;    
    uint8_t minute;    
    uint8_t second;    
    uint16_t millisecond;
} Clock_Info_t;

/* GPS */
typedef struct{    
    bool isVaild;    
    float longitude;    
    float latitude;    
    float altitude;    
    float course;    
    float speed;    
    int16_t satellites;    
    Clock_Info_t clock;
} GPS_Info_t;

/* GPS 数据回调 */
typedef rt_int32_t (*gps_callback_t)(GPS_Info_t info);

int gps_init(gps_callback_t callback);
bool gps_get_info(GPS_Info_t* info);
float gps_get_distance(GPS_Info_t* info, float preLong, float preLat);

page.c (page.h) – OLED界面

OLED界面主要实现:系统本地日期时间显示、定位状态显示、当前经纬度和实时速度及已经定位的距离

头文件定义:

typedef enum _page_type {
    PAGE_STARTUP = 0,
    PAGE_DATE_TIME,    
    PAGE_LOCATION,    
    PAGE_SPEED,    
    PAGE_MAX,
}page_type_t;

typedef enum _page_state {    
    PAGE_STATE_LOCATION = 0x1,
    PAGE_STATE_TRACK = 0x2,
}page_state_t;

void page_init();
void page_switch(rt_int32_t index);
void page_update();

7 最后

本文章来源于互联网,如有侵权,请联系删除!原文地址:【毕业设计】基于单片机的GPS定位位置记录系统 – 物联网 嵌入式 stm32

相关推荐: OneNET物联网平台介绍

OneNET定位为PaaS服务,即在物联网应用和真实设备之间搭建高效、稳定、安全的应用平台:面向设备,适配多种网络环境和常见传输协议,提供各类硬件终端的快速接入方案和设备管理服务;面向应用层,提供丰富的API和数据分发能力以满足各类行业应用系统的开发需求,使物…