Computer Organization WORD 123
Computer Organization WORD 123
Of
BACHELOR OF TECHNOLOGY
IN
ELECTRONICS AND COMMUNICATION
SUBMITTED BY:
Yash Kumar Sen
(SAP ID:1000020921)
Devansh Dangwal
(SAP ID:1000020825)
B.TECH-ECE
The work presented in this report is a result of the student’s efforts under
my supervision.
(Signature) (Signature)
Yash Kumar Sen(1000020921) Mr. Prabha Shankar Sharma
Devansh Dangwal (1000020825) Assistant Professor
Electronics And Communication Electronics And Communication
Engineering DIT University
DIT University
Place – Dehradun
Date -18-04-2025
Table Of Content :
1. OBJECTIVE
2. MOTIVATION
3. BLOCK AND CIRCUIT DIAGRAM
4. WORKING OF PROJECT
5. COMPONENTS REQUIRED
6. FUNCTIONAL TESTING RESULTS
7. CONCLUSION AND FUTURE PROSPECTS
8. RESEARCH AND REFERENCES
1.Objective:
The objective of a health monitoring system is to continuously track and
record vital health parameters such as heart rate, blood pressure, oxygen
levels, and body temperature in real time. It aims to provide early detection
of abnormalities, enabling timely medical intervention and improving
patient outcomes. These systems support both patients and healthcare
providers by ensuring accurate, up-to-date health data, enhancing disease
management, especially for chronic conditions. They also promote
preventive healthcare and reduce the burden on hospitals by enabling
remote monitoring
2.Motivation:
The motivation behind a health monitoring system lies in the growing need
for timely, efficient, and continuous healthcare. With rising cases of chronic
illnesses and an aging population, traditional healthcare methods often fall
short in providing consistent care. Health monitoring systems empower
individuals to take control of their health by providing real-time data and
alerts, helping prevent serious complications. They reduce hospital visits,
save costs, and improve the quality of life through remote monitoring.
3.Block Diagram:
4.Circuit Diagram:
5.Components Required:
Software Used
(i)Arduino UNO
• Sensors: Arduino acts as the central controller, receiving data from
various health-related sensors like heart rate monitors, temperature
sensors, blood pressure sensors, or pulse oximeters.
• Processing: It processes the sensor data in real-time and may trigger
alerts if any readings fall outside a predefined range, signaling
potential health issues.
• Local Display: Arduino can display data locally on a screen like an
LCD or OLED, so users can quickly monitor their own health.
(ii)ESP 8266
• Wireless Connectivity: The ESP8266 connects the Arduino system to
the internet, allowing the health data to be sent to cloud platforms or a
mobile app. This feature enables real-time remote monitoring by
healthcare professionals or caregivers.
• Data Logging: The ESP8266 can send the collected data (e.g., heart
rate, body temperature) to online databases or cloud services for
storage and analysis, making it easy to track a patient’s progress over
time.
• Alert System: The module can send email or SMS notifications to
caregivers if any critical health thresholds are exceeded.
Hardware Used
(i)Pulse Sensor: A pulse sensor in a health monitoring system tracks
the heart rate by detecting blood flow through infrared light. It sends
real-time heart rate data to a microcontroller (e.g., Arduino) for
processing. Integrated with modules like ESP8266, the data can be
transmitted to cloud platforms for remote monitoring. This enables
early detection of heart irregularities, alerts healthcare providers, and
supports continuous health tracking, enhancing proactive healthcare
management.
(ii)DSB18b20 Sensor: The DS18B20 is a digital temperature sensor
used in health monitoring systems to measure body temperature.
When connected to an Arduino, it provides accurate temperature
readings. Integrated with the ESP8266 for Wi-Fi connectivity, the data
can be sent to a cloud platform or mobile app for remote monitoring.
This system allows healthcare providers to track temperature
fluctuations in real time, helping detect fever or other temperature-
related health issues early.
(iii)Buzzer: A buzzer in a health monitoring system, when connected
to an Arduino, acts as an alert mechanism. It sounds an alarm if the
system detects abnormal health parameters, such as an elevated heart
rate or high temperature. Integrated with the ESP8266, it can also
trigger notifications to caregivers via the internet. This ensures timely
intervention, making it an essential feature for immediate alerts in
remote health monitoring systems.
(iv)Breadboard: A breadboard is used in a health monitoring system
to prototype and connect components like sensors (pulse sensor,
DS18B20), Arduino, and ESP8266 without soldering. It allows easy
testing and modification of the circuit design. The breadboard
facilitates the quick assembly of the system, enabling sensor data
collection, processing by the Arduino, and Wi-Fi communication
through the ESP8266 for remote monitoring, making it ideal for
developing and testing health monitoring projects.
(v)4.7kΩ and 1kΩ Resistor: In a health monitoring system using
Arduino and ESP8266, 4.7kΩ and 1kΩ resistors are commonly used
for voltage division and current limiting in sensor circuits. The 4.7kΩ
resistor is often used with digital sensors like the DS18B20
(temperature sensor) for proper data transmission by ensuring stable
voltage levels. The 1kΩ resistor helps limit current in circuits like the
pulse sensor, protecting components and ensuring accurate signal
processing by the Arduino.
(vi)10k Potentiometer: A 10kΩ potentiometer in a health monitoring
system is used to adjust sensor calibration or set specific thresholds
for certain health parameters. For example, it can fine-tune the
sensitivity of analog sensors (e.g., temperature sensors or pulse
sensors) connected to the Arduino. In some cases, it may adjust the
reference voltage or control the input to sensors for accurate readings,
ensuring the system operates optimally in detecting changes in health
metrics.
(vii)16*2 LCD Display: A 16x2 LCD display in a health monitoring
system, connected to an Arduino, is used to visually display real-time
health data, such as heart rate, body temperature, or other vital signs.
It features 16 columns and 2 rows, allowing for clear and concise
presentation of information. This helps users or caregivers monitor
health parameters directly from the device, ensuring immediate
visibility of critical health data in both home and clinical settings.
(viii)Jumper Wires: Jumper wires are essential in a health
monitoring system using Arduino and ESP8266 for making
temporary connections between components like sensors,
microcontrollers, and the power supply. They enable quick and
flexible prototyping on a breadboard or circuit board. Jumper
wires facilitate the setup of sensors such as pulse, temperature,
and others, ensuring accurate data transmission between
components, while also allowing easy adjustments during the
development or testing phase of the health monitoring system.
6.Working Code:
• Arduino Uno:
#include <LiquidCrystal.h>
#include <SoftwareSerial.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define USE_ARDUINO_INTERRUPTS true
#include <PulseSensorPlayground.h>
SoftwareSerial esp(10, 11);
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
#define ONE_WIRE_BUS 9
#define TEMPERATURE_PRECISION 12
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress tempDeviceAddress;
int numberOfDevices, temp, buzzer = 8;
const int PulseWire = A0;
int myBPM, Threshold = 550;
PulseSensorPlayground pulseSensor;
unsigned long previousMillis = 0;
const long interval = 5000;
void setup()
{
lcd.begin(16, 2);
Serial.begin(9600);
esp.begin(115200);
sensors.begin();
numberOfDevices = sensors.getDeviceCount();
pulseSensor.analogInput(PulseWire);
pulseSensor.setThreshold(Threshold);
pulseSensor.begin();
pinMode(buzzer, OUTPUT);
digitalWrite(buzzer, HIGH);
lcd.setCursor(0, 0);
lcd.print(" IoT Patient");
lcd.setCursor(0, 1);
lcd.print(" Monitor System");
delay(1500);
digitalWrite(buzzer, LOW);
lcd.clear();
}
void loop()
{
myBPM = pulseSensor.getBeatsPerMinute();
if (pulseSensor.sawStartOfBeat())
{
beep();
lcd.setCursor(0, 1);
lcd.print("HEART:");
lcd.print(myBPM);
lcd.setCursor(9, 1);
lcd.print(" BPM");
delay(20);
}
sensors.requestTemperatures();
for (int i = 0; i < numberOfDevices; i++)
{
if (sensors.getAddress(tempDeviceAddress, i))
{
temp = printTemperature(tempDeviceAddress);
lcd.setCursor(0, 0);
lcd.print("BODY:");
lcd.print(temp);
lcd.print(" *C");
}
}
upload();
}
int printTemperature(DeviceAddress deviceAddress)
{
int tempC = sensors.getTempC(deviceAddress);
return tempC;
}
void beep()
{
digitalWrite(buzzer, HIGH);
delay(150);
digitalWrite(buzzer, LOW);
}
void upload()
{
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval)
{
previousMillis = currentMillis;
esp.print('*');
esp.print(myBPM);
esp.print(temp);
esp.println('#');
}
}
• ESP8266:
#include "ThingSpeak.h"
#include <ESP8266WiFi.h>
void setup()
{
Serial.begin(115200);
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
internet();
}
void loop()
{
internet();
if (Serial.available() > 0)
{
delay(100);
while (Serial.available() > 0)
{
value = Serial.readString();
if (value[0] == '*')
{
if (value[5] == '#')
{
value_1 = ((value[1] - 0x30) * 10 + (value[2] - 0x30));
value_2 = ((value[3] - 0x30) * 10 + (value[4] - 0x30));
}
else if (value[6] == '#')
{
value_1 = ((value[1] - 0x30) * 100 + (value[2] - 0x30) *
10 + (value[3] - 0x30));
value_2 = ((value[4] - 0x30) * 10 + (value[5] - 0x30));
}
}
}
}
upload();
}
void internet()
{
if (WiFi.status() != WL_CONNECTED)
{
while (WiFi.status() != WL_CONNECTED)
{
WiFi.begin(ssid, pass);
delay(5000);
}
}
}
void upload()
{
ThingSpeak.writeField(Channel_ID, Field_Number_1,
value_1, myWriteAPIKey);
delay(15000);
ThingSpeak.writeField(Channel_ID, Field_Number_2,
value_2, myWriteAPIKey);
delay(15000);
value = "";
}