Voice Controlled Desk Lamp (SMS Notifier)
by ThisIsSteve in Circuits > Arduino
2081 Views, 23 Favorites, 0 Comments
Voice Controlled Desk Lamp (SMS Notifier)
In this instructable I'm going to show you how to build a desk lamp. With a twist to it the lamp is voice controlled via android phone and furthermore it can change colors. This project is quite similar to my old instructable, with a lot of updates.
The main purpose of this inscrutable is-
- Because I like posting here
The lamp is battery powered and it has LEDs that lights it up. Furthermore it turns blue when you receive a text message on your mobile, you have to install an android app on your mobile. The app also has a voice control feature that lets you chose a color by using the voice recognition system like "Siri".
Tools and Components
As always lets start with getting all the components required.
Components
- Arduino UNO
- RBG LED (or Individual red, blue, green LEDs)
- Bluetooth Module (I used HC-05)
- Li-ion Battery 9V or 12V
- 470 ohm Resistor
- An old bulb
Tools
Battery
For the battery I used Li-ion battery, that I found in an old laptop. I made many projects with the battery and I did not experience any problems. The battery had 8 individual cells and 5 of them worked fine, I paired up 4 of them (in series) and got a 13.7V. If you viewed my previous instructables you would find the same battery pack.
Bluetooth
Once you're done with creating the outer wooden case its time to assemble the circuit. The circuit is quite simple and easy to make in an hour.
Let's start with the the Bluetooth module, I used HC-05 a cheap one found on ebay. The only down side to the module is it runs on 3.3V logic, but that can be easily over come using a voltage divider (its just 2 resistors).
For those who don't want to waste time on the voltage divider you can buy an arduino compatible Bluetooth module you can find a link in the "Tools and Components" step.
I have added two circuits to this step one with the HC-05 and another with the arduino compatible one.
Led Time
For the LEDs you could go with a RBG led, but I did not find them bright enough so soldered a group of red, green, blue and white LEDs together to get the same effects as an RBG LED. The LEDs are assembled in a common cathode configuration.
The Wooden Box
You see the pics you would probably realize that I'm not so good at woodworking. I tried working with plywood and finally I got this. Well this was the first time I worked on it so if you have some advice leave it in the comments.
Lets Get a Bulb
I did not want to leave it at just plane old LEDs, that's when I had an idea of lighting a bulb with it. So all you need is a fused bulb and you have to remove the holder by using a cutter. There are plenty of YouTube videos that demonstrate how to do this.
The LEDs look better when it lights the bulb.
Finalizing the Circuit
Once you are done with the Bluetooth module and the bulb its time to complete the circuit by adding the LEDs to the circuit. Follow the circuit above to assemble the circuit. The LEDs are common cathode and if you are going to buy an RBG LED double check that it is common cathode, this circuit won't work for common cathode.
Code
After the circuit is complete it's time to upload the code, the code is quite simple and you could enter different analog values to get different colors.
For example.
- Green + Red = Yellow
- Red + Blue = Pink
Code
float temp;
int tempPin = 0;
int green = 2; //sets the green led on pin2
int blue = 3; //sets the blue led on pin 3
int red = 4; //sets the red led on arduino pin4
int incomingByte = 0; // for incoming serial data
void setup()
{
pinMode(red, OUTPUT); //Set led pins to be outputs
pinMode(blue, OUTPUT);
pinMode(green, OUTPUT); //Set led pins to be outputs
digitalWrite(blue, LOW); //set led low for start up
digitalWrite(green, LOW); //set led low for start up
digitalWrite(red, LOW); //set led low for start up
Serial.begin(9600);
Serial.print("Im all, geared up!!!! \n");
Serial.print("LF Lamp");
}
void loop()
{
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();
}
switch(incomingByte)
{
case 'r': // if case r is recived
digitalWrite(red, HIGH); // Turn ON the led
digitalWrite(green, LOW); // Turn off the led
digitalWrite(blue, LOW);// Turn off the led
incomingByte='*';
break;
case 'b': // if case b is received
digitalWrite(blue, HIGH);
digitalWrite(red, LOW);
digitalWrite(green, LOW); //Blue led is ON
incomingByte='*';
break;
case 'g':
digitalWrite(blue, LOW);
digitalWrite(red, LOW);
digitalWrite(green, HIGH); //green led is ON
incomingByte='*';
break;
case 'y':
digitalWrite(blue, LOW);
digitalWrite(red, HIGH);
digitalWrite(green, HIGH); //Green and red led is ON
incomingByte='*';
break;
case 'l':
digitalWrite(blue, HIGH);
digitalWrite(red, LOW);
digitalWrite(green, HIGH);
incomingByte='*'; //Blue and green led is ON
break;
case 'p':
digitalWrite(blue, HIGH);
digitalWrite(red, HIGH);
digitalWrite(green, LOW);
incomingByte='*'; //Blue and red led is ON
break;
case 'w':
digitalWrite(blue, HIGH);
digitalWrite(red, HIGH);
digitalWrite(green, HIGH);
incomingByte='*'; //All the leds are ON
break;
case 't':
temp = analogRead(tempPin);//Reads analog temperature pin
temp = temp * 0.48228125;
Serial.print("TEMPERATURE = ");
Serial.print(temp);
Serial.print("*C");//Sends the temperature in degree C
Serial.println();
delay(1000);
break;
delay(5000);
}
}
Voice Control
To start with the voice control and to get text alerts, all you have to do is install the app in the attachments. I could not get it on Google Play Store because I don't have a developer account.
The "voice(11).apk" file found in the attachments is the android application.
Load the file on your SD card and click on it.
Then install the app and select your Bluetooth module from the Bluetooth list.
Commands
"Blue"
"Green"
"Red"
"Pink"
"Yellow"
"White"