Toll-Free Customer Support 24/7

RDL Smart Home Automation Kit

/*
 * Project name:
     RDL Smart Home Automation Kit
 * Copyright
     (c) Researchdesignlab.com
 * Description:
    
 * Test configuration:
     MCU:             ATMEGA328
     Dev.Board:       Arduino uno
     Oscillator:      16 MHz
     Software:        Arduino

*/


#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3); // RX, TX

const int buttonPin1 = A0;
const int buttonPin2 = A1;
const int buttonPin3 = A2;
const int buttonPin4 = A3;
byte flag1=0,COUNT1=0, flag2=0,COUNT2=0, flag3=0,COUNT3=0, flag4=0,COUNT4=0;

int buttonState = 0;

void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}

pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
// set the data rate for the SoftwareSerial port
mySerial.begin(9600);
mySerial.write('S');


}

void loop() // run over and over
{

if (Serial.available())
{
char value=Serial.read();
if(value=='$')
{
while(!Serial.available());
value=Serial.read();
/*******************************/
if(value=='H')
{
while(!Serial.available());
value=Serial.read();
if(value=='L')
{
while(!Serial.available());
value=Serial.read();
if(value=='1')
{
digitalWrite(4, HIGH); // turn the LED on (HIGH is the voltage level)
flag1=1;
}
else if(value=='0')
{

digitalWrite(4, LOW);
flag1=0;
}

}
/****************************/
else if(value=='T')
{
while(!Serial.available());
value=Serial.read();
if(value=='1')
{
digitalWrite(5, HIGH); // turn the LED on (HIGH is the voltage level)
flag2=1;
}
else if(value=='0')
{

digitalWrite(5, LOW);
flag2=0;
}


}

/****************************/
else if(value=='S')
{
while(!Serial.available());
value=Serial.read();
if(value=='1')
{
digitalWrite(6, HIGH); // turn the LED on (HIGH is the voltage level)
flag3=1;
}
else if(value=='0')
{
flag3=0;
digitalWrite(6, LOW);

}

}

/****************************/
else if(value=='W')
{
while(!Serial.available());
value=Serial.read();
if(value=='1')
{
digitalWrite(7, HIGH); // turn the LED on (HIGH is the voltage level)
flag4=1;
}
else if(value=='0')
{

digitalWrite(7, LOW);
flag4=0;
}

}

else if(value=='F')
{
mySerial.write('A');
mySerial.write('0');
while(!Serial.available());
value=Serial.read();
mySerial.write(value);
while(!Serial.available());
value=Serial.read();
mySerial.write(value);
}




}

}
}

 

buttonState = digitalRead(buttonPin1);
if (buttonState == HIGH) {

if(flag1==1)
{
flag1=0;
digitalWrite(4, LOW);
}else if(flag1==0)
{
flag1=1;
digitalWrite(4, HIGH);
}

delay(1000);
}

buttonState = digitalRead(buttonPin2);
if (buttonState == HIGH) {
if(flag2==1)
{
flag2=0;
digitalWrite(5, LOW);
}else if(flag2==0)
{
flag2=1;
digitalWrite(5, HIGH);
}

delay(1000);
}

buttonState = digitalRead(buttonPin3);
if (buttonState == HIGH) {
if(flag3 ==1)
{
flag3=0;
digitalWrite(6, LOW);
}else if(flag3==0)
{
flag3=1;
digitalWrite(6, HIGH);
}

delay(1000);
}

buttonState = digitalRead(buttonPin4);
if (buttonState == HIGH) {
if(flag4==1)
{
flag4=0;
digitalWrite(7, LOW);
}else if(flag1==0)
{
flag4=1;
digitalWrite(7, HIGH);
}

delay(1000);
}


}

Back to top