Project #045: Pulse Oximetry Heart Rate Monitor | Cypress Semiconductor
Project #045: Pulse Oximetry Heart Rate Monitor
In today's project, we implement a BLE Heart Rate Monitor with PSoC 4 BLE.
A common method to measure heart rate pulses is by using Photoplethysmography (PPG), which uses LEDs to illuminate the skin and photodiodes to measure reflected light, allowing us to measure changes in the amount of absorbed light.
More from wikipedia - With each cardiac cycle the heart pumps blood to the periphery. Even though this pressure pulse is somewhat damped by the time it reaches the skin, it is enough to distend the arteries and arterioles in the subcutaneous tissue. If the pulse oximeter is attached without compressing the skin, a pressure pulse can also be seen from the venous plexus, as a small secondary peak. The change in volume caused by the pressure pulse is detected by illuminating the skin with the light from a light-emitting diode (LED) and then measuring the amount of light either transmitted or reflected to a photodiode. Each cardiac cycle appears as a peak, as seen in the figure. Because blood flow to the skin can be modulated by multiple other physiological systems, the PPG can also be used to monitor breathing, hypovolemia, and other circulatory conditions. Additionally, the shape of the PPG waveform differs from subject to subject, and varies with the location and manner in which the pulse oximeter is attached.
An Analog Front End (AFE) can be implemented using the programmable analog blocks (opamps, comparators) on the PSoC 4 BLE device. This AFE can directly interface with the pulse oximeter (sensor) and sense changes in values that are eventually digitized by the SAR ADC Component. The ADC output is filtered using an FIR filter and then converted into actual heart rate values.
The BLE Component is configured with the GATT Profile for a Heart Rate Sensor. A BLE Client like a cell phone or laptop can read these heart rate values using the standard GATT Profile. Additionally, this project implements the BLE Battery Service to transmit battery information to the Client.
You can download this PSoC Creator project here from GitHub: https://github.com/cypresssemiconductorco/PSoC-4-BLE/tree/master/100_Projects_in_100_Days/Day045_Optical_Heart_Rate_Monitor