Hi, my name is Ben Hur Gonçalves, I'm a mechatronic engineer graduated in Universidade de São Paulo, Brazil in 2010. Nowadays I work with real state, but I do these projects with arduino on weekends, just for fun. This was one of my first projects. As I researched here in Instructables, I saw some projects of alarm clocks, and bluetooth speakers, but none like this, so I wanted to share with you guys. Hope you like it. If people find it fun, I'll post some other projects, like a roomba-like robot I made with arduino to clean my house.
In this project I made an alarm clock with a 8 digit display. This clock does not have buttons, and all the configuration is done via IR (infrared), with a TV remote, or any other IR remote. In the early days I put a buzzer, so you could configure two different alarm times (but by changing the code you can put whatever N amount of different alarms you want).
Also I did put a microphone in it, so the display is always off, and just activates when it hears a sound. This is very useful if you don't want all that light upon your face when you are trying to sleep, and just activates when you clap your hands or whatever. I used a humidity sensor to detect this variable and the temperate too.
In the future I plan to put a relay module, so the arduino could activate a humidifier when your bedroom gets too dry (because of the air conditioning). Another thing I did was to use an old Sony Ericsson MPS-60 speaker I had to play musics from my cellphone, via Bluetooth.
Step 1: Components:
THE PARTS YOU WILL NEED:
- Humidity sensor DHT11 Ebay (1);
- Arduino Pro Mini 5V Ebay (2);
- Amplifier 2x3W Ebay (3);
- HX1838 and infrared remote Ebay (4);
- Sound sensor Ebay (5);
- Buzzer Ebay (6);
- 8 Digit display Ebay (7);
- Prototyping PCB Ebay (8);
- Bluetooth receiver Ebay (9);
- Arduino pro mini programmer Ebay (10);
- A tube for the box;
- Sony Ericsson MPS-60 or any other two speakers you may have;
- Silicon glue;
- Plenty of wires, electric tape, common drills and a bigger (flat bit for wood) wich you will use to make the bigger holes for the speakers, and two different old cellphone chargers, to transform 110/220V to 5V, one you will use on the amplifier circuit and the other with the arduino, otherwise when the music is on, the arduino will shut down.
Step 2: Soldering and Mounting the PCB
Start soldering the prototyping PCB following the connections listed below. I used connectors to plug the components, as seen in one of the images above, but it was a personal choice. This way, in future projects I still can change their configuration, add and remove pieces.
- Pin 0 >>> GND
- Pin 1 >>> Arduino Pro Mini - Digital input pin 13
- Pin 2 >>> VCC
- Pin 0 >>> GND
- Pin 1 >>> Arduino Pro Mini - Digital input pin 12
- Pin 2 >>> VCC
- Pin 0 >>> GND
- Pin 1 >>> VCC (the positive pin is the middle one, watch out)
- Pin 2 >>> Arduino Pro Mini - Digital input pin 12
- Pin 0 >>> VCC
- Pin 1 >>> Arduino Pro Mini - Analog input A0
- Pin 2 >>> Not Used
- Pin 3 >>>GND
- Pin 0 >>> VCC
- Pin 1 >>> GND
- Pin 2 >>> Arduino Pro Mini - Digital input pin 04
- Pin 3 >>> Arduino Pro Mini - Digital input pin 05
- Pin 4 >>> Arduino Pro Mini - Digital input pin 06
Note: the digital pins can be anyone you want, but the DHT11 have to be an analog input pin. You can change the pins inside the code. I suggest you try your assembly on the breadboard first before soldering. At last you just have to connect the 5V fountain on the VCC and GND of the arduino, and that's it.
Step 3: Soldering and Mounting the Speakers
This part is easy. Just solder the amplifier pins using the image as a guide. The amplifier has positive and negative pins that will come from a different 5V fountain (than the one that goes to the arduino), two pins for each of the speakers you have, and three others that goes on the stereo sound cable: one is the common, one is for left channel and one for right channel.
Use the drills to make the holes for the speakers and one for the microphone, and one for the buzzer. Glue everything with silicon. Plug the bluetooth receiver on the audio cable that goes to the amplifier and at last solder positive and negative wires on the USB pins of the receiver (you cant dismount the receiver and solder directly on the board, it's easy).
Step 4: The Code
Just download the code and install the libraries.
EXPLAINING THE CODE
One the #define section, I named the code from the infrared remote for each of the numbers pressed. In case you have a different remote, from a different manufacturer, you just open the serial monitor and look for which code the remote sends on each button pressed. The numbers are named in Portuguese - sorry for that :p. The names "BOT_OK", "BOT_MENU" and "BOT_VOLTAR" are for the buttons "enter", the right arrow, and the left arrow respectively. These last two are responsible for changing what is displayed, forward and backward. The display's instances are:
- Nothing to be displayed;
- Time (hours.minutes.seconds);
- Humidity and temperature;
- Alarm 01;
- Alarm 02;
I configured two different alarm times, however the code can be adjusted to fit as many alarms as you want. When you set on and off the alarm, the buzzer makes a sound with two beeps. When the alarm rings, it will stay ringing for 30 seconds (annoying seconds) or you have to press the "enter" button in order to set it off. You can put new functions on the buttons. Also, when ringing, the display will show the word "Acorda", which is the Brazilian term for "Wake up". I guess you can adapt that for you own language.
Step 5: Final Words
ROOM FOR IMPROVEMENTS
In the future, if one wants to control the humidity inside the room, you can buy this relay module (Ebay) and create a situation that if the humidity falls below, let's say, 40%, it activates a humidifier, so you can have a glorious nap time, with the air conditioner turned on, without waking up with your throat dry.
There are several ports of the Arduino which weren't used. You can have many ideas to take advantage of that and from the fact that you already use a sound sensor. For example, one can put leds inside it to blink as the music plays on the speakers. Or to intensify their light according to the time (hour) of the day, brighter during day and darker during the night. If you used an RGB led, you could change its color via remote control, how cool would it be that?
Well, that's it guys. Hope you guys liked, please comment. If you like it, I will make instructions for building a roomba-like robot controlled via bluetooth from the cellphone, but also autonomous. Sorry for the bad English guys. If you liked, please follow my channel. See you in the comments section! Bye.