Back to Projects
Raspberry Pi 4Arduino UNOPythonDjango 4.2Django RESTDjango ChannelsCeleryRedisMySQL 8OpenCVIoT

Care Companion

A microprocessor project that ended up a working prototype: a mobile assistant for patients and elderly people living at home, combining continuous vitals monitoring with physical actions — moving to the patient, opening a medicine drawer, sounding an alarm.

Software Developer & Team Lead

The Problem

Home care depends on someone being present. Missed medication, an unnoticed fever, a gas leak, or a fall can all go undetected for hours, and commercial monitoring systems are priced out of reach for most households.

The Solution

Split the work across two processors by what each is good at. An Arduino UNO owns the sensors, where tight timing loops matter; the Raspberry Pi 4 handles vision, voice, decisions, and the web layer. They talk over serial, so a slow decision on the Pi never delays a sensor read.

System Architecture

The dashboard never talks to hardware. Sensor readings land in MySQL and the UI reads from there, with Django Channels pushing updates over WebSocket. Celery and Redis own scheduled medication reminders, so timing survives a page being closed — the browser is a view onto state, not a participant in control.

Care Companion separates real-time sensing on the microcontroller from decision-making on the Pi, with the dashboard reading only from the database.SENSING - ARDUINO UNODHT11temperaturePulse Sensorheart rateMQ-2gasIR FlamefireserialCONTROL - RASPBERRY PI 4 (8GB)Vitals Pipelinethresholds + alertingCamera v3person detectionVoice Commandswake-word controlGPIO / PWMACTUATIONL298N + TT Motorsrover mobilitySG90 Servomedicine drawerBuzzer + LCDlocal alertsevents + readingsAPPLICATIONDjango + DRFREST APIDjango ChannelsWebSocket pushCelery + Redisreminder schedulingMySQL 8.0vitals history
Care Companion separates real-time sensing on the microcontroller from decision-making on the Pi, with the dashboard reading only from the database.Scroll sideways to see the full diagram

Key Features

Innovative solutions developed to solve complex technical challenges.

Continuous vitals monitoring

DHT11 for temperature and a Pulse Sensor Amped for heart rate, sampled on the Arduino and streamed to the Pi over serial for threshold checks.

Automated medication dispensing

An SG90 servo opens the correct drawer on schedule with a buzzer prompt, driven by Celery so the timing holds independently of the dashboard.

Hazard detection

MQ-2 gas and IR flame sensors raise immediate local alarms and push a notification to caregivers, without waiting on a network round trip.

Autonomous mobility

TT gear motors through an L298N driver, with Pi Camera v3 person detection and obstacle avoidance so the rover can reach the patient.

Voice control

Wake-word commands let a patient summon or direct the rover without reaching a screen or a button.

Caregiver dashboard

Live vitals and trend charts over WebSocket, plus a panic-button feed, reading from the database rather than polling hardware.

Challenges & Breakthroughs

1

Challenge: Sensor sampling and computer vision on one processor make each other unreliable — vision work starves the timing-sensitive reads.

Growth: Gave the Arduino sole ownership of sensors and left the Pi to decisions and vision, with serial between them. Splitting by timing requirement rather than by feature is what made both halves predictable.

2

Challenge: Medication reminders cannot depend on a browser being open, but the obvious implementation puts the timer in the request cycle.

Growth: Moved scheduling into Celery with Redis as the broker, so reminders fire from a worker regardless of who is watching. Anything with real-world consequences belongs outside the request cycle.

3

Challenge: Emergency alerts that travel through the web stack inherit its latency, which is the wrong trade for a gas leak.

Growth: Made hazards trigger the local buzzer and LEDs directly on the device, then notify over the network as a second step. The safety-critical path should not depend on anything that can be slow or offline.

Results & Impact

4
Sensors
Temperature, pulse, gas, and flame, sampled continuously
2
Processors
Arduino UNO for sensing, Raspberry Pi 4 for decisions and vision
Local first
Alert Path
Hazards sound on-device before any network call

Next Project

UniShare