# HeartRateMonitor
**Repository Path**: lin_1526615/HeartRateMonitor
## Basic Information
- **Project Name**: HeartRateMonitor
- **Description**: 基于pyqt5和BLE心率协议的心率监测器
- **Primary Language**: Python
- **License**: GPL-3.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 7
- **Forks**: 2
- **Created**: 2025-06-09
- **Last Updated**: 2025-09-04
## Categories & Tags
**Categories**: hardware
**Tags**: None
## README
本项目是一个基于 Python 的蓝牙心率监测工具,支持通过 BLE 设备获取心率数据,并提供浮动窗口显示等功能。欢迎提出建议或参与改进!
### 效果展示:
[bilibili视频](https://www.bilibili.com/video/BV1VsEbzeE1N)
### 项目仓库:
[github](https://github.com/lin15266115/HeartRateMonitor) |
[gitee](https://gitee.com/lin_1526615/HeartRateMonitor) |
[gitcode](https://gitcode.com/lin15266115/HeartBeat)
## 运行程序
**方法1**: (推荐)使用代码运行 -**下载zip** 解压后根据python环境修改 [`start.bat`](start.bat) 后再双击 [`start.bat`](start.bat) 即可运行
- 优点: 随时可以检查代码中有没有烂活, 可以随时依据自己的需求改代码
- 缺点: 运行环境需要自己配置
**方法2**: (推荐)使用exe程序运行 -下载已经编译好的程序, 点击 *`HRMLink.exe`* 运行
- 优点: 门槛较低, 单文件双击即可运行
- 缺点: 相对其它方法不太透明, 使用pyinstaller编译的exe程序可能较大
**方法3**: 自行编译运行 -安装`pyinstaller`后使用[`build.bat`](build.bat)编译后运行
- 优点: 可以自行编译最新开发版, ~~不用担心作者偷偷在编译的程序中整烂活~~
- 缺点: 和方法2获得的程序基本一致, 门槛较高, 可能因不同系统环境导致一些问题
**方法4**: (不推荐)自行编译运行2 -安装nuitka后使用[`build2.bat`](build2.bat)编译后运行
- 优点: 比较方法3, 编译包体较小, 运行速度较快
- 缺点: 此方法编译的包可能无法运行或功能缺失, 作者不一定会为此更新
如果 `方法1` 直接运行出现安装依赖相关错误,可以通过命令行手动安装依赖库:
推荐使用python3.12运行程序
pip install pyqt5
pip install qasync
pip install bleak
## Q&A
#### Q: 我的设备支持蓝牙且已经打开蓝牙, 运行程序时却扫描不到任何设备:
- **A:** 请检查手环是否开启心跳广播, 如果开启后仍然找不到, 可以尝试在点进系统的蓝牙设置页面后, 再尝试点击本程序设备处的刷新按钮
#### Q: 我要如何卸载HRMLink.exe?
- **A:** 由于目前本程序不会往除exe文件所在目录以外的任何地方写入非临时性的文件(大概), 所以卸载程序时, 只需 `关闭开机自启` 后:
- 如果您从来没有手动往 `HRMlink.exe` 文件所在目录放入任何其它文件, 那么直接删除`HRMlink.exe`所在的文件夹即可
- 或者只删除文件夹中的 `HRMlink.exe`文件、`config.ini`文件 和 `log`文件夹(这些是程序本体和程序运行过程中产生的一些文件,这些文件包含您的个人设置和运行日志)
#### 暂时还没有更多......
## 请暂时忽略以下内容,因为以下功能目前还在完善且作者尚未公开发布
### ~~关于序列帧播放~~
1. ~~在新版本中新增了序列帧播放功能, 但目前仍然处于开发测试阶段~~
2. ~~如果要使用序列帧, 请将图片文件放在./animations/test目录下, 注意图片的文件名是以名字排序的, 所以名称应该类似:~~
- ~~01.png, 02.png, 03.png~~
- ~~abc01.png, abc02.png, abc03.png~~