Flunk Alarm: A Smart Drowsiness Detection and Response System
Inspiration
The idea for Flunk Alarm was born from a familiar struggle among students—falling asleep during late-night study sessions. We wanted to design a system that not only detects drowsiness but also actively intervenes to keep the user awake. Inspired by concepts in human-computer interaction and automation for behavioral assistance, we aimed to create a practical yet lighthearted solution blending robotics and computer vision.
What We Learned
Throughout the development process, we deepened our understanding of embedded systems, real-time image processing, and servo kinematics. We explored how the ESP32-CAM with an OV2640 sensor could perform facial and eye detection efficiently within tight memory and processing limits. We also learned to manage client–server communication between our hardware and web interface, applying principles of IoT architecture and control systems.
How We Built It
Hardware Setup: We used an ESP32-CAM with OV2640 for facial recognition and a differential wrist mechanism controlled by GoBilda servos to move both the camera and the water gun precisely. Software Integration: The backend was developed in Python (OpenCV, Mediapipe) for real-time eye-state detection and drowsiness analysis. Web Interface: We designed a control dashboard where users can view the camera feed, toggle the system on/off, and manage study or break modes. Actuation: When prolonged eye closure is detected, a servo pulls a string attached to the toy water gun trigger, spraying a light mist of water to wake the user.
Challenges We Faced
Processing Limitations: The ESP32-CAM’s limited RAM and CPU power restricted the complexity of facial detection models we could deploy locally. Synchronization: Ensuring smooth coordination between the camera feed, detection logic, and servo motion required fine-tuning response delays. Servo Precision: Calibrating the differential wrist for accurate targeting demanded iterative testing and mechanical adjustment. Connectivity: Maintaining a stable video stream while sending control signals over Wi-Fi introduced occasional latency and packet loss. Time Management: With the limited time given to us compared to previous hackathons, we had to adjust and manage our work ethics to complete this project on time.
Reflection
Flunk Alarm taught us how to integrate mechanical design, embedded programming, and web technologies into a unified system. Beyond the technical lessons, it reminded us that innovation can arise from everyday problems, and that sometimes, the best solutions are the ones that make people laugh while they learn.
Built With
- arduino
- autodesk-fusion-360
- bambulaba1
- esp32
- html
- ov2640
- pressurizedwaterexcruter
- python
- servo

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