Skip to content

Styunlen/Heart-Rate-Monitor-Cpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Heart Rate Monitor

A modern, cross-platform desktop application for monitoring heart rate via Bluetooth Low Energy (BLE). Built with C++17, the Slint declarative UI framework, and SimpleBLE.

This application is particularly useful for live streamers, as it includes a dedicated, customizable transparent overlay window designed to be captured in OBS Studio.

Features

  • BLE Device Scanning & Connection: Discover and connect to nearby BLE heart rate monitors.
  • Real-Time Heart Rate Display: View your live BPM (Beats Per Minute) and a dynamic heart rate chart.
  • Session Statistics: Automatically tracks minimum, maximum, and average heart rate during your session.
  • OBS Studio Integration: Includes a secondary, draggable overlay window with adjustable opacity for easy screen capture during live streams.
  • Data Export: Save your session's heart rate data to a .csv file for later analysis.
  • Dark Theme UI: A sleek, modern user interface built using Slint.

Prerequisites

To build this project from source, you will need:

  • A compiler with C++17 support (e.g., Clang, GCC, MSVC).
  • CMake (version 3.21 or higher).
  • Git (for fetching dependencies via CMake).
  • On macOS: Ensure you have Bluetooth permissions and the necessary Apple frameworks (CoreFoundation, CoreBluetooth - handled automatically by CMake).

Building the Project

This project uses CMake's FetchContent to automatically download and configure its dependencies (Slint, SimpleBLE, and GoogleTest).

# Clone the repository
git clone <repository-url>
cd HeartRateMonitorCpp

# Create a build directory
mkdir build && cd build

# Configure the project
cmake ..

# Build the executable
cmake --build .

Running the Application

After building, you can run the main application:

./HeartRateMonitor

Note: On macOS, the terminal or application running the executable may prompt you for Bluetooth permissions.

Running Tests

Unit tests are built alongside the main application. You can run them using:

./UnitTests

Dependencies

  • Slint (v1.15.1) - Declarative GUI toolkit.
  • SimpleBLE (v0.7.1) - Cross-platform BLE library.
  • GoogleTest (v1.14.0) - C++ testing framework.

About

A modern, cross-platform desktop application for monitoring heart rate via Bluetooth Low Energy (BLE). Built with C++17, the Slint declarative UI framework, and SimpleBLE. This application is particularly useful for live streamers, as it includes a dedicated, customizable transparent overlay window designed to be captured in OBS Studio.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors