LOG · 日志

remepmobile

DATE 日期
2026-10-23
SOURCE 源码
开发/remepmobile.md
READ 阅读
~4 min

ReMep Mobile

给跌倒检测和上报链路联调用的一部手机端:不登录、不依赖后端鉴权,装上就能看摄像头推理、IMU 波形和周边 BLE 设备,并把事件发到指定 MQTT broker。

状态:联调原型;入口:本地 flutter run(真机);仓库:https://github.com/fire-disposal/remepmobile 相关仓库:后端 remipedia、Web 管理端 remepui

本质

在手机上验证视觉/IMU 跌倒与 BLE 链路、把结果发到 MQTT 的联调端。

选型

基于 Flutter 的单端 App,端上 YOLO 推理,通信 MQTT + HTTP,本地 Hive,产出 APK。

  • 框架
    • Flutter
      • Dart 3
      • Material 3
      • flutter_screenutil
      • google_fonts
      • flutter_animate
  • 视觉
    • ultralytics_yolo
      • YOLOView
      • YOLO11n int8
  • 传感器
    • sensors_plus
  • 通信
    • mqtt_client
    • dio
  • 蓝牙
    • flutter_blue_plus
  • 状态与导航
    • ChangeNotifier
    • get_it
    • go_router
  • 存储
    • Hive
    • flutter_secure_storage
  • 权限
    • permission_handler
  • 构建
    • flutter build apk
    • GitHub Actions

功能

  • 工作台五个入口:IMU 运动监测、视觉跌倒检查、蓝牙设备扫描、全局事件中心、MQTT 全局配置;右上角进设置页。
  • 视觉:启停识别流、实时/推理 FPS 与延迟、跌倒报警与躺卧状态、检测框叠加;阈值可调并支持恢复默认;模型可在线下载或指定已下载文件。
  • IMU:50Hz 三轴加速度/陀螺仪读数(磁力计可选),保留最近 500 点,均值/方差/最大值,动静态与跌倒状态机。
  • 蓝牙:适配器状态、定时扫描、连接、特征读写与 notify。
  • 事件中心:IMU/视觉/系统事件按来源、级别、关键字过滤,内存上限 400 条,可清空。
  • MQTT:broker/端口/topic 前缀落 Hive;测试消息发 ${prefix}/diagnostics/test;发送历史最多 500 条。
  • 未实现:登录与鉴权、数据入库、多语言、测试用例。

启动流程

flutter pub get
flutter run            # 真机;模拟器没有相机与传感器
  • .env.development 提供 MQTT_BROKER_URL / MQTT_PORT / API_BASE_URL;broker 为空时回退到公共 broker,注意别把真实数据发上去。
  • 首次进视觉页会下载 yolo11n_int8.tflite,也可自行放进 assets/models/。
  • APK:打 v* tag 或手动触发 apkrelease.yml,产出 arm32 / arm64 / x64 三个包。

边界与已知问题

  • README 路由表过期:实际是 /app/imu、/app/vision、/app/mqtt、/app/events、/app/bluetooth/scanner、/app/settings,没有 /app/mqtt-simulator 等旧路径。
  • 主题与后端对不上:App 发 ${baseTopic}/imu/events、${baseTopic}/vision/events(默认 remep/mobile),remipedia 订阅 device/imu/+/data、device/vision/+/detect,payload 也不同。
  • docs/TECH_STACK.md 是早期方案,Riverpod/Retrofit/Drift/slang/intl/flavor 都未落地。
  • 事件中心只在内存,杀进程即丢。
  • vision_detection_controller.dart 有一段乱码注释,不影响编译但妨碍阅读。
  • 没有 test/,CI 只产出安装包。

文档索引