Skip to main content
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
MediWear

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