. IoT Patient Health Monitoring System ~ SmartElectronicsDIY

IoT Patient Health Monitoring System

 

Project Overview

This system continuously monitors a patient’s heart rate, body temperature, and blood oxygen level (SpO₂) and sends real-time data to a mobile app / web dashboard using IoT. Doctors or caretakers can monitor the patient remotely and receive alerts if values go abnormal.


๐ŸŽฏ Features

  • ✅ Real-time monitoring

  • ✅ Remote access via Internet

  • ✅ Emergency alert system

  • ✅ Low cost & scalable

  • ✅ Suitable for hospitals & home care


๐Ÿง  Parameters Monitored

ParameterSensor
Heart RateMAX30100 / MAX30102
SpO₂MAX30100 / MAX30102
Body TemperatureLM35 / DS18B20
Room Temp & Humidity (Optional)DHT11

๐Ÿงฉ Components Required

  • ESP8266 NodeMCU (Wi-Fi)

  • MAX30100 / MAX30102 Pulse Oximeter

  • LM35 Temperature Sensor

  • OLED Display (0.96” I2C) (optional)

  • Buzzer (alert)

  • Breadboard & Jumper Wires

  • USB Cable

  • Power Supply


๐Ÿ”Œ Circuit Connections

MAX30100 → ESP8266

MAX30100ESP8266
VIN3.3V
GNDGND
SDAD2
SCLD1

LM35 → ESP8266

LM35ESP8266
VCC3.3V
OUTA0
GNDGND

Buzzer

    • → D5

  • − → GND


☁️ IoT Platform

You can use:

  • Blynk

  • ThingSpeak

  • Firebase

  • MQTT Dashboard

(Example below uses Blynk)


๐Ÿ“ฑ Mobile App Output


๐Ÿงพ Arduino Code (ESP8266 + MAX30100)

#include <Wire.h> #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> #include "MAX30100_PulseOximeter.h" #define BLYNK_PRINT Serial #define BUZZER D5 char auth[] = "Your_Blynk_Auth_Token"; char ssid[] = "WiFi_Name"; char pass[] = "WiFi_Password"; PulseOximeter pox; uint32_t tsLastReport = 0; void setup() { Serial.begin(9600); pinMode(BUZZER, OUTPUT); Blynk.begin(auth, ssid, pass); if (!pox.begin()) { Serial.println("MAX30100 Failed"); for(;;); } } void loop() { Blynk.run(); pox.update(); if (millis() - tsLastReport > 1000) { int heartRate = pox.getHeartRate(); int spo2 = pox.getSpO2(); Blynk.virtualWrite(V1, heartRate); Blynk.virtualWrite(V2, spo2); if (heartRate < 50 || spo2 < 90) { digitalWrite(BUZZER, HIGH); Blynk.notify("⚠ Patient Health Alert!"); } else { digitalWrite(BUZZER, LOW); } tsLastReport = millis(); } }

๐Ÿ“Š Output Example


๐Ÿ“˜ Applications

0 comments:

Post a Comment