Introduction: Arduino Tutorial: JARVIS V1 | How to Make a Home Automation

About: Passionate Techie ! Robotics | Electronics | Programming - Worked with Arduino, PIC and ARM Controllers

Arduino Tutorial: JARVIS v1 | How to make a Home Automation

(Just A Rather Very Intelligent System)

This project demonstrates the use of different technologies and their integration to build an intelligent system which will interact with a human and support in their day to day tasks.

Step 1: Parts and Material ​

The Parts which we need are :

* Arduino * Relay Breakout board * Bluetooth Module - HC-05 * Jumper Cables

Step 2: BT Connections:

*Arduino -> BT MODULE*

TX -> RX

RX -> TX

VCC -> 3.3v


Step 3: Relay Connections

*Arduino -> Relay Board*

IN1 -> D2

IN2 -> D3

IN3 -> D4

IN4 -> D5



Step 4: The Code

You can find the sample code below.

//Coded By: Angelo Casimiro (4/27/14)
//Voice Activated Arduino (Bluetooth + Android) //Feel free to modify it but remember to give credit

String voice;

int led1 = 2, //Connect LED 1 To Pin #2

led2 = 3, //Connect LED 2 To Pin #3

led3 = 4, //Connect LED 3 To Pin #4

led4 = 5, //Connect LED 4 To Pin #5

led5 = 6; //Connect LED 5 To Pin #6

//--------------------------Call A Function-------------------------------//

void allon()

{ digitalWrite(led1, HIGH);

digitalWrite(led2, HIGH);

digitalWrite(led3, HIGH);

digitalWrite(led4, HIGH);

digitalWrite(led5, HIGH); }

void alloff()

{ digitalWrite(led1, LOW);

digitalWrite(led2, LOW);

digitalWrite(led3, LOW);

digitalWrite(led4, LOW);

digitalWrite(led5, LOW); }


void setup() {


pinMode(led1, OUTPUT);

pinMode(led2, OUTPUT);

pinMode(led3, OUTPUT);

pinMode(led4, OUTPUT);

pinMode(led5, OUTPUT); }


void loop() {

while (Serial.available()){ //Check if there is an available byte to read

delay(10); //Delay added to make thing stable

char c =; //Conduct a serial read

if (c == '#') {break;} //Exit the loop when the # is detected after the word

voice += c; //Shorthand for voice = voice + c

} if (voice.length() > 0) {


//-----------------------------------------------------------------------// //----------Control Multiple Pins/ LEDs----------//

if(voice == "*all on") {allon();} //Turn Off All Pins (Call Function)

else if(voice == "*all off"){alloff();} //Turn On All Pins (Call Function) //----------Turn On One-By-One----------// else if(voice == "*TV on") {digitalWrite(led1, HIGH);}

else if(voice == "*fan on") {digitalWrite(led2, HIGH);}

else if(voice == "*computer on") {digitalWrite(led3, HIGH);}

else if(voice == "*bedroom lights on") {digitalWrite(led4, HIGH);}

else if(voice == "*bathroom lights on") {digitalWrite(led5, HIGH);} //----------Turn Off One-By-One----------//

else if(voice == "*TV off") {digitalWrite(led1, LOW);}

else if(voice == "*fan off") {digitalWrite(led2, LOW);}

else if(voice == "*computer off") {digitalWrite(led3, LOW);}

else if(voice == "*bedroom lights off") {digitalWrite(led4, LOW);}

else if(voice == "*bathroom lights off") {digitalWrite(led5, LOW);}


voice="";}} //Reset the variable after initiating

Step 5: Application

For now we will use the ready-made application. In the following days I will publish the application once after the certificates are processed.

BT Voice Control for Arduino created by SimpleLabsIN:

Step 6: Working of This Project: