#include <SoftwareSerial.h>
#include <IRremote.h>
int RECV_PIN = 10;
IRrecv irrecv(RECV_PIN);
decode_results results;
uint32_t delayMS;
#include <SoftwareSerial.h>
SoftwareSerial BT(0, 1); //TX, RX pins of arduino respetively
String command;
void setup() {
BT.begin(9600);
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(A0, OUTPUT); //Relay one
pinMode(A1, OUTPUT); //Relay two
pinMode(A2, OUTPUT); //Relay three
pinMode(A3, OUTPUT); //Relay four
pinMode(2, OUTPUT); //Relay five
pinMode(3, OUTPUT); //Relay sex
pinMode(4, OUTPUT); //Relay seven
pinMode(5, OUTPUT); //Relay eight
pinMode(9, OUTPUT); //Relay eight
pinMode(11, OUTPUT); //Relay eight
digitalWrite(A0, HIGH);
digitalWrite(A1, HIGH);
digitalWrite(A2, HIGH);
digitalWrite(A3, HIGH);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(9, HIGH);
digitalWrite(11, HIGH);
}
void loop() {
while (BT.available()) { //Check if there is an available byte to read
delay(10); //Delay added to make thing stable
char c = BT.read(); //Conduct a serial read
command += c; //build the string.
}
if (command.length() > 0) {
Serial.println(command);
if (command == "A") {
digitalWrite(A0, HIGH);
}
else if (command == "a") {
digitalWrite(A0, LOW);
}
else if (command == "B") {
digitalWrite (A1, HIGH);
}
else if ( command == "b") {
digitalWrite (A1, LOW);
}
else if (command == "C") {
digitalWrite (A2, HIGH);
}
else if (command == "c") {
digitalWrite (A2, LOW);
}
else if (command == "D") {
digitalWrite (A3, HIGH);
}
else if (command == "d") {
digitalWrite (A3, LOW);
}
else if (command == "E") {
digitalWrite (6, HIGH);
}
else if (command == "e") {
digitalWrite (6, LOW);
}
else if (command == "F") {
digitalWrite (7, HIGH);
}
else if (command == "f") {
digitalWrite (7, LOW);
}
else if (command == "G") {
digitalWrite (8, HIGH);
}
else if (command == "g") {
digitalWrite (8, LOW);
}
else if (command == "H") {
digitalWrite (9, HIGH);
}
else if (command == "h") {
digitalWrite (9, LOW);
}
else if (command == "Z") //using this command you can switch on all devices
{
digitalWrite (A0, HIGH);
digitalWrite (A1, HIGH);
digitalWrite (A2, HIGH);
digitalWrite (A3, HIGH);
digitalWrite (6, HIGH);
digitalWrite (7, HIGH);
digitalWrite (8, HIGH);
digitalWrite (9, HIGH);
}
else if (command == "z")//using this command you can switch off all devices
{
digitalWrite (A0, LOW);
digitalWrite (A1, LOW);
digitalWrite (A2, LOW);
digitalWrite (A3, LOW);
digitalWrite (6, LOW);
digitalWrite (7, LOW);
digitalWrite (8, LOW);
digitalWrite (9, LOW);
}
command = "";
}
if (irrecv.decode(&results)) {
irrecv.resume();
if (results.value == 0x406002FD ) {
digitalWrite(A0, !digitalRead(A0));
results.value = 0x00000000;
}
if (results.value == 0x4060C03F ) {
digitalWrite(A1, !digitalRead(A1));
results.value = 0x00000000;
}
if (results.value == 0x406040BF ) {
digitalWrite(A2, !digitalRead(A2));
results.value = 0x00000000;
}
if (results.value == 0x406048B7 ) {
digitalWrite(A3, !digitalRead(A3));
results.value = 0x00000000;
}
if (results.value == 0x40606897 ) {
digitalWrite(6, !digitalRead(6));
results.value = 0x00000000;
}
if (results.value == 0x406058A7 ) {
digitalWrite(7, !digitalRead(7));
results.value = 0x00000000;
}
if (results.value == 0x4060C837 ) {
digitalWrite(8, !digitalRead(8));
results.value = 0x00000000;
}
if (results.value == 0x4060E817 ) {
digitalWrite(9, !digitalRead(9));
results.value = 0x00000000;
}
if (results.value == 0x40603AC5 )
{
digitalWrite (A0, HIGH);
digitalWrite (A1, HIGH);
digitalWrite (A2, HIGH);
digitalWrite (A3, HIGH);
digitalWrite (2, HIGH);
digitalWrite (3, HIGH);
digitalWrite (4, HIGH);
digitalWrite (5, HIGH);
}
if (results.value == 0x40607887 )
{
digitalWrite (A0, LOW);
digitalWrite (A1, LOW);
digitalWrite (A2, LOW);
digitalWrite (A3, LOW);
digitalWrite (6, LOW);
digitalWrite (7, LOW);
digitalWrite (8, LOW);
digitalWrite (9, LOW);
}
}
}
//command="";}} //Reset the variable
//Reset the variable
//you can add other command to control addition devices by adding an elseif
//and the additions commands you add in sketch can be given through voice regonisation as i have created the app buttons only to control three devices
//thankyou-karthik