Introduction: 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".

Step 1: Tools and Components

As always lets start with getting all the components required.



Step 2: 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.

Step 3: 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.

Step 4: 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.

Step 5: 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.

Step 6: 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.

Step 7: 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.

Step 8: 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


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.print("Im all, geared up!!!! \n");

Serial.print("LF Lamp");


void loop()


if (Serial.available() > 0) {

// read the incoming byte:

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



case 'b': // if case b is received

digitalWrite(blue, HIGH);

digitalWrite(red, LOW);

digitalWrite(green, LOW); //Blue led is ON



case 'g':

digitalWrite(blue, LOW);

digitalWrite(red, LOW);

digitalWrite(green, HIGH); //green led is ON



case 'y':

digitalWrite(blue, LOW);

digitalWrite(red, HIGH);

digitalWrite(green, HIGH); //Green and red led is ON



case 'l':

digitalWrite(blue, HIGH);

digitalWrite(red, LOW);

digitalWrite(green, HIGH);

incomingByte='*'; //Blue and green led is ON


case 'p':

digitalWrite(blue, HIGH);

digitalWrite(red, HIGH);

digitalWrite(green, LOW);

incomingByte='*'; //Blue and red led is ON


case 'w':

digitalWrite(blue, HIGH);

digitalWrite(red, HIGH);

digitalWrite(green, HIGH);

incomingByte='*'; //All the leds are ON


case 't':

temp = analogRead(tempPin);//Reads analog temperature pin

temp = temp * 0.48228125;

Serial.print("TEMPERATURE = ");


Serial.print("*C");//Sends the temperature in degree C







Step 9: 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.