Even though sleeping in with my dreams is now a thing of the past,
the extra time I now have to spend making them a reality sure is nice.

What is noSπooze?

noSπooze is a Raspberry Pi based smart alarm clock that doesn't turn off until you get out of bed. There's also no cheating. Jumping out of bed and then getting back in is a fruitless endeavor. Remote control integration through the use of the noSπooze Android app provides a simple and pleasant experience which helps make this alarm clock practical for everyday use. noSπooze's plethora of features are elaborated on below.

Hardware

The noSπooze alarm clock was created using a Raspberry Pi Model B, a female headphone jack to pass in audio from the Pi using an aux cable, an amplifier + speakers, a potentiometer + ADC to allow for volume control, an LED 7-segment display, a momentary push button, and a self designed pressure pad.

Pressure Pad

The most important goal was in the construction of the pad was comfort, as this pad would be slept on every night. Using two layers of conductive fabric (cotton with silver fiber) and a foam piece in between to inhibit current until one actually lays on the pad, a successful pad was designed and assembled meeting the criteria. A great deal of credit for the successful creation of the pad goes to my amazing grandmother whose experienced stitching I could have never competed with.

Text-to-speech

noSπooze provides Text-to-speech capability by employing the wonderful PicoTTS engine, one of the best offline TTS engines around.

Daily weather notification

Using OpenWeatherMap's API, at alarm-time noSπooze provides the temperature, current weather conditions, and sunset time.

Google Calendar integration

Using Google's Calendar API, at alarm-time noSπooze reads out the titles, descriptions, and times of the calendar events logged for that day.

noSπooze Android app || Music player

noSπooze is controlled remotely through the app. The noSπooze app displays the current set-alarm time, allows for changing of the alarm time, changing of wake up alarm audio file, and turns noSπooze into a music player with included "previous", "pause", "play", and "next" media controls.

f.lux inspired clock-face brightness control

noSπooze uses daily updated sunrise and sunset times in its custom brightness control schedule. During the daytime its clock-face is at its most optimal brightness. As nighttime approaches, the clock-face is dimmed, making it less jarring on the eyes.

Limitless choices for wake-up audio

With the help of mpg321 player, noSπooze allows for immense freedom regarding what you choose to wake up to. Whether it's birds chirping in the Amazon rainforest, Justin Bieber's new hit single, or one of Arnold Schwarzenegger's motivational speeches, noSπooze will play it.

Python + Node.js + Socket.IO

noSπooze was written using the Python programming language. Node.js was used as the server-side environment and socket.io was used to provide bi-directional communication between noSπooze and the Android app.

ZeroRPC

The ZeroRPC library was used to allow for communication between the running Node server written in JavaScript and the noSπooze program files written in Python.

  • Raspberry Pi
  • Python
  • Node.js
  • Socket.IO
  • ZeroRPC

Want to dig deeper?

I've made the source code for both noSπooze and the noSπooze Android application available for free online.
If you'd like to see noSπooze in action, feel free to check out the demo video I created.