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
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