Back to all projects
IoT
Featured
completed
MediWear
ESP32-powered wearable medication reminder with touchscreen UI, BLE sync, and adherence tracking.
Aug 2024 — May 20259 moTeam of 4
Overview
MediWear is a standalone IoT medication reminder device built on the ESP32 microcontroller. It features a touchscreen LVGL UI for scheduling up to 10 medications with dosage, frequency, and duration. The device alarms with buzzer and vibration feedback, tracks pill storage via a slot sensor, logs adherence events to NVS, and syncs schedules and logs with a companion mobile app over Bluetooth Low Energy. Built as a capstone thesis project emphasizing reliability, low power, and accessibility for non-technical users.
Key Features
- ▹Schedule up to 10 medications with name, dosage, time, frequency, and duration
- ▹Multi-alarm queue handling up to 5 concurrent alarms with buzzer and vibration feedback
- ▹Pill storage tracking via slot sensor with low-pill alert threshold
- ▹Adherence, alarm, and storage event logs persisted to NVS
- ▹BLE GATT service for companion app to push/pull schedules and read logs
- ▹Touch-driven LVGL UI with swipe-back navigation and idle cover screen
- ▹Hardware watchdog (5-second esp_task_wdt) for crash recovery
Challenges
- ▹Fitting LVGL + TFT_eSPI + BLE + ArduinoJson into a 4MB flash partition
- ▹Designing an intuitive touchscreen UI usable by elderly, non-technical users
- ▹Ensuring accurate time tracking and detecting discrepancies after power loss
What I learned
- ▹Full embedded firmware development on ESP32 with Arduino IDE
- ▹BLE GATT service design for mobile companion app integration
- ▹LVGL UI framework for resource-constrained microcontrollers
- ▹NVS-based persistent storage for logs and preferences