STM32WB Bluetooth® LE – Heart Rate Sensor Project

Revision as of 19:37, 26 January 2022 by Registered User (→‎Application Initialization)

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
Connectivity Heart-Rate-Profile-Overview.png


2. Heart Rate Sensor Example

2.1. Requirements

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

2.1.2. Hardware requirements

A Nucleo board[7], a STM32WB USB dongle[7], or a STM32WB Discovery Kit[8] is necessary to install the application.

Hardware platforms illustration
Connectivity hardware-presentation.png


Plus a smartphone with ST BLE Sensor application (for Android[9], or iOS[10]).

2.1.3. Project Directory

The "BLE_HeartRate" application is available by downloading STM32CubeWB MCU Package[11].

Heart Rate project directory
Connectivity heartRate.png

2.2. Project Description

2.2.1. Structure

2.2.2. Application Initialization

Connectivity HR Application Initialization.png
puce1.png
Initialize the system (HAL, Clock, Power Mode, RTC IP, Timer Server, Debugger)

Infinite loop for run mode

puce2.png
Initialize the BSP (LEDs, buttons…), BLE Transport Layer, Debugger

Wait for initialization done

puce3.png
Initialize the BLE App – GAP level

Manage GAP events

puce4.png
Initialize the BLE App – GATT level

Initialize services

puce5.png
Initialize HeartRate service

2.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
Connectivity HeartRate-Project.png


2.3. Build and Install

Follow steps described in Bluetooth® LE Build and Install Application page, applying it for BLE_HeartRate project.

2.4. Handle

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
Connectivity Heart-Rate-screen-cap-1.jpg


Your device should be visible from this interface, connect to it:

Heart Rate application interface 2
Connectivity Heart-Rate-application-2.jpg


Now bpm measurement is displayed in real time.

Heart Rate application interface 3
Connectivity Heart-Rate-App-3.jpg


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
Connectivity heart-rate-DK.png

3. References