This repository contains the implementation of an enhanced Medibox system using ESP32, designed to assist users in managing their medication schedules effectively. The project is part of the EN2853: Embedded Systems and Applications course.
The objective of this project is to design, implement, and verify an enhanced Medibox system that monitors light intensity, adjusts a shaded sliding window, and provides a user interface for customization.
- ๐ก ESP32-based implementation
- ๐ก Light intensity monitoring using LDRs
- ๐ช Automated shaded sliding window control
- ๐ Real-time data visualization on Node-RED dashboard
- ๐๏ธ User-customizable settings for different medicines
- ESP32 development board
- 2x Light Dependent Resistors (LDRs)
- Servo motor
- OLED display
- Push button
- Temperature and humidity sensor
- Arduino IDE
- Node-RED
- MQTT broker (test.mosquitto.org)
Arduino/
: Contains the ESP32 code for the Medibox systemNode-RED/
: Contains the Node-RED flow as a JSON fileDocumentation/
: Contains project documentation and reports
-
Light Intensity Monitoring
- Measure light intensity using two LDRs
- Display highest light intensity on Node-RED dashboard
- Indicate which LDR detects the highest intensity
-
Shaded Sliding Window Control
- Adjust servo motor angle based on light intensity
- Implement dynamic light regulation algorithm
-
User Interface
- Node-RED dashboard for real-time data visualization
- Customizable settings for minimum angle and controlling factor
- Preset options for common medicines
-
Basic Medibox Features
- Time synchronization with NTP server
- Alarm setting and management
- Temperature and humidity monitoring
- Gauge for real-time highest light intensity
- Plot for visualizing past light intensity variations
- Sliders for adjusting minimum angle and controlling factor
- Dropdown menu for selecting preset medicine options
The system uses MQTT for communication between the ESP32 and the Node-RED dashboard. The MQTT broker used is test.mosquitto.org.
- Set up the ESP32 development environment
- Implement light intensity monitoring using LDRs
- Program servo motor control based on the provided equation
- Create Node-RED flow for dashboard and controls
- Implement MQTT communication between ESP32 and Node-RED
- Test and verify all functionalities
-
EN2853: Embedded Systems and Applications course materials
-
ESP32 documentation
-
Node-RED documentation
-
MQTT protocol specification
This project enhances the basic Medibox system to provide advanced medication management features, including light sensitivity protection and customizable settings for different medicines.