ARTIFACT / REMEPMOBILE
ReMep Mobile
PROTOTYPE给跌倒检测和上报链路联调用的一部手机端:不登录、不依赖后端鉴权,装上就能看摄像头推理、IMU 波形和周边 BLE 设备,并把事件发到指定 MQTT broker。
◈ System Profile ◈
◈ Access · 访问入口 ◈
◈ Sections · 章节 ◈
◈ README ◈
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
- Flutter
- 视觉
- ultralytics_yolo
- YOLOView
- YOLO11n int8
- ultralytics_yolo
- 传感器
- 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 只产出安装包。
文档索引
- docs/TECH_STACK.md — 技术栈