基于单片机stm32的GPS定位位置记录系统 - 物联网 嵌入式 (含代码)
ninehua 2024-12-05 15:09 35 浏览
**基于单片机的GPS定位位置记录系统 *难度系数:4分
- 工作量:4分
- 创新点:3分
1 简介
基于stm32单片机丰富的板载资源,并结合GPS模块及显示等其他模块,在方便记录轨迹的同时,提供校为便利的用户交互体验(如声音提示和用户按键交互,及屏幕显示)。项目可用于运动轨迹记录,及实时显示速度等展示,及其他应用领域,解决部分场景下位置记录实时查看不便或需要借助其他功耗相对较高的记录设备的问题,同时增加生活的趣味性。
2 主要器件
- stm32单片机
- RT-Thread物联网操作系统
- SSD1306 OLED显示屏
- GPS模块(支持北斗和GSP双模定位)
- SD卡
- 按键、LED灯
3 实现效果
定位界面
系统日期和时间界面 (GPS校时后)
经纬度界面
实时速度于定位距离界面
系统日期时间界面,GPS轨迹录制状态显示
GPS轨迹查看
4 硬件设计
概述
整体硬件由4部分组成:
stm32单片机、SSD1306 OLED显示屏、GPS模块(支持北斗和GSP双模定位)和SD卡
注:其中开发板还用到了GREEN和RED灯,和S2及S3按键
硬件示意图
硬件整体外观如下图所示
硬件模块的连接
SSD1306 OLED显示屏(II2C)引脚连接
PE3 - OLED SCL、PE2 - OLED SDA、电源引脚
GPS模块引脚连接(串口)
PA4 - GPS RX、PA3 - GPS TX、电源引脚
OLED和GPS模块电源引脚连接
模块供电,均采用开发板提供的3.3V电源引脚
AB32VG1主控MCU
简介
开发板采用中科蓝讯的32位RISC-V指令集的AB32VG1型号MCU,主频120M。MCU有8M的Flash,和192K SRAM。支持3.0V-5.0V供电。
与一般MCU不同的是,这款MCU具有MPU模块,就是电源管理模块,支持Charge电路、BUCK电路、LDO电路等等,手册第十页给出了MPU模块的详细参数。
开发环境搭建
根据官方的指导,使用的是RT-thread官方stduio平台,先更新软件源代码至最新版,下载中科蓝讯软件包,下载RISC-V-GCC工具链,编译程序会用到。
软件包配置
接下来选择我们本次实验用到的软件包,wavplayer软件包、optparse软件包和multibutton软件包,实现通过板载按键控制声音的播放语音量的增减。
然后对软件包进行简单配置,按键的示例代码可以勾选也可以不勾选,后面要对此进行修改,改为评测板上的用户按键,optparse软件包默认即可。
5 软件说明
项目的软件采用RT-Thread官方提供的IDE RT-ThreadStudio开发,SDK基于AB32VG1-AB-PROUGEN,同时部分模块采用官方软件包,如ssd1306软件包,也移植了部分软件,如TinyGPS++和GPX(该部分开源软件主要由C++编写,移植采用C实现,并修改部分BUG),GPS记录后的轨迹符合GPX规范,可以用GPXSee(http://www.gpxsee.org) 软件查看。
软件框架
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 最后
嵌入式物联网的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而错失高薪offer。不过别担心,我为大家整理了一份150多G的学习资源,基本上涵盖了嵌入式物联网学习的所有内容。点击下方链接,0元领取学习资源,让你的学习之路更加顺畅!记得点赞、关注、收藏、转发哦!
点击这里找小助理0元领取:扫码进群领资料
相关推荐
- (图表·海报)沉浸式观鸟!探寻飞羽精灵(11)
-
新华社图表,北京,2025年7月2日新华社发崔文蒲晓旭编制
- 格斗玩家转型黑神话,谷粒精灵2Pro找回掌机的初心!战斗感翻倍!
-
当游戏成为生活中不可或缺的解压方式,一款能精准传递反馈、提升沉浸感的手柄,往往能让体验质变。作为一名入门级掌机玩家,近期入手的谷粒精灵2Pro彻底颠覆了我对“便携手柄”的认知——它以复古小巧的机...
- (图表·海报)沉浸式观鸟!探寻飞羽精灵(10)
-
新华社图表,北京,2025年7月2日新华社发崔文魏培全编制
- 小巧不简单,实力派手柄——谷粒精灵2 Pro全面测评
-
小巧不简单,实力派手柄——谷粒精灵2Pro全面测评说起游戏手柄,很多品牌宣传时总是把技术参数摆在第一位,满满的专业术语一堆,让人看得眼花缭乱。可我觉得,玩家真正会先被吸引的,还是这款手柄的外观设计、...
- (图表·海报)沉浸式观鸟!探寻飞羽精灵(1)
-
新华社图表,北京,2025年7月2日新华社发崔文姜帆编制
- (图表·海报)沉浸式观鸟!探寻飞羽精灵(3)
-
新华社图表,北京,2025年7月2日新华社发崔文魏培全编制
- (图表·海报)沉浸式观鸟!探寻飞羽精灵(5)
-
新华社图表,北京,2025年7月2日新华社发崔文毛三编制
- (图表·海报)沉浸式观鸟!探寻飞羽精灵(4)
-
新华社图表,北京,2025年7月2日新华社发崔文魏培全编制
- 撩动心弦!体验炸裂,谷粒精灵2Pro体验一周,我有话想说
-
必须承认...初见Gulikit谷粒精灵2Pro时,其“复古”颜值确实触动了我的心弦。尽管手中已有多款手柄,却依然对其一见倾心。当然,百元级的高性价比也是令人心动的重要因素之一,何况出自老牌大厂之手,...
- 便携且适配多平台,强震感的谷粒精灵2 Pro手柄评测
-
对于游戏玩家而言,一款好的游戏手柄简直就是能达到如虎添翼的感觉。在众多游戏手柄里,笔者选取了一款谷粒精灵2Pro,觉得无论是续航还是灵敏度等体验都是非常不错的。谷粒精灵2Pro手柄的包装非常的简洁...
- 小巧便携,多平台兼容,这一个手柄就够了:谷粒精灵2Pro上手实测
-
最近玩游戏总觉得用键鼠没有手感,还是觉得用手柄玩游戏更有代入感,选手柄的时候我跟大家遇到了一样的难题,那就是面对这么多的款式和功能不知道该怎么挑选了。我比较喜欢随时随地都可以带着手柄,无聊的时候可以连...
- 轻盈便携+强大震动,手感出众:谷粒精灵2Pro手柄评测
-
暑假相信很多朋友都打算狠狠沉浸在游戏世界,对于主机游戏而言,手柄是必不可少的外设。关于游戏手柄是否好用这个问题,相信大部分人会关心摇杆、十字键以及ABXY按键的手感。其实我认为,包括外观、游戏手柄本身...
- 谷粒精灵2Pro手柄9种震动让我沉浸Switch游戏美梦
-
可能任天堂游戏机是每一个80后男孩心中的意难平,无论是普及率最高的FC,还是便携性超强的GB、GBA。如果谁家有一个FC,那他家肯定会成为小朋友们的“根据地”;如果谁手上有一个GB游戏机,那他就是整条...
- Switch2 搭档首选!磁悬浮马达9级震动,618必入
-
谷粒精灵2Pro手柄以简约而不失科技感的设计语言,吸引了我的第一目光。其采用类肤磨砂材质,不仅防滑耐污,更在握持时带来极佳的舒适感。整体线条流畅,按键布局合理,给人以精致且专业的第一印象。细节方面,手...
- 《美少女梦工场2:韶华再现》测评:跨越30年的治愈养成之旅
-
一、核心玩法:自由养成的魅力玩家化身“父亲”,用8年时间(游戏内)将10岁的“星赐少女”培养至成年。她的未来——公主、战士、艺术家甚至恶魔——完全取决于你的教育方式。日程安排:每月需为女儿规划学习(绘...