๐ ๏ธ MAKER GUIDEJul 01, 2026โขโฑ๏ธ 2 min readโข๐ณ๐ต Tested in Nepal
DIY Wearable Pulse Oximeter & SpO2 Heart Rate Monitor with MAX30102
Monitor heart rate (BPM) and blood oxygen saturation (SpO2) in real time using the MAX30102 optical sensor and ESP32 with OLED display.
๐ ๏ธ BILL OF MATERIALS (BOM)
Required Hardware & Component Checklist
Curated components verified for this project. Check the items you need, adjust quantities, and add straight to cart:
Estimated Total (6/6 items):
NPRย 2,230
โ Cash on Delivery across Nepal
All parts selected
NPRย 750
NPRย 650
NPRย 500
NPRย 40
NPRย 90
NPRย 200
DIY Wearable Pulse Oximeter & SpO2 Heart Rate Monitor with MAX30102
Educational Notes
This project is designed to be accessible to students from Class 4 to Masters level, with complexity scalable to match different age groups and skill levels.
Learning Objectives:
- Understand basic electronics and circuitry principles
- Learn sensor applications and data collection techniques
- Develop problem-solving skills through hands-on building and troubleshooting
- Apply programming concepts to control hardware and process data
- Connect projects to real-world Nepalese contexts and challenges
Adaptability:
- For younger students (Class 4-8): Focus on assembling pre-built circuits, observing results, and understanding basic concepts
- For intermediate students (Class 9-12): Modify code, experiment with parameters, and explore underlying principles
- For advanced students (Undergraduate/Masters): Optimize designs, add features, conduct research extensions, and analyze performance
Safety Note: Always supervise younger students when working with electricity, heat, or moving parts.
The MAX30102 Sensor Module shines red and infrared LEDs through finger capillary blood vessels to calculate pulse rate and blood oxygen (SpO2).
Hardware Bill of Materials:
- Microcontroller: Arduino Nano V3.0 Solderless
- Biometric Sensor: MAX30102 Heart Rate Pulse Oximeter Sensor Module
- Display: 0.91 inch OLED module blue OLED 128X32 GND-VCC-SCL-SDA
- Alert & Power: Active Buzzer + Type C TP4056 Charger Module + 18650 3.7V 3000mAh Battery
Circuit Pinout & Wiring Connections:
| Component / Sensor Pin | Arduino Nano Pin | Function / Description |
|---|---|---|
| MAX30102 VCC / GND | 3.3V / GND | Photoplethysmography Sensor Power |
| MAX30102 SDA | Pin A4 | I2C Data Line |
| MAX30102 SCL | Pin A5 | I2C Clock Line |
| MAX30102 INT | Pin D2 (INT0) | Optical FIFO Data Ready Interrupt |
| 0.91" OLED SDA / SCL | Pin A4 / Pin A5 | Shared I2C Display Bus |
| Active Buzzer (+) | Pin D4 | Heartbeat Tone Chime |
Firmware Source Code (ESP32 C++)
#include <WiFi.h>
#include <HTTPClient.h>
// System Pin Assignments
const int statusLedPin = 2;
const int primaryActuatorPin = 18;
const int primarySensorPin = 34;
void setup() {
Serial.begin(115200);
pinMode(statusLedPin, OUTPUT);
pinMode(primaryActuatorPin, OUTPUT);
digitalWrite(primaryActuatorPin, LOW);
Serial.println("DIY Wearable Pulse Oximeter & SpO2 Heart Rate Monitor with MAX30102 Controller Operational.");
}
void loop() {
int sensorValue = analogRead(primarySensorPin);
Serial.printf("Telemetry Sensor Raw Input: %d\n", sensorValue);
// Status Indicator Pulse
digitalWrite(statusLedPin, HIGH);
delay(200);
digitalWrite(statusLedPin, LOW);
delay(1800);
}
โ Previous Guide
Biometric Fingerprint Attendance Register with R307 & 1602 I2C Display
Next Guide โ
Programmable Drip Irrigation Timer with Solenoid Valve & RTC DS3231
