Real-Time Heart Rate Monitoring System with TFT Display and Arduino

In today’s world of smart electronics and health-focused technology, real-time health monitoring systems are becoming increasingly important. One of the most popular and practical applications in this domain is a heart rate monitoring system.

In this project, we have developed an Arduino-based real-time heart rate monitoring system with TFT display, capable of accurately detecting pulse signals and displaying live BPM (Beats Per Minute) along with a visual waveform. This system integrates a pulse sensor, Arduino microcontroller, TFT LCD display, and SD card module to create a complete embedded solution.

Unlike basic pulse sensor projects, this system goes a step further by offering:

  • Real-time graphical visualization
  • Accurate BPM calculation using interrupt-based logic
  • User-friendly TFT interface
  • Startup image display via SD card
Real-Time Heart Rate Monitoring System with TFT Display and Arduino

Components Required for Real-Time TFT LCD Heart Rate Monitoring System

  • Arduino Uno / Mega
  • Pulse Sensor (Heart Rate Sensor)
  • TFT LCD Display (ILI9341 or similar)
  • SD Card Module
  • Micro SD Card (with BMP image)
  • Connecting wires
  • Breadboard
  • Power supply

Checkout Our Similar Project: Smart Heart Rate Display System Using Adafruit FLORA and NeoPixel LEDs

LCD Display Heart Rate Monitoring System Overview

This system works by continuously reading analog signals from the pulse sensor, processing the signal to detect heartbeats, and calculating the BPM (Beats Per Minute).

The processed data is then displayed on a TFT LCD screen, along with a real-time waveform graph that visually represents the heartbeat signal.

TFT LCD used in Heart Rate Monitoring Project

How the Heart Rate Monitoring System Works

1. Pulse Signal Acquisition

The pulse sensor is connected to an analog pin of Arduino (e.g., A5). It detects blood flow changes and converts them into electrical signals.

2. Interrupt-Based Sampling

The system uses a timer interrupt to sample data every 2 milliseconds, ensuring accurate and consistent readings.

3. Heartbeat Detection Algorithm

  • Detects peaks and troughs in the signal
  • Calculates time between beats (IBI)
  • Converts IBI into BPM using formula:

BPM=60000IBIBPM = \frac{60000}{IBI}BPM=IBI60000​

4. TFT Display Output

The TFT screen displays:

  • Heart rate (BPM)
  • Live waveform graph
  • System labels and UI elements

5. SD Card Image Display

On startup, a heart image (BMP format) is loaded from the SD card and displayed on the screen.

If you want to make CPAP Mask Pressure Monitoring Device then Checkout our CPAP Device Project


Features of Smart Heart Rate Monitoring System Project

  • Real-time heart rate monitoring
  • Accurate BPM calculation
  • Live waveform visualization
  • TFT graphical interface
  • Interrupt-based signal processing
  • SD card image display
  • LED heartbeat indicator

Circuit Diagram of Arduino with TFT LCD and Analog Heart Rate Sensor

Arduino Code for Custom Heart Rate Monitoring System with TFT Interface

#include <UTFTGLUE.h> // Include the GLUE class and constructor

const int bufferSize = 100; // Size of the circular buffer
int heartRates[bufferSize]; // Circular buffer to store heart rate values
int currentIndex = 0; // Index to keep track of the current position in the circular buffer

UTFTGLUE myGLCD(0, A2, A1, A3, A4, A0); // Initialize the GLUE class with dummy arguments

//  Variables
const int PulseWire = A5;       // PulseSensor PURPLE WIRE connected to ANALOG PIN 0
const int LED = LED_BUILTIN;          // The on-board Arduino LED, close to PIN 13.
int Threshold = 550; 

PulseSensorPlayground pulseSensor; 

void setup() {
  // Initialize the LCD
  myGLCD.InitLCD();
  myGLCD.clrScr();

  // Set font and color
  myGLCD.setColor(255, 255, 255); // Set text color to white
  myGLCD.setFont(BigFont);        // Use a predefined font (assuming BigFont is available)

  // Display "Heart Rate Sensor" at the top left corner
  myGLCD.print("Heart Rate Sensor", 0, 0);

  // Display the static BPM text
  myGLCD.print("BPM=   ", RIGHT, myGLCD.getDisplayYSize() - 16); // Static position for BPM text, adjusted down by 16 pixels

  // Configure the PulseSensor object, by assigning our variables to it. 
  pulseSensor.analogInput(PulseWire);   
  pulseSensor.blinkOnPulse(LED);       //auto-magically blink Arduino's LED with heartbeat.
  pulseSensor.setThreshold(Threshold);   

  // Double-check the "pulseSensor" object was created and "began" seeing a signal. 
   if (pulseSensor.begin()) {
    Serial.println("We created a pulseSensor Object !");  //This prints one time at Arduino power-up,  or on Arduino reset.  
  }

Code Functionality Overview

The Arduino code is structured into:

  • Setup Function
    • Initializes TFT display
    • Loads image from SD card
    • Configures interrupt timer
  • Loop Function
    • Updates display when heartbeat is detected
    • Prints BPM values
  • Interrupt Service Routine (ISR)
    • Reads sensor data
    • Detects heartbeat
    • Updates BPM calculation

Applications of Heart Rate Monitoring System

This project has a wide range of real-world applications:

Healthcare Devices

  • Patient monitoring systems
  • Portable heart rate monitors
  • Fitness tracking devices

Fitness & Sports

  • Workout monitoring
  • Athlete performance tracking
  • Smart gym systems

Home Automation & IoT

  • Health-based alert systems
  • Smart wearable devices

Checkout Our IOT Heart Rate Monitoring using Arduino and Smartphone App

Educational Projects

  • Engineering final year projects
  • Embedded systems learning
  • Arduino-based research work

Our Services

At ArduinoExpert.com, we provide professional services in:

If you need a custom health monitoring system or any embedded solution, feel free to contact us.

Conclusion

This Arduino-based heart rate monitoring system with TFT display is a powerful combination of electronics, signal processing, and embedded systems design. It not only demonstrates how to measure heart rate but also how to present data in a professional and interactive way.

Whether you are a student, hobbyist, or business looking for custom embedded solutions, this project showcases the potential of Arduino in healthcare technology.

Need Help in this Project?

If you want:

  • Full project files
  • Custom modifications
  • Commercial product development

→ You can contact us through WhatsApp. We can deliver you this Project to your Doorstep with Safe Packaging or we can also provide you assistance for this project.

FAQs (Frequently Asked Questions)?

What is a heart rate monitoring system using Arduino?

It is a system that uses a pulse sensor and Arduino to measure and display heart rate in BPM.

How accurate is the Arduino pulse sensor?

It provides reasonably accurate results for educational and prototype purposes but is not a medical-grade device.

Can I use this project for commercial purposes?

Yes, with proper optimization and calibration, it can be developed into a commercial product.

Why is TFT display used in this project?

The TFT display provides a graphical interface to show BPM and waveform, making the system more user-friendly.

What is BPM in heart rate monitoring?

BPM stands for Beats Per Minute, which indicates the number of heartbeats in one minute.

Can this project be converted into an IoT system?

Yes, by adding WiFi modules like ESP8266 or ESP32, you can send data to cloud platforms.

Leave a Reply

Your email address will not be published. Required fields are marked *

Facebook
YouTube