#include<LiquidCrystal.h>
LiquidCrystal lcd(A0,A1,A2,A3,A4,A5);//rs,en,data pins d4 -d7
#include <SoftwareSerial.h>
SoftwareSerial myserial(4, 5); // RX, TX bluetooth
int relay1 = 10;
int relay2 = 8;
int relay3 = 9;
int relay4 = 11;
char c;
char d;
void setup()
{
lcd.begin(16,2);
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
pinMode(relay4, OUTPUT);
myserial.begin(9600);
Serial.begin(115200);
lcd.setCursor(0,0);
lcd.print("BLUETOOTH - WIFI");
lcd.setCursor(0,1);
lcd.print(" HOME AUTOMATION ");
delay (3000);
lcd.clear();
WIFI_init();
lcd.setCursor(0,0);
lcd.print("PLZ OPEN THE APP");
lcd.setCursor(0,1);
lcd.print("CONNECT B.T/WIFI");
delay (3000);
digitalWrite(relay1, LOW);
digitalWrite(relay2, LOW);
digitalWrite(relay3, LOW);
digitalWrite(relay4, LOW);
}
void loop()
{
c=myserial.read();
d = Serial.read();
//////////////////////////////////////////HC-05 BLUETOOTH CODE
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (c=='@'){lcd.clear();lcd.setCursor(0,0);lcd.print("BULB1 on");digitalWrite(relay1, HIGH);delay(1000);lcd.clear();c='a';}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (c=='$'){lcd.clear();lcd.setCursor(0,0);lcd.print("BULB2 on");digitalWrite(relay2, HIGH);delay(1000);lcd.clear();c='a';}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (c=='%'){lcd.clear();lcd.setCursor(0,0);lcd.print("BULB3 on");digitalWrite(relay3, HIGH);delay(1000);lcd.clear();c='a';}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (c=='('){lcd.clear();lcd.setCursor(0,0);lcd.print("DC MOTOR/FAN ON");digitalWrite(relay4, HIGH);delay(1000);lcd.clear();c='a';}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (c=='#'){lcd.clear();lcd.setCursor(0,0);lcd.print("BULB1 off");digitalWrite(relay1, LOW);delay(1000);lcd.clear();c='a';}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (c=='&'){lcd.clear();lcd.setCursor(0,0);lcd.print("BULB2 off");digitalWrite(relay2, LOW);delay(1000);lcd.clear();c='a';}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (c=='^'){lcd.clear();lcd.setCursor(0,0);lcd.print("BULB3 off");digitalWrite(relay3, LOW);delay(1000);lcd.clear();c='a';}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (c==')'){lcd.clear();lcd.setCursor(0,0);lcd.print("DC MOTOR/FAN OFF");digitalWrite(relay4, LOW);delay(1000);lcd.clear();c='a';}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////WIFI ESP8266 CODE
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (d=='@'){lcd.clear();lcd.setCursor(0,0);lcd.print("BULB1 on");digitalWrite(relay1, HIGH);delay(1000);lcd.clear();d='a';}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (d=='$'){lcd.clear();lcd.setCursor(0,0);lcd.print("BULB2 on");digitalWrite(relay2, HIGH);delay(1000);lcd.clear();d='a';}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (d=='f'){lcd.clear();lcd.setCursor(0,0);lcd.print("BULB3 on");digitalWrite(relay3, HIGH);delay(1000);lcd.clear();d='a';}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (d=='v'){lcd.clear();lcd.setCursor(0,0);lcd.print("DC MOTOR/FAN ON");digitalWrite(relay4, HIGH);delay(1000);lcd.clear();d='a';}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (d=='#'){lcd.clear();lcd.setCursor(0,0);lcd.print("BULB1 off");digitalWrite(relay1, LOW);delay(1000);lcd.clear();d='a';}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (d=='w'){lcd.clear();lcd.setCursor(0,0);lcd.print("BULB2 off");digitalWrite(relay2, LOW);delay(1000);lcd.clear();d='a';}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (d=='%'){lcd.clear();lcd.setCursor(0,0);lcd.print("BULB3 off");digitalWrite(relay3, LOW);delay(1000);lcd.clear();d='a';}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (d=='&'){lcd.clear();lcd.setCursor(0,0);lcd.print("DC MOTOR/FAN OFF");digitalWrite(relay4, LOW);delay(1000);lcd.clear();d='a';}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
void WIFI_init()
{
lcd.clear();lcd.print("WIFI TESTING..");
boolean at_flag=1;while(at_flag){Serial.println("AT");while(Serial.available()>0){if(Serial.find("OK"))at_flag=0;}delay(100);}
lcd.clear();lcd.print("WIFI CONNECTED");delay(1000);lcd.clear();
///////////////////////////////////////////////////////////////////////////////////////////////////////
lcd.print("ECHO");
boolean echo_flag=1;
while(echo_flag)
{Serial.println("ATE0"); while(Serial.available()>0){if(Serial.find("OK"))echo_flag=0;}delay(100);}
lcd.clear(); lcd.print("Echo OFF");delay(1000);lcd.clear();
/////////////////////////////////////////////////////////////////////////////////////////////////////////
lcd.print("Finding Network..");
boolean net_flag=1;while(net_flag){Serial.println("AT+CIPMUX=1");
while(Serial.available()>0){if(Serial.find("OK"))net_flag=0;}delay(1000);}
lcd.clear();lcd.print("Network Found..");
/////////////////////////////////////////////////////////////////////////////////////////////////////////
lcd.setCursor(0,1);lcd.print("WIFI NETWORK OK");delay(2000);lcd.clear();
//////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
lcd.clear();lcd.print("WIFI MODULE");
boolean test1_flag=1;while(test1_flag){Serial.print("AT+CIPSERVER=1,80\r\n");
while(Serial.available()>0){if(Serial.find("OK"))test1_flag=0;}delay(100);}
lcd.clear();lcd.print("CONEECTED");delay(1000);
///////////////////////////////////////////////////////////////////////////////////////////////////////////
}