MediSense is an IoT-based smart medication adherence system designed to support elderly patients and caregivers through wearable sensing, gesture recognition, and smart pillbox monitoring.
The system combines TinyML-based wrist gesture detection, BLE communication, and a React dashboard to infer medication-taking behavior in real time.
The system is designed to support elderly users and caregivers by improving medication adherence monitoring through wearable sensing and smart IoT interactions.
- Smart pillbox lid monitoring using Arduino Nano 33 BLE
- TinyML gesture recognition using IMU sensor data
- BLE communication between wearable, pillbox, and dashboard
- Medication reminder and snooze system
- Guardian monitoring dashboard
- Real-time medication adherence tracking
- Multi-source evidence-based medication decision logic
- Weekly adherence visualization and monitoring
[Wearable Arduino Nano 33 BLE]
↓
[IMU Sensor Data]
↓
[TinyML Gesture Classification]
↓
[BLE Communication]
↓
[React Dashboard]
↓
[Medication Adherence Decision]
The system combines multiple evidence sources to infer medication adherence:
- Pillbox lid open/close events
- Wrist gesture classification
- Reminder timing
- Snooze interactions
These signals are fused into adherence states such as:
- Taken
- Probably Taken
- Possibly Taken
- Missed
This approach improves reliability compared to relying on a single sensor event.
The TinyML workflow includes:
- Motion data collection from wearable IMU sensors
- Feature extraction and preprocessing
- Dataset normalization
- TensorFlow model training
- TensorFlow Lite conversion
- Deployment to Arduino Nano 33 BLE
The wearable device classifies activities such as:
- Pill-taking gesture
- Water-drinking gesture
- Other activity
The TinyML model runs directly on-device using TensorFlow Lite for Microcontrollers, enabling low-latency inference without cloud processing.
BLE communication enables real-time synchronization between:
- Wearable device
- Smart pillbox
- Monitoring dashboard
The system transmits gesture events, pillbox state changes, and adherence-related signals to the frontend dashboard.
- React
- TypeScript
- Vite
- Tailwind CSS
- shadcn-ui
- Arduino Nano 33 BLE
- BLE Communication
- IMU Sensors
- TensorFlow
- TensorFlow Lite for Microcontrollers
- TinyML
- Python
MediSense-MedCare/
├── app/ # React frontend dashboard
├── arduino/ # Arduino BLE firmware
├── tinyml/ # TinyML training and export scripts
├── docs/ # Documentation, screenshots, demo video
├── README.md
cd app
npm install
npm run devUpload:
gesture_inferenceto the wearable Arduino Nano 33 BLEpillbox_detector_bleto the pillbox Arduino Nano 33 BLE
Medication reminders with snooze support and real-time adherence interaction.
The following demo videos show different components of the MediSense system in action.
Overview of the complete MediSense system including TinyML gesture recognition, BLE communication, smart pillbox interaction, and dashboard monitoring.
Demonstrates the medication reminder workflow, including reminder alerts, snooze functionality, and user interaction.
Demonstrates BLE communication between wearable devices, the smart pillbox, and the monitoring dashboard with real-time adherence updates.
Demonstrates medication setup, scheduling configuration, and patient management functionality within the dashboard.
- Mobile application support
- Cloud synchronization
- Federated learning personalization
- Improved sensor fusion logic
- Enhanced BLE reliability
- Real-world clinical evaluation
This project was developed as part of the Mobile & Ubiquitous Computing module at the University of Birmingham Dubai.
The project focuses on IoT systems, context-awareness, wearable computing, BLE communication, and TinyML-based activity recognition for smart healthcare applications.
Developed as a collaborative university project focused on smart healthcare and ubiquitous computing systems.

