I am working with SIM 900A module, where i need to turn on and off my relays through sms .
Basically i have used GSM sms code to receive sms and stored the same into a string variable and then check whether there is "ON" or "On" or "on" in my string .
but this does not work and the program is running on "ELSE LOOP" only , it is somehow escaping the "IF" loop
Can anyone please help ? what is wrong here ! ! ! Code is below
#include <SoftwareSerial.h>
SoftwareSerial SIM900A(9, 10);
void setup()
{
Serial.begin(9600);
SIM900A.begin(9600);
pinMode(13,OUTPUT);
Serial.println("Program Started");
SIM900A.println("AT+CMGD=ALL");
SIM900A.println("AT+CNMI=2,2,0,0");
}
void loop()
{
if (SIM900A.available()>0){
String k=SIM900A.readString();
Serial.println("*** RECEIVED SMS ***");
Serial.println(k);
int len=k.length();
Serial.println("the length is ");
Serial.println(len);
// Remove first 51 characters
Serial.println("After removing first 51 characters");
k.remove(0, 51);
Serial.println(k);
len = k.length();
Serial.println("the length is ");
Serial.println(len);
// Remove \r\n from tail
k.remove(len - 2, 2);Serial.println("After removing first r & n characters");
Serial.println("the length is ");
len = k.length();
Serial.println(len);
Serial.println(k);
String L=k;
Serial.println(L);
if((L.equals("ON"))||(L.equals("On"))||(L.equals("on"))){Serial.println("now relay can be on");
digitalWrite(13,HIGH);delay(5000);}
else{digitalWrite(13,LOW);Serial.println("Else loop executed");};
Serial.println("*** END SMS ***");
};
}
Aucun commentaire:
Enregistrer un commentaire