The 600W Wake-up Light with Temperature Logger

This here is a thorough documentation of my beloved wake-up light I had built when I first came to Belgium in 2014. Days were long, I didn't have much to do so I had settled myself on this project. I still use it on a daily basis and anyone to see it had a very positive reaction. So I'll give all the data here to build one. First of all, this is what it looks like:


So what this thing does is basicly to wake you up in the morning by progressively increasing ambient light level. The idea is from Philips, who has such products available in Europe. Philips products use a PWM to increase light level of a single bulb. For my design, you need to install 8 lightbulbs and input the relative intensity of each lightbulb to the Arduino code. Using this information, the processor calculates light levels for all 256 combinations possible with the 8 bulbs and uses an array of these combinations to create a gradual increase of light level. The wake-up period, in my case, is set to 30 minutes and depending on the power level set, the processor uses around 40 different combinations. Below is a demo of lighting sequence. Due to the high intensity of light, the video is of low quality. But if you focus on the background you can see the contrast in light levels. When the device is fully lit, it's impossible to look at it with the naked eye.


And here is one with light level measurement:


The device also has a temperature logger which logs the temperature of the last day on a 128x64 graph. This comes in handy to see how cold your room gets during the night.


Behind the box there are switches to:
  • Turn on/off the wake-up light feature
  • Adjust time and power for the wake-up light
  • Turn on/off the smallest bulb for night light
Back side
Wake-up Setup Menu
When the wake-up is finished, the device switches to a low light level and stays like that for 10 minutes. I have added this feature because if it suddenly turns off after 30 minutes of high intensity lighting, it feels extremely dark and ruins your morale.

The device also calculates the actual sunrise time in your location and plots it on the OLED screen. For this you have to input the latitude, longitude and timezone in the Arduino code. The wake-up timer can be set so that it doesn't activate if the set wake-up time is at least 30 minutes later than actual sunrise but since you have a button to turn it on and off, this is not so necessary.
Ingredients
  • An Arduino board (I use a Nano)
  • 128x64 SSD1306 OLED display for Arduino
  • DS3231 real time clock for Arduino
  • An 8 output relay board for Arduino
  • DHT22 temperature sensor for Arduino
  • 9V 0.5A adapter for Arduino
  • Lm7805 regulator
  • Three SPDT switches
  • Two 10K potentiometers, one of them multiple turn for high accuracy
  • An IKEA Pluggis box
  • 8 light bulbs and their sockets
  • Some jumper cables
  • Some power cables
  • A PC with USB
  • Basic knowledge and grit to program Arduino and tackle problems
  • KNOWLEDGE TO HANDLE AC WALL POWER

Build Guide

Schematics




Steps

First connect your temperature sensor, real-time clock, OLED display and relay board to Arduino.

Make sure you have the following libraries installed in your Arduino library.
  • Adafruit_SSD1306 - for OLED screen
  • Adafruit_GFX_Library_master - for OLED screen
  • U8glib - for graphics
  • DHTlib - for temp sensor
  • RTClib - for RTC
Set your real-time clock to the correct time.

Program your arduino with my fancy code you can find here. Adapt your timezone and preferences accordingly.

Drill holes on your box for the buttons and potentiometers and mount these components. Then do the wiring for these components.

Fit isolated electrical boxes into the box and make the required AC connections between these and the relay board. BE CAREFUL WITH THIS!! TIDY UP YOUR AC POWER!!


Add an additional signal cable to your box if you want to mount your DHT22 temperature sensor away from the box.



Mount the 9V adapter somewhere in the box and provide it AC also.


Assemble your box with the bulbs and the rest of the electronic components.


Use a lot of chokes to protect your Arduino from electromagnetic interference. The switching of the bulbs create huge jolts to the Arduino wiring.

First run without AC power to the relay board and see if everything is in order. If so, check your connections carefully and give AC power to the board. CAREFULLY!!

If everything is fine, check also if the heat from the bulbs is melting your box. With my design where there is a total of 600W lightbulbs, the top portion of the box becomes softer than a cushion in 20 minutes. If it's melting, consider smaller lightbulbs or never set it to full-power.

Test it a bit more while you are around and make sure everything is safe. Then enjoy your smooth wake-ups in the morning.

Bill of Materials

Earlier Sketches


Arduino Code

First version was featured in Instructables.com in January 2015. Link here.
Creative Commons License
The 600W Wake-up Light with Temperature Logger by Kerem Başaran is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Comments