Software apps and online services

Hand tools and fabrication machines

Soldering iron (generic)

Story

Why Did We Build This?

Being an Iron man fan, I was really inspired by JARVIS, a voice-controlled personal assistant and I strongly wanted to build a home automation system. Though there are a lot of existing systems available, I decided to build my own home automation system using Arduino.

How It Works:

This project aims to control electrical and electronic devices such as Light, fan, TV, etc. This is done using Arduino and the relay circuit which is installed at each room of the house. The Data will be published to Arduino via Bluetooth module and further implementations can be made.

The primary task would be acquiring the data and publishing it to the Arduino using a mobile. And later with the data, a control can be made to switch on/off the devices.

Hardware Build

The circuitry is very simple. The overall cost for this product would be less than $20.

Step 1: Parts and Material

The Components needed for this project are:

Arduino

Relay Breakout board

Bluetooth Module - HC-05

Jumper Cables

Step 2: Connections

The Following connections are made using the Jumper cables. For this demo, I've used four relays which means four devices can be controlled using the APP.

Working video of this Project:

At present, the functionality is limited to switching the devices on or off, but it can process natural language at basic level that allows the user to integrate natural language processing to the other projects.

Many thanks to Hackster.io for allowing me and all the users of this great platform to participate.

Thank you for carrying out these activities that encourage young people and teenagers to create and invent.

Give a thumbs up if it really helped you and do follow my channel for interesting projects. :)

Schematics

Connection

Code

Sample Code

Arduino

//Coded By: Angelo Casimiro (4/27/14)//Voice Activated Arduino (Bluetooth + Android)//Feel free to modify it but remember to give creditStringvoice;intled1=2,//Connect LED 1 To Pin #2led2=3,//Connect LED 2 To Pin #3led3=4,//Connect LED 3 To Pin #4led4=5,//Connect LED 4 To Pin #5led5=6;//Connect LED 5 To Pin #6//--------------------------Call A Function-------------------------------// voidallon(){digitalWrite(led1,HIGH);digitalWrite(led2,HIGH);digitalWrite(led3,HIGH);digitalWrite(led4,HIGH);digitalWrite(led5,HIGH);}voidalloff(){digitalWrite(led1,LOW);digitalWrite(led2,LOW);digitalWrite(led3,LOW);digitalWrite(led4,LOW);digitalWrite(led5,LOW);}//-----------------------------------------------------------------------// voidsetup(){Serial.begin(9600);pinMode(led1,OUTPUT);pinMode(led2,OUTPUT);pinMode(led3,OUTPUT);pinMode(led4,OUTPUT);pinMode(led5,OUTPUT);}//-----------------------------------------------------------------------// voidloop(){while(Serial.available()){//Check if there is an available byte to readdelay(10);//Delay added to make thing stablecharc=Serial.read();//Conduct a serial readif(c=='#'){break;}//Exit the loop when the # is detected after the wordvoice+=c;//Shorthand for voice = voice + c}if(voice.length()>0){Serial.println(voice);//-----------------------------------------------------------------------// //----------Control Multiple Pins/ LEDs----------// if(voice=="*all on"){allon();}//Turn Off All Pins (Call Function)elseif(voice=="*all off"){alloff();}//Turn On All Pins (Call Function)//----------Turn On One-By-One----------//elseif(voice=="*TV on"){digitalWrite(led1,HIGH);}elseif(voice=="*fan on"){digitalWrite(led2,HIGH);}elseif(voice=="*computer on"){digitalWrite(led3,HIGH);}elseif(voice=="*bedroom lights on"){digitalWrite(led4,HIGH);}elseif(voice=="*bathroom lights on"){digitalWrite(led5,HIGH);}//----------Turn Off One-By-One----------//elseif(voice=="*TV off"){digitalWrite(led1,LOW);}elseif(voice=="*fan off"){digitalWrite(led2,LOW);}elseif(voice=="*computer off"){digitalWrite(led3,LOW);}elseif(voice=="*bedroom lights off"){digitalWrite(led4,LOW);}elseif(voice=="*bathroom lights off"){digitalWrite(led5,LOW);}//-----------------------------------------------------------------------// voice="";}}//Reset the variable after initiating