VitaSync: A Smart Band for Telemedicine Applications

Wearable smart band tracking heart rate, temperature, and SpO₂ with real-time mobile app and email alert mechanism for health irregularities.

VitaSync started as a course project for BME 4232 Telemedicine at KUET, but it quickly became one of the more hands-on experiences of my undergraduate years. The idea was straightforward: build a wearable smart band that could measure vital signs and wirelessly transmit them to a mobile app — something cheap enough to be practical in low-resource settings where commercial smartwatches are out of reach.

We were a team of five, and over the course of the semester we went from a rough block diagram on paper to a working prototype on a veroboard that could read your heart rate, blood oxygen, and temperature, display everything on a tiny OLED screen, and send the data to a doctor over email or log it to Google Sheets — all from your wrist.

System Overview

The core idea behind VitaSync is simple: sensors → microcontroller → display + wireless transmission → alert if something looks wrong. The Arduino Nano sits at the center, collecting readings from two sensors simultaneously, averaging them for stability, and deciding whether to trigger an alert or just keep logging.

The buzzer fires automatically when body temperature exceeds 40°C or SpO2 drops below 92% — both signs that something needs immediate attention.

Hardware

Component Role
Arduino Nano (ATmega328P) Central microcontroller — 16 MHz, 5V logic, 14 digital I/O pins
MAX30100 Optical pulse oximeter and heart rate sensor (I²C)
MLX90614 Contactless IR thermometer for body and ambient temperature (I²C)
HC-05 Bluetooth Wireless data link to mobile app
0.96" OLED (SSD1306) 128×32 real-time display of all four parameters
Buzzer (Electromechanical) Emergency alert — 3,300 Hz, 3–24V DC
LiPo Battery Portable power supply (3.7V nominal)
Veroboard + Switch Circuit assembly and power control
Circuit diagram

Circuit diagram

Final hardware

Final hardware implementation

How It Works

The firmware runs a continuous loop: the MAX30100 collects ten consecutive heart rate and SpO2 readings, averages them to reduce noise, and passes the result to the display and serial output. The MLX90614 reads ambient and body temperature on the same cycle. Every iteration, the Arduino checks the thresholds — if body temperature is above 40°C or SpO2 is below 92%, the buzzer activates.

Data goes two ways simultaneously: onto the OLED display for immediate local readout, and over Bluetooth to the mobile app. Inside the app (built with MIT App Inventor), the user can see all four readings live and hit one of two buttons — “Send via Email” dispatches a formatted message to a doctor or caregiver, while “Send to Google Sheet” logs the values and auto-generates trend graphs for all parameters over time.

Block diagram

System block diagram

Flowchart

System flowchart

Mobile App

The Android app was built entirely in MIT App Inventor. It pairs with the HC-05 Bluetooth module, parses the comma-separated serial output from Arduino, and displays heart rate, SpO2, ambient temperature, and body temperature in real time. The email feature uses a pre-configured recipient list, and the Google Sheet integration uses a web API call triggered by the button press.

This keeps the data flow manual by design — rather than streaming everything continuously and flooding the sheet, the caregiver or patient decides when to push a snapshot.

OLED display output

Live readings on OLED display

Mobile app output

Mobile app interface

What We Measured

Four vital parameters, all displayed together:

  • Heart Rate — beats per minute (bpm), averaged over 10 readings
  • SpO2 — blood oxygen saturation (%), averaged over 10 readings
  • Body Temperature — contactless IR reading in °C
  • Ambient Temperature — room temperature in °C, useful for clinical context

Results

Temperature readings were accurate and consistent with reference thermometers. Heart rate and SpO2 values tracked closely with a commercial smartwatch used for comparison, though there was a noticeable time delay — a direct consequence of the 10-sample averaging. This tradeoff was intentional: raw single-sample readings from the MAX30100 are too noisy to be useful, so we accepted the lag in exchange for stability.

The alert system, email dispatch, OLED output, and Google Sheet logging all worked as intended during testing. The vital parameter values were close enough to commercial devices to validate the core concept.

Alert thresholds: Buzzer triggers when body temperature > 40°C or SpO2 < 92%

Known limitations: The heart rate and SpO2 measurements have an inherent delay from averaging. The prototype runs on a non-rechargeable battery. Real-time continuous streaming to the app was not implemented in this version.

Future Work

The natural next steps are better sensor calibration, a rechargeable battery, real-time streaming mode, and eventually machine learning-based anomaly detection that could flag unusual patterns rather than relying on fixed thresholds. Making the band physically wearable — rather than a veroboard prototype — would be the next major milestone.