Every night, people think ahead to their schedule the next day to decide when to wake up. For students especially, they may have early starts to some days and later starts on others. Alarming allows one to go to sleep without worrying about the next morning, and takes care of the alarm setting automatically.

What it does

Alarming is an alarm clock that uses the Google Calendar API to see upcoming events on one's calendar. It views the next event on the calendar and sets an alarm based on the time of that event, ensuring that the user will always have plenty of time to wake up and get ready for the event. Like any other alarm clock, Alarming also displays the current time, with the added feature of displaying the name of the upcoming event when an alarm goes off.

How we built it

The script to access the Google Calendar API is written in Python and is run on a Raspberry Pi. The Raspberry Pi communicates date, time, and alarm data over a serial port with an Arduino Uno, which uses the data to display the time on an LCD screen and set off the alarm.

Challenges we ran into

We had trouble figuring out how to access and use the Google Calendar API, and turn off the alarm without using a button (we settled on capacitive touch sensors after running into problems with a vibration sensor which would pick up audio vibrations from the alarm).

Accomplishments that we're proud of

We're happy that our final product is packaged in one neat box and can run standalone just like a normal alarm clock. We enjoyed leveraging the power of the Internet to build something to add convenience to daily life.

What we learned

We learned how to program in Python, interface with the Google Calendar API, and use Grove sensors with the Arduino.

What's next for Alarming

Alarming should be able to figure out how much time the user needs to get up in the morning, and adjust the time of the alarm relative to the start of the first event in a day accordingly.

Share this project: