littlebot
Published on 2025-04-11 / 0 Visits
0

【源码】基于Arduino和Python的MIT校园行人导航系统

项目简介

本项目致力于解决MIT校园复杂布局导致的导航难题,为不熟悉校园的行人打造导航设备。设备由ESP32微控制器、MPU9250惯性测量单元、LCD和输入按钮构成。通过测量附近WiFi信号强度,结合Google API确定位置,向服务器查询最短路径信息,最终在LCD上为用户提供导航指引。项目包含客户端和服务器两部分,客户端以ESP32作为用户交互界面,服务器负责复杂计算任务。

项目的主要特性和功能

  1. 便捷的目的地选择:用户倾斜设备滚动列表、短按按钮即可选择目的地建筑和楼层。
  2. 实时导航指引:LCD实时显示最终目的地、当前建筑位置、预计到达时间和指向最佳路径方向的箭头。
  3. 导航取消功能:导航中长按按钮可取消当前导航。
  4. 到达提醒:到达目的地后显示到达信息。
  5. 精准定位:利用Google API和WiFi信号强度确定设备位置。
  6. 服务器优化:服务器端采用缓存机制,将图的表示和最短路径结果缓存为JSON文件,提升响应速度。
  7. 多楼层支持:支持多楼层导航,标准化节点和边文件命名,便于添加新楼层和节点。

安装使用步骤

硬件组装

若已下载项目源码文件,需先进行硬件组装。准备好ESP32、TFT LCD、MPU9250 IMU、按钮和微型USB电池组,按电路连接图连接各组件。

客户端设置

  1. 打开Arduino IDE,导入项目中src文件夹下的客户端代码。
  2. 配置WiFi信息:在ApiClient类中,将network和password变量设为实际的WiFi网络名称和密码。
  3. 将客户端代码上传到ESP32开发板。

服务器设置

  1. 确保服务器安装Python环境。
  2. 安装必要的Python库,如dataclassesenumjson等。
  3. 将项目中的服务器代码(graph.py、request_handler.py等)复制到服务器指定目录。
  4. 在终端执行python request_handler.py启动服务器。

系统使用

  1. 给ESP32设备供电,启动后显示欢迎界面。
  2. 短按按钮选择激活导航或校准罗盘。
  3. 进入目的地选择状态,倾斜设备滚动列表选择目的地建筑和楼层,短按按钮确认。
  4. 开始导航后,LCD显示导航信息,用户按箭头指示方向行走。
  5. 需取消导航时,长按按钮并在确认界面选择取消。
  6. 到达目的地后,设备显示到达信息,短按按钮可重新开始导航。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】