#include <SoftwareSerial.h>
SoftwareSerial mySerial(2,3);
#include<LiquidCrystal.h>
LiquidCrystal lcd(6,7,8,9,10,11);
char phone_number[] = "9167178956"; //phone number
//intialize the library instances
int temp=0,i=0;
int led=13;
char str[15];
#define RELAY1 4
#define RELAY2 5
#define RELAY3 12
#define RELAY4 13
void setup() {
lcd.begin(16,2);
mySerial.begin(9600);// Setting the baud rate of GSM Module
while (!Serial)
Serial.begin(9600); // Setting the baud rate of Serial Monitor (Arduino)
delay(100);
mySerial.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
lcd.setCursor(0,0);
lcd.print("GSM Control Home");
lcd.setCursor(0,1);
lcd.print(" Automaton ");
delay(2000);
lcd.clear();
lcd.print("Circuit Digest");
delay(1000);
lcd.setCursor(0,1);
lcd.print("System Ready");
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
pinMode(RELAY3, OUTPUT);
pinMode(RELAY4, OUTPUT);
}
void SendMessage()
{
mySerial.println("AT+CMFG=1"); //sets the gsm module in text mode
mySerial.println("AT+CMGS=\"+919167178956\"\r"); // Replace x with mobile number
delay(1000);
mySerial.println("Device ready for use");// The SMS text you want to send
delay(100);
mySerial.println((char)26);// ASCII code of CTRL+Z
delay(1000);
}
void RecieveMessage()
{
mySerial.println("AT+CNMI=2,2,0,0,0"); // AT Command to recieve a live SMS
delay(1000);
}
void loop() {
lcd.setCursor(0,0);
lcd.print("Fan Light TV");
if (mySerial.available() > 0)
switch (Serial.read())
{
case 's':
SendMessage();
break;
case 'r':
RecieveMessage();
break;
}
if (mySerial.available() > 0)
Serial.write(mySerial.read());
char c;
if (mySerial.available())
while (c = mySerial.read())
if (c == 'fanoff')
{
digitalWrite(RELAY1, LOW); //turns off relay1
lcd.setCursor(13,1);
lcd.print("OFF ");
delay(200);
}
if (c == 'fanon')
{
digitalWrite(RELAY1, HIGH); //turns on relay1
lcd.setCursor(13,1);
lcd.print("ON ");
delay(200);
}
if (c == 'lighton')
{
digitalWrite(RELAY2, HIGH); //turns on relay2
lcd.setCursor(13,1);
lcd.print("ON ");
delay(200);
}
if (c == 'lightoff')
{
digitalWrite(RELAY2, LOW); //turns off relay2
lcd.setCursor(13,1);
lcd.print("OFF ");
delay(200);
}
if (c == 'pc1on')
{
digitalWrite(RELAY3, HIGH); //turns on relay3
lcd.setCursor(13,1);
lcd.print("ON ");
delay(200);
}
if (c == 'pc1off')
{
digitalWrite(RELAY3, LOW); //turns off relay3
lcd.setCursor(13,1);
lcd.print("OFF ");
delay(200);
}
if (c == 'pc2on')
{
digitalWrite(RELAY4, HIGH); //turns on relay4
lcd.setCursor(13,1);
lcd.print("ON ");
delay(200);
}
if (c == 'pc2off')
{
digitalWrite(RELAY4, LOW); //turns off relay4
lcd.setCursor(13,1);
lcd.print("OFF ");
delay(200);
}
if (c == 'all on')
{
digitalWrite(RELAY1, HIGH);
digitalWrite(RELAY2, HIGH);
digitalWrite(RELAY3, HIGH);
digitalWrite(RELAY4,HIGH);
lcd.setCursor(0,1);
lcd.print("ON ON ON ON");
delay(200);
}
if (c== 'all off')
{
digitalWrite(RELAY1, LOW);
digitalWrite(RELAY2, LOW);
digitalWrite(RELAY3, LOW);
digitalWrite(RELAY4, LOW);
lcd.setCursor(0,1);
lcd.print("OFF OFF OFF OFF ");
delay(200);
}
}
error:- none but if you can help me to make some changes in the code or reduce the code using other instruction i will be happy and thanks for the suggestions / reply guys