Inspiration
Managing medications can be stressful, especially for elderly users or people with multiple different prescriptions. Missed doses, wrongly taken doses, and forgetting to refill are problems that are commonly seen and this can lead to serious health issue in the future. We wanted to create something that not only reminds users to take their medication, but also to check in on them periodically while keeping their privacy the top priority. Thus, we created MediMate, an ecosystem with different software and hardware technologies to help people in cases of emergencies.
What it does
MediMate is a smart medication management ecosystem that connects hardware and software together to promote safe and consistent medication use. This ecosystem consists of three different devices:
- Web App: A pharmacist or trusted person can enter the person's medical conditions, emergency contacts, and medication schedules to be put in a database. Each device has its own entry and it overall is a robust system to keep track of all medication. The app can also send commands and that information to the hardware devices through UART.
- Smart Pill Box: Equipped with a display, touch button, LEDs, and locking mechanism. The smart pill box has the ability to alerts users when it is time to take their medication and lock itself when it's not. This device is intended to be unlocked purely through the secure RFID tag of the smart bracelet.
- Smart Bracelet: A wearable safety device that can alert user of medication and regularly check in with them. As the only way to bypass the emergency is through interacting with the pill box, this ensures the user's well-being and safety.
How we built it
For hardware, we used ESP32 as our main microcontrollers and brains of the devices. The devices include OLED diplays, buzzers, servo motors, touch buttons, and LEDs as their electrical component. The two devices communicate through the ESP-NOW protocol. The hardware casing of the devices are 3D-printed. For the web app, we used React as the frontend and Firebase as the host for our TypeScript backend. We also managed to create an API for sending messages to intended numbers, however, the amount of paperwork did not allow us to implement this functionality. Finally, to integrate hardware and software, we use UART as our main communication methods and API calls from open-source service from the Internet.
Challenges we ran into
We ran a lot of tests and simulations. The hardest part of this project was the integration of hardware and software. Since we have to establish the circuit diagram before starting the coding for the hardware. We also experienced a lot of issues with communication protocol, whether it being UART, I2C, SPI, or simple HIGH LOW. Some other smaller challenges were difficulty with APIs, like Twilio and Time API.
Accomplishments that we're proud of
- Building a functional ecosystem that connects the web, cloud, and physical world seamlessly.
- Handling synchronization between multiple hardware components completly wirelessly through ESP-NOW.
- Managing hardware constraints such as power consumption and memory on ESP32 while still supporting real-time communication.
- Designing a user-friendly interface for managing complex medication schedules.
What's next for MediMate
- Add Bluetooth Low Energy for wireless pairing without cables.
- Develop the web app into a mobile app.
- Expand the backend for further analytics and information on the patients.
- Design smaller circuits for the hardware devices using PCBs.
Built With
- 3dprinting
- arduino
- c++
- circuit
- esp32
- next.js
- react
- solder
- twilio
- uart

Log in or sign up for Devpost to join the conversation.