jeudi 25 janvier 2018

Arduino String checking SIM900A GSM module programming code

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