• EUR€
  • £GBP
  • $USD

Arduino Based Wake-Up Light project

DFRobot Dec 19 2012 501

Author: Jeroen 

Hi all,

I've decided to make a Wake-Up light, because I hate it when my old alarm clock wakens me with that annoying buzzer. This Wake-Up light gradually increases the light, to simulate a rising sun.

This will help me to get out of bed with a better mood. :-)

Here are the main features of my Wake-Up light:

  • A normal alarm (as you can find in any alarm)
  • A repeating alarm, which you can set for every day of the week separately.
  • Fade-out: to decrease the light gradually and fall asleep
  • It can function as a night lamp
  • Various settings, such as maximum light intensity, wake up durarion, ...

So here's a description on how to build it.

First, you'll need to get all the parts:

  • Arduino (Uno)
  • 12 ultra bright leds
  • 12 resistors: 300 ohms
  • NPN transistor (I used TIP-120)
  • 7 push buttons
  • 8 resistors (10 k)
  • LCD Screen Module
  • A buzzer
  • Some male headers, so you could easily plug everything into the Arduino
This is the schema to solder everything together:

Arduino Based Wake-Up Light
The schema to solder everything together can also be found here.
I also added the original drawing (I used Fritzing to draw this) on the public Dropbox folder.

To make it easy to attach or remove the leds with the rest of the circuit, I soldered a plug on the wires for the leds.
This is handy when you want to put everything in a housing at the end:

On the picture below, all parts are soldered together.
Arduino Based Wake-Up Light 
The source code for this project can be downloaded here. You will find the Arduino sketch and the necessary libraries. I did not create the libraries "Bounce", "LiquidCristal_I2C" and "Wire", but you will need them and they are also open source. (all the rest is home brew ;-) )
For a better understanding of the source code, I created a schema of the lifecycle. In this schema, you can find the various states the Wake-Up Light can have.
Also, I created a diagram to visualize the screenflow.

The original files are also added in my public Dropbox folder. (These schemas were created with the free program Dia)


Once everything is soldered together, and the program is uploaded to the Arduino, it is time to create a proper housing:
(I first drew a draft in SketchUp, you can download it too here)

And here is the final result.

Note: The LCD says "Maandag", which means "Monday" in my language, but in the source code attached, all text strings are translated to English.

In the rules for the X-Project, it is mentioned to take picture from your User ID, together with the project, so here it is.

I think I've posted all the information and documentation I got.
If there are any questions, remarks or suggestions, please let me know in the comments!

And if you like my project, please vote! :-)