项目地址
Github:https://github.com/qinghemuyu/utils
项目说明
# 心率监测器应用程序
## 项目概述
这是一个基于Python的心率监测器应用程序,通过蓝牙低功耗(BLE)技术连接心率设备,实时显示心率数据。应用程序具有简洁的用户界面、系统托盘支持和多种自定义选项,适合需要实时监控心率的用户使用。
## 功能特点
- **蓝牙设备扫描与连接**:自动扫描并列出附近的蓝牙心率设备
- **实时心率显示**:以大字体显示当前心率值
- **系统托盘集成**:最小化到系统托盘,随时可访问
- **背景模糊效果**:应用窗口背景采用模糊效果,美观且不干扰视线
- **点击穿透功能**:可设置窗口点击穿透,不影响其他应用操作
- **自定义选项**:
- 可调整字体大小(小、中、大、特大)
- 可调整背景模糊程度(弱、中、强)
- 可切换窗口置顶状态
- **窗口拖拽**:可自由拖拽窗口位置
- **日志记录**:详细记录应用运行状态和错误信息
## 安装要求
### 依赖库
```
pip install tkinter
pip install asyncio
pip install bleak
pip install pystray
pip install pillow
```
### 系统要求
- Windows操作系统(支持蓝牙功能)
- Python 3.7+
- 蓝牙适配器(支持BLE)
## 使用方法
1. **启动应用**:运行`python app.py`
2. **连接设备**:
- 应用启动后会自动扫描附近的蓝牙设备
- 从列表中选择您的心率设备
- 连接成功后会自动切换到心率显示界面
3. **系统托盘操作**:
- 右键点击系统托盘图标可访问菜单
- 可切换设备、调整字体大小、模糊程度等
- 可启用/禁用点击穿透和窗口置顶功能
4. **退出应用**:通过系统托盘菜单选择"退出"
## 技术实现
### 主要类和方法
#### HeartRateMonitor 类
应用程序的主类,负责创建UI和管理蓝牙连接。
**主要方法**:
- `__init__()`: 初始化应用程序和UI组件
- `refresh_devices()`: 刷新蓝牙设备列表
- `scan_devices()`: 异步扫描蓝牙设备
- `connect_device()`: 连接到选定的心率设备
- `handle_heart_rate()`: 处理接收到的心率数据
- `show_heart_rate_display()`: 显示心率界面
- `update_background()`: 更新背景模糊效果
- `create_system_tray()`: 创建系统托盘图标和菜单
### 关键技术
- **异步编程**:使用`asyncio`处理蓝牙通信
- **多线程**:使用`threading`模块处理UI和蓝牙通信
- **BLE通信**:使用`bleak`库实现蓝牙低功耗通信
- **系统托盘**:使用`pystray`实现系统托盘功能
- **图像处理**:使用`PIL`库实现背景模糊效果
## 注意事项
- 应用需要蓝牙设备支持心率服务(UUID: 0000180d)
- 首次连接设备可能需要在系统蓝牙设置中先进行配对
- 点击穿透功能启用后,窗口将无法通过鼠标操作,需通过系统托盘菜单禁用
## 日志
应用运行日志保存在`heart_rate.log`文件中,可用于故障排查。