Introduction: Voice Control Storage in a Table Lamp !

Hello Everyone ! Welcome to my first instructable.

Do you find difficulty in storing your components like resistors, capacitors, transistors, diodes, modules, etc. Well here is an extraodrinary solution to your problem of storage.

I am a Mechatronic Engineer and I build my own projects, but there was this storage issue for my components every time I work I had to find my components first and that was a ample waste of time. So I wanted to build something that can preserve my components in a particular manner and can easily pick and place them without wasting time, using minimum space.Then I saw a table lamp and thought that almost every inventor uses a table lamp for inventing there projects. So I thought why dont we use this lamp to store our components with doing this the components will be more handy. Then I started thinking that where can I store and as I am a Mechatronic Engineer automation is my LOVE, so I had to automate this storage unit . I was literally scanning that table lamp taking it in my hands and I observed that almost every table lamp has an empty base because the base is only there to support the lamp above. And then what I started to think that how we can utilize this space.

This table lamp that I made can store up to 6 different components. The storage is in compartments like PIZZA slices where each slice contains different components.This Table Lamp is totally controled with phone by using Bluetooth module and Arduino UNO. At first you have to decide that which compartment will contain which component and store them accordingly and when you need a component you simply need to call its name as for an example you said RESISTOR then the servo will rotate in such a manner that the compartment containing the resistor will appear and you can simply pick it up and can use it anywhere, the same goes for every component.If you dont want to speak you can also click the component symbol in the application and it will appear.

Step 1: Things You Will Be Needing

Tools :

  • Glue gun
  • Protractor
  • Scissor
  • Paper cutter
  • Screw driver
  • Scale
  • Pencil

