项目简介
本项目是一个基于ESP8266的实时GPS追踪系统,集成MQTT通信、高德地图API,提供实时位置监控和可视化解决方案。
ESP8266核心
采用高性能WiFi微控制器,实现物联网连接
GPS定位
支持多种GPS模块,提供精准位置数据
MQTT通信
轻量级协议实现高效数据传输
系统架构
系统架构图
GPS模块
ESP8266
MQTT/WiFi
Web前端
高德地图
系统架构.mermaid
graph TD A[GPS模块] --> B[ESP8266] B -->|MQTT通信| C[Web前端] B -->|WiFi| D[互联网] C -->|地图API| E[高德地图]
硬件配置
硬件清单
-
ESP8266开发板
(NodeMCU/WeMos D1 Mini)
-
GPS模块
(如Neo-6M/Neo-M8N)
-
LED指示灯
状态指示
-
电源适配器/电池
供电系统
LED状态指示
WiFi连接过程
LED将交替闪烁
MQTT连接成功
LED将快速闪烁5次
数据发送时
调用 publishGPSData() 时,LED会点亮500毫秒
接线详细图
接线配置
GPS模块 <--> ESP8266: - VCC -----> 3.3V - GND -----> GND - RX -----> D1 (GPIO5) - TX -----> 悬空 LED指示灯: - 正极 -----> D2 (GPIO4) - 负极 -----> GND
接线注意事项
- 确保GPS模块工作电压为3.3V
- 使用软串口通信
- LED串联220Ω限流电阻
- 确保良好的接地连接
软件配置
ESP8266固件配置
Arduino IDE 配置
-
安装ESP8266开发板支持包
- 打开
首选项
- 添加开发板管理地址:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
- 打开
-
安装ESP8266开发板
- 打开
工具
>开发板
>开发板管理器
- 搜索 "ESP8266" 并安装
- 打开
必要库安装
PubSubClient
SoftwareSerial
WiFi配置
const char* ssid = "your_wifi_ssid"; // WiFi名称 const char* password = "your_wifi_password"; // WiFi密码 // 建议WiFi配置 const int WIFI_CONNECT_TIMEOUT = 10000; // 10秒连接超时
MQTT配置
Broker配置
// MQTT服务器配置 const char* mqtt_server = "mqtt.lyuke.top"; // Broker地址 const uint16_t mqtt_port = 1883; // 标准MQTT端口 const char* mqtt_user = "esp8266"; // 用户名 const char* mqtt_password = "your_password"; // 密码
主题配置
// MQTT主题配置 const char* GPS_TOPICS[] = { "gps/gngga", // 定位信息 "gps/gpgsa", // 定位精度 "gps/bdgsa", // 北斗定位精度 // 其他主题... };
MQTT Broker部署
使用阿里云云服务器并在宝塔面板部署docker-compose部署mqtt broker
Web前端配置
高德地图API
- 登录高德开放平台
- 创建应用
- 获取Web端JavaScript API Key
MQTT配置
const brokerUrl = 'ws://mqtt.lyuke.top:8083/mqtt'; const options = { username: 'esp8266', password: 'your_password', clientId: '随机生成的客户端ID' };
调试与故障排除
常见问题
GPS定位失败
- 检查卫星信号强度
- 确认模块接线正确
- 检查串口通信波特率
WiFi连接问题
- 确认WiFi密码
- 检查网络环境
- 增加连接重试机制
MQTT通信异常
- 验证Broker地址和端口
- 检查用户名密码
- 确认网络防火墙设置
日志与监控
- 串口监视器波特率:115200
- 通过串口输出调试信息
- 添加必要的错误处理与重连机制