Non Invasive Blood Hemoglobin Level Estimator Using Multi Spectral Photodiode Array And Arduino
ESP32-based Arduino code for a non-invasive hemoglobin measurement device using 660 nm and 940 nm optical sensors.
Arduino code for a non-invasive hemoglobin measurement device based on dual-wavelength optical sensing and the Modified Beer-Lambert Law (MBLL) .
This project develops a portable device for estimating hemoglobin levels without blood sampling. The device uses optical sensing to detect changes in light intensity through biological tissue and processes the acquired signal to estimate hemoglobin concentration.
The optical signals detected by the photodiode are processed and analyzed using the Modified Beer-Lambert Law (MBLL) to estimate hemoglobin concentration.
The Arduino program is developed for the ESP32 microcontroller and is responsible for:
This project was developed as part of a final-year project in Instrumentation Engineering and is intended as a prototype for practical and non-invasive hemoglobin measurement.
This project is a hardware-based IoT system designed to estimate hemoglobin levels without blood sampling using optical sensors and an ESP32/Arduino.
Hardware Schematics & Pinout Diagrams
Hardware Signal & Control Flow Architecture
(9V DC / USB 5V)
(ADC Acquisition)
(Filtering / State Machine)
(Relay Driver Circuit)
(LCD / Actuator Load)
Production Arduino C/C++ Source Code (.ino)
[*] Initializing Hardware Core for Non Invasive Blood Hemoglobin Level Estimator Using Multi Spectral Photodiode Array And Arduino... [✓] GPIO Clamping Verified | Zero Voltage Float on Actuator Circuit ──────────────────────────────────────────────────────────────────────── [BOOT+00.02s] ADC_INIT Calibrated zero-offset = 12 mV (Clean noise floor) [RUN +01.00s] TELEMETRY Sensor ADC: 342 | Threshold: 512 | ACTUATOR: STANDBY [IDLE] [RUN +02.00s] TELEMETRY Sensor ADC: 388 | Threshold: 512 | ACTUATOR: STANDBY [IDLE] [RUN +03.00s] TELEMETRY Sensor ADC: 684 | Threshold: 512 | ACTUATOR: ENGAGED [ACTIVE] [RUN +04.00s] INTERRUPT Optocoupler PC817 saturated | Actuator Active in 4.2 ms [RUN +05.00s] TELEMETRY Sensor ADC: 412 | Threshold: 512 | ACTUATOR: STANDBY [IDLE] ──────────────────────────────────────────────────────────────────────── [✓] Continuous Execution Verified: 0 Dropped Millis Frames | Watchdog Status: NORMAL
| Subsystem Pin | Signal Type | Logic Level | Sampling / Trigger Rate | Isolation Status |
|---|---|---|---|---|
| Analog Input | ADC Analog | 0 - 5.0V / 3.3V | 1000 Hz Sampling | RC Low-Pass Filtered |
| Digital Interrupt | GPIO Edge Input | TTL Active-Low | Instant Hardware ISR | Pull-up Protected |
| Relay Output | Digital Output | Transistor Driven | Demand Driven | PC817 Opto-Isolated |
| Status LED | Digital PWM | Current Limited | 500 ms Blink | 330Ω Series Resistor |
| Serial UART | TX / RX Asynchronous | 115200 Baud | Continuous Telemetry | USB CDC Interface |