Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

ESP32-Based Health Monitoring System with MAX30102 and MAX30205 Sensors

View and Edit Project In Cirkit DesignerImage of ESP32-Based Health Monitoring System with MAX30102 and MAX30205 Sensors

Circuit Documentation

Summary

This circuit is designed to monitor and display various health parameters such as temperature and heartbeat. It features an ESP32 microcontroller interfaced with a MAX30102 pulse oximeter and heart-rate sensor, a MAX30205 temperature sensor, and a 16x2 LCD display for output. The circuit also includes a potentiometer to adjust the contrast of the LCD. The ESP32 microcontroller is programmed to process the sensor data and manage the display interface, providing a user-friendly menu system to navigate through the health metrics.

Component List

ESP32 38 PINS

MAX30102

MAX30205

16X2 LCD

Potentiometer

Wiring Details

ESP32 38 PINS

MAX30102

MAX30205

16X2 LCD

Potentiometer

Documented Code

The code for the ESP32 microcontroller is written in C++ and is designed to be compiled and uploaded using the Arduino IDE. The code includes libraries for the LCD display and EEPROM, defines a menu structure for navigating through the health metrics, and contains functions for managing the display, reading sensor data, and checking for abnormal readings.

// Include necessary libraries
#include <LiquidCrystal.h>
#include <EEPROM.h>

// Define the menu structure
typedef struct linker {
  // ... (omitted for brevity)
} Menu;

// Initialize the LCD with the appropriate pins
LiquidCrystal lcd(26, 25, 18, 17, 16, 15);

// Define global variables for health metrics and thresholds
// ... (omitted for brevity)

// Define functions for configuration and display
// ... (omitted for brevity)

void setup() {
  // Set up serial communication and LCD
  // Initialize menu structures and configure pins
  // ... (omitted for brevity)
}

void loop() {
  // Main program loop that checks for button presses
  // Updates health metrics and displays warnings if necessary
  // ... (omitted for brevity)
}

The full code includes detailed setup functions for each menu and sub-menu, functions to update and display the maximum and minimum recorded temperatures and heartbeats, and functions to handle user input from buttons connected to the ESP32. The code also simulates temperature and heartbeat readings for demonstration purposes.