1. Heart Rate Profile Presentation
Heart Rate Profile (HRP) [1] is a Generic Attribute Profile (GATT) based low energy profile defined by the Bluetooth® Special Interest Group[2]
The HRP, widely used in fitness applications, defines the communication between a GATT-server of a Heart Rate Sensor device, such as a wrist band, and a GATT-client Collector device, such as a smartphone or tablet.
Heart Rate Sensor is the device that measures heart rate data and other information, it can be defined as a GAP peripheral and GATT server implemented with the Heart Rate Service [3]
This wiki page is the description of the Heart Rate Sensor project provided within the STM32CubeWB MCU Package[4]
Bluetooth® LE Heart Rate profile overview |
---|
2. Heart Rate Profile Interaction
Heart Rate Profile enables a Heart Rate Collector to connect and exchange data with a Heart Rate Sensor in sports and fitness applications. Heart Rate Profile defines two roles:
- The Heart Rate Sensor
The Heart Rate Sensor measures the heart rate and exposes it via the Heart Rate Service. The sensor also contains the Device Information Service, which contains information for example about the manufacturer of the device. The Heart Rate Sensor is the GATT server.
- The Heart Rate Collector
The Heart Rate Collector accesses the information exposed by the Heart Rate Sensor and can for example display it to the end user or store it on non-volatile memory for later analysis. The Heart Rate Collector is the GATT client.
2.1. GAP - Generic Access Profile
Defines and manages advertising and connection :
2.2. GATT - Generic Attribute Profile
Defines and manages in/out data exchanges :
Once Bluetooth® LE connection established & notification enabled :
- Heart Rate measurement provided to remote every 1s.
- Connection interval may be change by application.
3. Requirements
3.1. Software and System requirements
Software required are the following (minimum IDEs version) :
- IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2
- RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.31
- STM32CubeIDE toolchain V1.7.0 [5].
Programmer:
- STM32CubeProgrammer[6] : To flash the board with an already generated binary
3.2. Hardware requirements
P-NUCLEO-WB55 [7] or STM32WB5MM-DK Discovery Kit [8] is necessary to install the application.
Hardware platforms illustration |
---|
|
3.3. Smartphone Application
ST BLE Sensor application (for Android[9], or iOS[10]) or ST BLE ToolBox application (for Android[11], or IOS[12]).
4. STM32WB Heart Rate Sensor Example Description
4.1. Project Directory
The "BLE_HeartRate" application is available by downloading STM32CubeWB MCU Package[13].
Heart Rate project directory |
---|
4.2. Project Description
4.2.1. Structure
Software project structure with the most important parts :
WARNING: Do not modify the files in Middlewares folder
4.2.2. Application Initialization
The different steps of application initialization are described bellow :
4.2.3. GAP & GATT Initialization & Interaction
Interaction between Middleware and User Application is described in the following illustration. lionel to explain...
Heart Rate project architecture |
---|
4.3. Build and Install
Follow steps described in Bluetooth® LE Build and Install Application page, applying it for BLE_HeartRate project.
5. Heart Rate Collector - Smartphone Application
Once the BLE Heart Rate application installed on the STM32WB platform, launch the ST BLE Sensor smartphone application.
Click on Connect one Device interface:
Heart Rate application interface 1 |
---|
Your device should be visible from this interface, connect to it:
Heart Rate application interface 2 |
---|
Now bpm measurement is displayed in real time.
Heart Rate application interface 3 |
---|
With Discovery Kit Platform, the Heart Rate is also visible from the board LCD screen, and Heart pulse is illustrated:
Heart Rate on DK illustration |
---|
6. References
- ↑ Heart Rate profile specification
- ↑ Bluetooth® SIG
- ↑ Heart Rate service specification
- ↑ STM32CubeWB MCU Package
- ↑ STM32CubeIDE
- ↑ STM32CubeProgrammer Software
- ↑ P-NUCLEO-WB55 package
- ↑ STM32WB5MM-DK board
- ↑ ST BLE Sensor Android application
- ↑ ST BLE Sensor iOS application
- ↑ ST BLE Toolbox Android Application
- ↑ ST BLE Toolbox iOS Application
- ↑ STM32CubeWB MCU Package