Voice Controlled Switch With Arduino




This is for the first time am uploading my project in Inscrutable. So if you guys find any silly mistakes please ignore it.
So, about my project, this is about the voice operated lights inspired from IRON-MAN movie. So JARVIS by Michel c, the software is used here to recognize the voice commands and opens the particular file. The interaction between the computer and arduino is done through the COM port in command prompt in Windows.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Starting Up...

Here is the list of items you need:
1. Arduino Board
2. Wires
3. 5v relay
4. PCB
5. 2 pin screw Terminal (2)
6. All soldering Components

Step 2:

1.Place all the Components as shown in the images above.

2. Now place the cable in the screw terminals.

-> One pair (red and black) at the other end is connected to the source or battery. In my case i have connected to a 6v 4.7ah Battery.

->And the other pair (Green and white) is connected to the lights.

->You can add the AC/DC power supply according to the configuration of the lights. I have connected 10 1w LEDs.

3. I have also connected Female header Terminals so that it would be easy to plug the jumper cables from the arduino.

Step 3: Circuitry...

The relay acts as if condition in electronic circuits. when ever 5v is applied across the coil, the tongue connected to p1 else connected to p2.

Connect all the points as shown in the diagram above.

Step 4: Arduino Program

int incomingByte = 0; // for incoming serial data

void setup()


Serial.begin(9600); // opens serial port, sets data rate to 9600 bps



void loop()


// send data only when you receive data:

if (Serial.available() > 0)

{ // read the incoming byte:

incomingByte = Serial.read();

// say what you got:

Serial.print("I received: ");

Serial.println(incomingByte, DEC);


if (incomingByte==100)


else if (incomingByte==97)



Step 5: How It Works

Step 6: The C# Codes...

// c#	program to switch on the lights

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO.Ports;
using System.IO;

namespace ConsoleApplication1
class Program
	static void Main(string[] args)
		SerialPort sp= new SerialPort();
		sp.PortName = "com4"  // write your com port connected to arduino

This one to switch off the lights.

// c# program to switch off the lights

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO.Ports; using System.IO;

namespace ConsoleApplication1 { class Program { static void Main(string[] args) { SerialPort sp= new SerialPort(); sp.PortName = "com4" // write your com port connected to arduino sp.BaudRate=9600; sp.Open(); sp.Write("a"); sp.Close(); } } }

Type both the projects separately

Type => Build => take the .exe file

you can get the .exe file from

Documents/Visual Studio/Projects/<project name>/<project name>/bin/Debug/<project name>.exe

for both the off and on, bring two exe files and place them somewhere u are comfortable.

Step 7: Time to Power Up...

=> Connect the red and black wire to the +ve and -ve terminal of the supply respectively.

In my case i am using 10 1W Leds. Hence I have connected a 6v 4.7Ah battery to power them. If you want to connect to the AC supply then you can go for it.

WARING..!!! Dont connect the LEDs directly in the AC, Use a ac appliance instead.

=> Connect the white(gnd) and Green (+ve) to the two terminals of the appliance or LEDs.

I have also connected a DPDT switch to the battery in order to turn the leds on directly. whthout arduino. You can skip that.

Step 8: Putting Them All Together

Step 9: Configuring JARVIS.

you can download the JARVIS:

Download Jarvis Software from here

After finishing the installation, open the program, select the language you are comfortable with.

then click on the +button at the right bottom to add custom commands...

then add commands,

add response, and their respective file location.

Finally say "Update commands" to save and active those commands.

try to say those commands and see the results

Step 10: Possible Errors

If the jarvis program dose not recognizes your voice then you should train your system.

In order to do that goto

control pannel > Speech Reorganization

Complete the training process then try it.

If the problem still persist then feel free to contact me or comment below.

catch me at www.facebook.com/bisudw

mail me: mails2bisu@gmail.com

Step 11: Any Device Can Be VOICE CONTROLLED

With a little bit of modification in the codes, and by adding some more relay switches to the arduino board can be controlled from the voice.

Here is my modification. I added one more switch with 230v 50hz AC supply to control the fan.

Then updated the commands at JARVIS console... den all set to go.

instead of the Fan plugin any device you want and get started.

Arduino Contest

Participated in the
Arduino Contest

1 Person Made This Project!


  • Made with Math Contest

    Made with Math Contest
  • Multi-Discipline Contest

    Multi-Discipline Contest
  • Robotics Contest

    Robotics Contest

60 Discussions


5 years ago on Introduction

Cool project, but the way you have connected the coil of the relay to the Arduino could end damaging the chip.

I know it because I've been involved in a very similar project and I found several discussion topics about this.


7 replies

Reply 5 years ago on Introduction

Thanks Victor8o5... I was wondering why i wasnt able to connect more than 2 relays, I got the mistake, connecting directly draws a lot of current. You solved my problem. Thanks a lot.


Reply 5 years ago on Introduction

Hello :) I just want to ask, how did you solved the problem with relays connecting on arduino? I'm afraid that if I try to connect the relays directly to arduino may harm the chips, right? Can you elaborate it please? have a good day :)


Reply 2 years ago

Back emf reverses the polarity, so it may damage the board... due to change in polarity.. better to put diode ;)

it would be better if u connect a diode across relay so that it prevents back emf generated when relay deenergises to enter arduino>.


Reply 4 years ago

Yeah it would b better... since m not a electronic endgineer.. i havnt thought about back emf... but hey.. dats a nice idea... safety comes first... go ahead..


Reply 4 years ago

No directly connecting the relay wont harm ur board... the problem is.. since the relays are 5v abd the board too works on 5v (usb connection) so there will be lack of power when u will connect 3 or 4...
Sorry 4 late reply...

lokanath mishra

2 years ago

can i use main current for controlling lights in my room.as i am having arduino uno r3.is it possible.if possible then how

lokanath mishra

2 years ago

is there any anathor way to control tube lights with voice recognisation

Faiz Fitri

2 years ago


Can i get your email please. I have something to ask you.


1 reply

2 years ago

The link given for JARVIS is not working. Can I get any other working link?


3 years ago

Hey I need to know how you run the light on code and using which software

Thadeo Arlo

3 years ago

hey, i'm new to c#, can you upload the compiled exe please :)


Reply 3 years ago

the jarvis file, it was taken down, can you email me the file at srivishnupiratla@gmail.com


3 years ago

Pelo Amor de Deus, alguem fez isso em portugues brasil pra me traduzir????

classic madhu

3 years ago

hello, jarvis software is not available in the site you have mentioned above can you suggest me some alternatives