Marerials :

  • Arduino UNO
  • Bluetooth module HC-05
  • Connecting wires
  • Relay module (5V)
  • IC 7805
  • Capacitors (10uF) ------------- (2)
  • Servo motor ( High torque, 5V)
  • Servo attachments ( generally comes with the servo itself )
  • Alluminium wires (for supporting lamp)---------- (2)
  • LEDs (12V)
  • 12V wall adapter ( i'm using 12V 5A adapter for power supply )
  • Card board


Step 2: Making the Storage Unit

  • First take a piece of card board and draw a circle on it of 24cm diameter and cut it with scissor.
  • Then take a pencil and divide that circle into 4 equal parts. Now as the position control of the servo is only 180 degrees, divide the semicircle into six different compartments each of 30 degrees.
  • Take another piece of cardboard and draw a rectangle of length 7.5cm and width 2cm (width you can increase if you want bigger storage space) and cut 7 of those.
  • Similarly draw a rectangle of (6.5cm * 2cm) then draw a rectangle of (2.5cm * 2cm) and cut 6 of those each.
  • Now take your Servo program it to 0 degree.

CODE FOR SETTING THE SERVO TO ZERO POSITION :

// Connect the Servo pins as follows

// Brown ---> GND RED---> +5V of Arduino UNO ORANGE---> Pin 11 of Arduino UNO

#include<servo.h>
Servo servo1;

void setup()
{

servo1.attach(11); // servo is connected to pin 11 of arduino

}

void loop()

{

servo1.write(0); // Write servo1's position to zero

}

  • Upload the code to your arduino and wait for the servo to get to the Zero position and then remove the servo and fix it on the center of the circle which you have drawn earlier with the help of attachments.
  • Now its time to make the compartments, take those rectangular pieces and glue on the circle as shown in the figure.

Step 3: Making the Base of the Lamp

  • At first we will make the top of the base so for that cut a rectangle of 29cm * 26.5cm. Now take the circle and project the circle on the base to see that where to make the gap for component pickup.
  • After drawing the circle on the top base dived it in to similar 6 compartments and see where the first compartment is. Then cut the top base a bit more than that of first compartment for tolerance.
  • Now project the base of the servo on to the top base and cut it so we can fix the servo on the top base as shown in the figure.
  • After fixing the top base by the glue gun program the servo to rotate 0-30 degrees and see that the second compartment should come exactly under the gap of the top base and if not then set the angle in the code accordingly.

CODE FOR TESTING WHETHER THE COMPARTMENTS ARE COMING UNDER THE GAP OR NOT:

// Connect the Servo pins as follows
// Brown ---> GND RED---> +5V of Arduino UNO ORANGE---> Pin 11 of Arduino UNO

#include<servo.h>

Servo servo1;

void setup()

{

servo1.attach(11); // servo is connected to pin 11 of arduino

}

void loop()
{

servo1.write(0); // Write servo1's position to 0

delay(2000) // Delay of 2 seconds

servo1.write(30); // Write servo1's position to 30

delay(2000) // Delay of 2 seconds

servo1.write(60); // Write servo1's position to 60

delay(2000) // Delay of 2 seconds

servo1.write(90); // Write servo1's position to 90

delay(2000) // Delay of 2 seconds

servo1.write(120); // Write servo1's position to 120

delay(2000) // Delay of 2 seconds

servo1.write(150); // Write servo1's position to 150

delay(2000); // Delay of 2 seconds

}

  • After setting all of the angles with respect to the gap on the top base cut another rectangle same size as of the top base which will be your bottom base.
  • Then cut the side supporters which will separate the top base from the bottom base and they should be more than the storage height so that the storage unit can rotate freely inside the base.
  • Now complete the base and stick it rigidly in the way that it should not move a bit.
  • Now make two hole on the top base and fix the aluminium wires on it. At the end of those wire stick another piece of card board so that the LEDs can be stick on that.

Step 4: Electronics Hardware and Programming

Electronics hardware :

  • Connect the components in the same manner as shown in the circuit diagram above
  • Here we have given the relay separate supply because already th arduino is supplying the Servo motor and Bluetooth module so it can not supply enough current to induct the realy coil therefore we used IC 7805 to give external excitation.

Programming of the Arduino UNO :

#include<Servo.h>
#include <SoftwareSerial.h>

Servo servo1;

String readString;

int bttx=9; //tx of bluetooth module is connected to pin 9 of arduino

int btrx=10; //rx of bluetooth module is connected to pin 10 of arduino

SoftwareSerial bluetooth(bttx,btrx);

#define relay 8

int lamp_state = 0;

void setup() { servo1.attach(11); // servo is connected to pin 11 of arduino

Serial.begin(9600);

bluetooth.begin(9600);

digitalWrite(relay,HIGH);

pinMode(relay,OUTPUT);

}

void loop()

{

while(bluetooth.available()>0) //if bluetooth module is transmitting data

{

delay(3);

char c= bluetooth.read();

readString += c;
}

if(readString.length() >0)

{

Serial.println(readString);

if(readString=="resister" || readString=="register" || readString=="REG0" || readString=="registor" || readString=="resistor")

{ servo1.write(0); }

else if(readString=="capacitor" || readString=="capacitors" || readString=="CAP0")

{ servo1.write(20); }

else if(readString=="dial" || readString=="diode" || readString=="DIO0")

{ servo1.write(45); }

else if(readString=="transistor" || readString=="transistors" || readString=="TRAN0")

{ servo1.write(65); }

else if(readString=="model" || readString=="MOD0"|| readString=="module")

{ servo1.write(90); }

else if(readString=="screw" || readString=="screws" || readString=="SCR0" || readString=="school")

{ servo1.write(120); }

else if(readString=="light on" && lamp_state == 0 || readString=="lights on" && lamp_state == 0 || readString=="LON0" && lamp_state == 0)

{ digitalWrite(relay,LOW); lamp_state = 1; }

else if(readString=="light off" && lamp_state == 1 || readString=="lights off" && lamp_state == 1 ||readString=="light of" && lamp_state == 1 || readString=="lights of" && lamp_state == 1 || readString=="LON0" && lamp_state == 1)

{ digitalWrite(relay,HIGH); lamp_state = 0; }
}

readString=" ";

}

  • Just copy paste this above program in the arduino software and upload to the arduino board
  • As I said earlier the angle ( servo1.write( ? ) ) has to be set by you with respect to the gap which is on the top base
  • The relay is set HIGH from the begining because the logic of my module is reverse that is LOW is HIGH and HIGH is LOW.
  • The commands to control the lamp are as follows :

  1. resistor to bring the first compartment
  2. capacitor to bring the second compartment
  3. diode to bring the third compartment
  4. transistor to bring the fourth compartment
  5. module to bring the fifth compartment
  6. screw to bring the sixth compartment
  7. lights on to turn ON the lamp
  8. lights off to turn OFF the lamp

Step 5: Application

  • If you will use my application then you to have to set the components in the same manner as i did
  • The components per compertment which I decided are as follows:RESISTOR
  1. CAPACITOR
  2. DIODE
  3. TRANSISTOR
  4. MODULES
  5. SCREW
  • The link to my application is given below :

https://drive.google.com/open?id=1KeQrT-5X7CavQ5rQ...

  • I am new to the application making and I just build it out of my curiosity so to use my application just follow this steps :
  1. Turn ON the bluetooth of your mobile phone
  2. Open the application and click on the bluetooth icon then select your bluetooth module which will probably be ______________________ HC-05
  3. Then click on any button you want or you can also speak by clicking the MIC button on the app.

So this is it Friends I hope you liked my instructable and feel free to ask me anything in below comment section ;)

Organization Contest

Participated in the
Organization Contest