Arduino Health Monitor Syestem Synopsis

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

Project Title: Patient Health Monitoring System Using Arduino Nano

1. Introduction: The Patient Health Monitoring System aims to continuously monitor and display vital
health parameters such as heart rate, blood oxygen level (SpO2), and body temperature. Utilizing
Arduino Nano as the main microcontroller, this project integrates various sensors to provide real-time
health data, making it useful for both healthcare professionals and patients.

2. Objectives:

To develop a compact and portable health monitoring device.

To monitor heart rate and SpO2 using the MAX30100/02 sensor.

To measure body temperature using the LM35 temperature sensor.

To display the collected data on an OLED screen.

To incorporate an alert system using a buzzer for abnormal health readings.

3. Components Used:

Arduino Nano: The microcontroller for processing and controlling the system.

MAX30100/02 Sensor: Measures heart rate and blood oxygen levels.

LM35 Temperature Sensor: Monitors body temperature.


OLED Display: Shows the real-time health parameters.

Buzzer: Provides audible alerts for abnormal readings.

Resistors, Jumper Wires, and Breadboard: For circuit connections.

4. Working Principle: The system operates by reading the values from the sensors connected to the
Arduino Nano. The MAX30100/02 sensor collects heart rate and SpO2 data, while the LM35 sensor
measures the body temperature. The Arduino processes this information and displays it on the OLED
screen. If any readings exceed predefined thresholds, the buzzer is activated to alert the user.

5. Implementation Steps:

Circuit Design: Connect all components according to the schematic diagram.

Programming: Write the Arduino code to read sensor data, process it, and control the display and
buzzer.

Testing: Conduct tests to ensure accurate readings and proper functioning of the alert system.

Final Integration: Assemble the components into a compact housing for ease of use.

6. Conclusion: The Patient Health Monitoring System using Arduino Nano is a cost-effective and efficient
solution for real-time health monitoring. It provides essential health data that can be crucial for timely
medical interventions. This project can be further enhanced with features like wireless data transmission
for remote monitoring, making it suitable for telemedicine applications.

7. Future Work: Future enhancements may include the integration of additional sensors (e.g., ECG,
glucose level), mobile app connectivity for data visualization, and the use of IoT platforms for remote
health monitoring.

Schematic Diagram:-

Program :-

#include <Wire.h>

#include <Adafruit_SSD1306.h> // OLED display library

#include <Adafruit_Sensor.h>

#include <Adafruit_MAX30100.h> // For MAX30100/02 sensor

#define SCREEN_WIDTH 128


#define SCREEN_HEIGHT 64

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

Adafruit_MAX30100 heartSensor;

int tempPin = A0; // LM35 temperature sensor connected to A0

int buzzerPin = 9; // Buzzer connected to D9

float temperature;

const float maxTempThreshold = 38.0; // Threshold temperature in °C (adjust as needed)

const float minSpO2Threshold = 90.0; // Minimum SpO2 level (%) for alert

const float minHeartRate = 60.0; // Minimum heart rate for alert

const float maxHeartRate = 100.0; // Maximum heart rate for alert

void setup() {

Serial.begin(9600);

// Initialize OLED display

if (!display.begin(SSD1306_I2C_ADDRESS, OLED_RESET)) {

Serial.println(F("SSD1306 allocation failed"));

for (;;); // Don't proceed, loop forever

// Initialize MAX30100/02 sensor

heartSensor.begin();

heartSensor.setMode(MAX30100_MODE_SPO2_HR); // Set sensor to measure heart rate and SpO2


pinMode(buzzerPin, OUTPUT); // Set buzzer pin as output

// Display initialization message

display.clearDisplay();

display.setTextSize(1);

display.setTextColor(SSD1306_WHITE);

display.setCursor(0,0);

display.print("Patient Health Monitoring");

display.display();

void loop() {

// Read temperature from LM35

int tempValue = analogRead(tempPin);

temperature = (tempValue * 5.0 * 100.0) / 1024;

// Read heart rate and SpO2

heartSensor.update();

float heartRate = heartSensor.getHeartRate();

float spo2 = heartSensor.getSpO2();

// Check if any vital signs are beyond safe ranges

if (temperature > maxTempThreshold || spo2 < minSpO2Threshold || heartRate < minHeartRate ||


heartRate > maxHeartRate) {

digitalWrite(buzzerPin, HIGH); // Turn on the buzzer


} else {

digitalWrite(buzzerPin, LOW); // Turn off the buzzer

// Display data on OLED

display.clearDisplay();

display.setCursor(0, 0);

// Display temperature

display.print("Temp: ");

display.print(temperature);

display.println(" C");

// Display heart rate

display.print("Heart Rate: ");

display.print(heartRate);

display.println(" bpm");

// Display SpO2 (Blood Oxygen Level)

display.print("SpO2: ");

display.print(spo2);

display.println(" %");

display.display();
delay(1000); // Update every second

You might also like