项目地址

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`文件中,可用于故障排查。