Inspiration
We wanted to turn smartwatch data into something actionable: a warning that helps a driver recognize rising drowsiness risk and take a break. Our idea was to combine wearable signals with a simple alert delivered directly on the wrist.
What it does
DrowsyAlert is a Garmin smartwatch prototype designed to estimate drowsiness risk from heart rate and wrist movement. The interface is intended to display basic vitals and a risk rating, with an amber warning state and a flashing red alert accompanied by sound and vibration when risk crosses the alert threshold.
How we built it
We divided the project into wearable-data preparation, machine-learning development, and the Garmin app. Our core inputs are heart rate and acceleration. Beat-to-beat intervals and blood oxygen are optional inputs, depending on their availability. We excluded camera and facial features from this version.
We developed the watch app in Monkey C using Garmin’s Connect IQ SDK and VS Code, targeting the Forerunner 970. We established a working starter app in the simulator while developing the model separately.
Challenges we faced
The main challenge is matching the model’s training inputs to signals the watch can actually provide. Sampling rates, units, missing readings, and feature calculations must agree across both systems.
We also worked through SDK configuration, Java setup, signing, and the build process to get the app running.
What we learned
Building a wearable machine-learning application requires more than training a model. Sensor quality, consistent preprocessing, readable graphics, and reliable alert behavior all affect whether the result is useful.
We also learned to separate model predictions from simulated alerts so we can test the interface without presenting demonstration scores as real detection.
What’s next
Complete the model integration, compare watch predictions against reference examples, and test the full alert sequence on the physical watch. We also want to evaluate the trade-off between missed drowsiness events and false alarms.
Built With
- github
- html
- javascript
- monkeyc
- objective-c
- python
- vscode
Log in or sign up for Devpost to join the conversation.