Inspiration
We were inspired to make this project when considering one the most common complaints of college lifestyle: the dreaded 8 AM classes. Waking up to an alarm early in the morning not only provides an unwelcome end to a dream, but can also leave consumers feeling more tired than when they went to sleep. This seemingly paradoxical phenomenon stems from the disruption of natural sleep cycles. Normally, people wake up in the light stages of sleep, when bodily activity most closely resembles the waking state. However, when a person wakes up during a heavier stage of sleep, they retain high levels of melatonin, leading to a feeling of drowsiness.
Furthermore, we noticed college students needed an alternative to the distractions of smartphones when tracking their sleep. Hence, we endeavored to improve the sleep aspect of college lifestyle by creating a smart sleep cycle monitor to wake up users naturally by differentiating light and deep stages of sleep, all through a distraction-free interface.
What it does
Given a timer input on a keypad, WakeU divides the sleeping period into cycles of a standard length of 90 minutes. Within each cycle, the maximum change in acceleration is recorded using an accelerometer. Of these values, the minimum is selected as a threshold value. In the final cycle before the alarm, a change in acceleration in excess of this threshold signifies a shift into the light stages of sleep, setting off the alarm.
How we built it
WakeU uses an Arduino Nano and a Raspberry Pi 3 Model B. The Arduino connects to an LSM9DS1 IMU, speaker, and HC-05 Bluetooth module, which together form a wearable unit for the user. The Bluetooth module connects the Arduino to the Raspberry Pi, which analyzes the accelerometer data and triggers the alarm. Furthermore, the Raspberry Pi receives input from a 3x3 matrix keypad, which allow the user to set a timer for the alarm. We also connected an OLED screen to display the current time and time remaining for the alarm.
Challenges we ran into
A major challenge we ran into was using Bluetooth to communicate between the Arduino and Raspberry Pi. We experienced a lot of inconsistency issues and also had to learn how to set up a Serial Port Profile (SPP) on the Pi.
Furthermore, we decided early on to use the Raspberry Pi, but unfortunately it did not come with an SD card, meaning we had to delay until Day 2 to start implementation. Also regarding the Raspberry Pi, we encountered more delays because we had no ethernet cable to connect it to a computer.
Another challenge we faced was attempting to use different sensors. On day 1, we tried using the Pulse heart rate sensors, but these were completely unresponsive. We then decided to build our own EKG, but this was problematic because of noisy feedback.In addition, we initially tried to use the ADXL345 accelerometer, but we were unable to read data from the Arduino Nano, even with the library example code.
Accomplishments that we're proud of
We were able to eventually establish Bluetooth connection. In addition, we incorporated everything from a bulky breadboard into a more compact perf board design for the Arduino module.
What we learned
We learned about Arduino, Raspberry Pi, intercommunication between the Arduino and Raspberry Pi using serial ports, and how to use a heart-rate monitor (although we did not implement it in the final design).
What's next for WakeU
Future iterations of this project could incorporate other sensors such as heart-rate monitors, microphones, and ambient light sensors to make a more informed decision to sound the alarm. Additionally, we could improve on the method of waking people up with a more gentle yet effective solution that does not require an earpiece.
Team members
Jonathan Carlson, James Chen, Jeffrey Ma, Jayson Shinn, Dylon Tjanaka
Hardware components
Arduino Nano, Raspberry Pi 3 Model B, LSM9DS1, HC-05 Bluetooth Module, DIYMall Mini OLED Display, Matrix Keypad, Magnetic Speaker
Built With
- 3dprinting
- arduino
- c++
- hc-05
- lsm9ds1
- nano
- python
- raspberry-pi
Log in or sign up for Devpost to join the conversation.