The advent season started now and what shouldn’t be missing? Exactly, an advent calendar. Usually kids get this calendar, filled with sweets and candies. But sometimes also the big ones :-)
This year I got also confronted with the subject ‘advent calendar’. The basic idea was to make a advent calendar. Fast the ambition came fast ‘If I make a advent calendar already, then the right way’. :-D
So, what exactly is or is needed for an advent calendar. 24 ‘doors’ of course. The best is some bags or boxes, to put all the small, sweet surprises in for the 24 days till xmas. But what, how, why?
The decision was quickly made that it should be a house. A wooden frame, for the boxes, which looks like a house.
Great, a good plan so far.
And everybody knows about the bad boys and girls, which can’t wait for the day to come. This has to be prohibit! :-D And then I am just on a ‘diy lamp’ trip… so the house has to have a lot of lights.
So far the rough plan.
The final plan was made after a few detailed thoughts:
Every box will get a window (a house has windows, isn’t it), which lighted by an LED. To prevent the cheating, the calendar need to know which date it is and which box is removed. (I don’t need to mention that there is an arduino in the game. ;-) ). To be able to do that, every box need a ‘switch’, which is checking if the box is in the shelf or not. If someone removed the wrong box (a box from a date in the future), an alarm will be set off. However, if the box is pulled out of today, then a Christmas carol should be played.
Of course the house has to be a chimney with smoke… it is winter and people are heating. And of course the smoke has to be illuminated too.
And then we need a display, to show the current date (just in case the person is not really awake in the morning and don’t know the current date).
And since we already put so much light in the house, then should be also install some gadgets, that the calendar can also be used as light/lamp. For example, I came up with the idea to illuminate the windows randomly. Just like in a real house … here is a light on and there is a light on. And then sometimes one goes on or off here and there. The imitation of a real house, so to speak.
(If I had known what will get into … I would have thought again !! :-))
And off we went with the crafting.
First, the house had to be built. The boxes are 6.5cm x 6.5cm. In order to leave a little space, I made the openings for the boxes 7x7cm. 7cm deep, however, is not very much. This would certainly overturn the house constantly. So I extended the depth to 20cm and got a bit ‘storage space’ for slightly larger surprises. I needed a partition anyway to accommodate the wiring for the switches.
In between, I also had to solder the LEDs. For this I drilled a hole in the wood in each shelf, for the SK6811. They are round and fit exactly in a 10mm hole. The nice thing about the SK6811 is that they are ‘smart’ and only need one pin on the Arduino. You always pass on the signal to the next LED. Thus, I always needed only 3 cables, from LED to LED. And not from every LED 3 cable to the Arduino. That is very convenient.
The LEDs then fixed with hot glue and that was done.
Then the roof ridge. Here I had to cut the two windows into the wood and saw out the opening for the display. Glued in front of the window openings then the ‘window paper’ and glued the display in the opening.
And install 3 more LEDs in the chimney and fix it to the house roof.
Most tricky was the subject with the box-switches. To accomplish this, I had to cut 28 slots into the partition to sink the cables there. But only to the extent that they are just in there. (24 data lines + 1x ground per row) I had the great idea to simply take self-adhesive copper foil. Seemed easiest to me. 2 strips under the box (1x data line, 1x ground) and another strip under the box. So this would close the circle once it’s in the drawer. Unfortunately, it didn’t worked out always. A little unevenness, a small curvature in the bottom of the cardboard box … and there is no contact. So I had to put half the strips on the cardboard box with a little bit of soldering tin, so that the contact – more or less sure – was made.
Definitely it was a pretty fumble. But at some point it was done.
What was missing were the RTC (Real Time Clock, so that the Arduino knows what day it is and also rememberes when the power is gone), a receiver for the remote control (yes! Remote control for the Advent calendar! ;-) How should one otherwise switch through the light modes?) And the buzzer for the Christmas carol or the alarm.
I soldered the buzzer and the RTC to an Arduino Mega Prototyping Shield. There was already a DHT22 sensor (temperature and humidity) on it. … Well, if he’s already there, then it can be used. So the calendar also shows the temperature and humidity on the display. Why not? :-)
The receiver LED for the remote control I have installed behind the windows in the roof. So it is not visible from outside. But you have to do a bit of ‘aiming’.
In addition, I have installed a photodiode. Actually, I wanted the advent calendar to light up by itself when it gets dark. I later discarded that.
And then it was time for programming. Afterwards everything seems very logical and simple. But when you start, it’s not like that at all. You start and you always have some stumbling blocks in your way. Such as an Adruino only handles single-thread. Mostly that is not so tragic. But if you want to play a song and in the same time want to turn lights on and off, then that’s not possible.
But after many hours it was finally time. The good piece was finished … more or less.
And here is the whole thing in action:
And some more pictures
What is needed:
- Arduino Mega 2560
- SK6811 LED
- Remote control + receiver
- Tools and wood