# 米家体脂秤2flutter版本 **Repository Path**: lurely/mi2-scale-flutter ## Basic Information - **Project Name**: 米家体脂秤2flutter版本 - **Description**: 基于米家体脂秤2的flutter版本蓝牙bleAPP,同时整合mqtt可接入home assistant - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-30 - **Last Updated**: 2026-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: 米家体脂秤2, Flutter, Android, IOS ## README # Flutter BLE 体脂秤 (MIBFS) 项目 这是一个基于 Flutter 开发的蓝牙低功耗 (BLE) 应用,专门用于连接和获取小米体脂秤(MIBFS)的数据,并通过 MQTT 协议将测量数据上报。 ## 🌟 主要功能 * **BLE 扫描与连接**:自动搜索并解析小米体脂秤广播数据。 * **实时数据展示**:实时显示体重和身体阻抗,支持数值锁定动画特效。 * **MQTT 数据上报**:测量数值锁定后,自动将体重和阻抗数据发送至指定的 MQTT Broker。 * **权限自动处理**:动态请求蓝牙扫描、连接及定位权限(Android)。 * **iOS 本地网络适配**:内置强行唤醒 iOS 本地网络权限弹窗的逻辑,确保 MQTT 连接顺畅。 ## 🛠 技术栈 * **Flutter**: UI 框架 * **flutter_blue_plus**: 蓝牙通信插件 * **mqtt_client**: MQTT 协议实现 * **permission_handler**: 权限管理 * **Material 3**: 现代化的 UI 设计 ## 🚀 快速开始 ### 1. 环境准备 确保你已安装 Flutter SDK (>=2.19.4) 并且配置好了 Android/iOS 开发环境。 ### 2. 获取代码 ```bash git clone cd flutter_ble ``` ### 3. 安装依赖 ```bash flutter pub get ``` ### 4. 配置 MQTT 在 `lib/my_weight.dart` 中修改你的 MQTT 服务器地址: ```dart MqttManager.instance.connect("192.168.50.150"); // 替换为你的服务器 IP ``` ### 5. 运行项目 ```bash flutter run ``` ## 📱 平台相关配置 ### Android * 项目已配置必要的蓝牙和定位权限。 * 请确保设备已开启蓝牙和 GPS。 ### iOS * 首次运行连接 MQTT 时,应用会触发一个虚拟连接以激活 iOS 的“本地网络”权限弹窗,请点击“允许”。 * `Info.plist` 已包含 `NSBluetoothAlwaysUsageDescription` 等描述。 ## 📄 核心代码说明 * `lib/main.dart`: 入口文件。 * `lib/my_weight.dart`: 主界面逻辑与权限处理。 * `lib/ble_manager.dart`: 蓝牙单例管理类,负责扫描与数据解析。 * `lib/mqtt_manager.dart`: MQTT 单例管理类,负责连接与消息发布。 * `lib/scale_data.dart`: 体脂秤数据实体类。 --- **注意**: 本项目主要针对小米体脂秤(Mi Body Fat Scale)协议进行开发,其他品牌体脂秤可能需要适配不同的广播包解析逻辑。