Smart Medibox is a smart device designed to assist users in managing their medication effectively. It integrates several features to ensure medication adherence and proper storage conditions.
-
Medication Reminders: The device reminds users to take their medication at specified times through alarms.
-
Temperature and Humidity Monitoring: Continuous monitoring of temperature and humidity inside the Medibox ensures that medications are stored under optimal conditions. Users are notified if conditions deviate from the desired range.
-
Light Control: A motorized curtain controls the amount of light entering the Medibox, helping to maintain the appropriate environment for medication storage.
- ADAFRUIT SSD 1306 OLED Monochrome Display (128x64)
- ESP32 Devkit V1
- DHT11 Temperature and Humidity Sensor (Configurable for DHT22)
- SG90 Micro Server Motor
- LDRs and 10kΩ Resistors
- Push Buttons
- The project is developed using the specified components. If components are changed, parameters may need adjustment accordingly.
To use the Smart Medibox:
- Connect the specified components according to the provided instructions.
- Upload the provided code to the ESP32 Devkit V1.
- Configure medication reminders, temperature/humidity thresholds, and light control preferences as needed.
- Place medications inside the Medibox and close the lid.
- The device will handle reminders, monitor conditions, and control the light automatically.
- Git
- PlatformIO with Arduino Framework Set up
- Relevant hardware for testing if you are not intending to use simulations
- Node-RED Installed Environment and an MQTT Broker
-
Clone the repository:
git clone https://github.com/eshansurendra/Smart-MediBox
[!IMPORTANT] If you intend to simulate the project using the Wokwi extension, clone the relevant branch using:
git clone -b Wokwi-Simulation https://github.com/eshansurendra/Smart-MediBox
-
PlatformIO typically installs required libraries automatically. If not, install them referring to the
configuration.ini
file displayed above. -
Compile and Upload/Simulate.
-
After completing the above steps, all basic and major functionalities will work, except for the Node-RED based functionalities. Follow these instructions to deploy an instance of the Node-RED Dashboard:
-
Import the
./Node-Red Flow/flows.json
to the Node-RED canvas. -
Set up required parameters of the flows including the MQTT server and then deploy. (This is defaulted to the Mosquitto testing server.)
This project was first developed as the Semester 4 Project in the Module EN2853 - Embedded Systems & Applications
Contributions are welcome!
- Bug Fixes: If you find any bugs or issues, feel free to create an issue or submit a pull request.
- Feature Enhancements: If you have ideas for new features or improvements, don't hesitate to share them.
This project is licensed under the MIT License.