With the help of this project you can on/off Three load via SMS. SMS format given below.
SIM 900 Arduino
Tx Rx (Pin 0)
Rx Tx (Pin1)
16X2 LCD RS=6, EN=7, DS4=8, DS5=9, DS6=10, DS7=11
Code:
#include<LiquidCrystal.h>
// LCD RS=6, EN=7, DS4=8, DS5=9, DS6=10, DS7=11
LiquidCrystal lcd(6,7,8,9,10,11);
#define out1 3
#define out2 4
#define out3 5
int temp=0,i=0;
int led=13;
char str[15];
void setup()
{
lcd.begin(16,2);
Serial.begin(9600);
pinMode(led, OUTPUT);
pinMode(out1, OUTPUT);
pinMode(out2, OUTPUT);
pinMode(out3, OUTPUT);
lcd.setCursor(0,0);
lcd.print("GSM Control Home");
lcd.setCursor(0,1);
lcd.print(" Automaton ");
delay(2000);
lcd.clear();
lcd.print("Rishikesh");
delay(1000);
lcd.setCursor(0,1);
lcd.print("System Ready");
Serial.println("AT+CNMI=2,2,0,0,0");
delay(500);
Serial.println("AT+CMGF=1");
delay(1000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("out1 out2 out3 ");
lcd.setCursor(0,1);
lcd.print("OFF OFF OFF ");
}
void loop()
{
lcd.setCursor(0,0);
lcd.print("out1 out2 out3");
if(temp==1)
{
check();
temp=0;
i=0;
delay(1000);
}
}
void serialEvent()
{
while(Serial.available())
{
if(Serial.find("#A."))
{
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
while (Serial.available())
{
char inChar=Serial.read();
str[i++]=inChar;
if(inChar=='*')
{
temp=1;
return;
}
}
}
}
}
void check()
{
if(!(strncmp(str,"out1 on",5)))
{
digitalWrite(out1, HIGH);
lcd.setCursor(13,1);
lcd.print("ON ");
delay(200);
}
else if(!(strncmp(str,"out1 off",6)))
{
digitalWrite(out1, LOW);
lcd.setCursor(13,1);
lcd.print("OFF ");
delay(200);
}
else if(!(strncmp(str,"out2 on",5)))
{
digitalWrite(out2, HIGH);
lcd.setCursor(0,1);
lcd.print("ON ");
delay(200);
}
else if(!(strncmp(str,"out2 off",7)))
{
digitalWrite(out2, LOW);
lcd.setCursor(0,1);
lcd.print("OFF ");
delay(200);
}
else if(!(strncmp(str,"out3 on",8)))
{
digitalWrite(out3, HIGH);
lcd.setCursor(7,1);
lcd.print("ON ");
delay(200);
}
else if(!(strncmp(str,"out3 off",9)))
{
digitalWrite(out3, LOW);
lcd.setCursor(7,1);
lcd.print("OFF ");
delay(200);
}
else if(!(strncmp(str,"all on",6)))
{
digitalWrite(out3, HIGH);
digitalWrite(out2, HIGH);
digitalWrite(out1, HIGH);
lcd.setCursor(0,1);
lcd.print("ON ON ON ");
delay(200);
}
else if(!(strncmp(str,"all off",7)))
{
digitalWrite(out3, LOW);
digitalWrite(out2, LOW);
digitalWrite(out1, LOW);
lcd.setCursor(0,1);
lcd.print("OFF OFF OFF ");
delay(200);
}
}
S.no. Message Format Operation
1 #A.out1 on* out1 ON
2 #A.out1 off* out1 OFF
3 #A.out2 on* out2 ON
4 #A.out2 off* out2 OFF
5 #A.out3 on* out3 ON
6 #A.out3 off* out3 Off
7 #A.all on* All ON
8 #A.all off* All OFF