Go Down

Topic: [SOLVED... Almost] ideas/help for arduino gsm remote control of engine preheater (Read 8 times) previous topic - next topic

boelle

been playing with the last part of the code, for now it looks like:

Code: [Select]
if(Serial1.available() >0)                                                                                                                       // If a character comes in from the cellular module...
    {
      inchar=Serial1.read();   
      if (inchar=='@')                                                                                                                               // Control char, if sms does start with anything else nothing happens and the sms is deleted
      {
       
        delay(10);
       
        inchar=Serial1.read(); 
        if (inchar=='a')
        {
       
          delay(10);
       
          inchar=Serial1.read();
          if (inchar=='0')
          {
            digitalWrite(rele1, LOW);                                                                                                                // If 0 after a then turn relay1 off
            Serial.println("Relay1 Off");
             Tempflag = 0;                                                                                                                           // Set tempflag to 0 to avoid multiple engine ready text's
          }
          else if (inchar=='1')
          {
            digitalWrite(rele1, HIGH);                                                                                                               // If 1 after a then turn relay1 on
            Serial.println("Relay1 On");
             Tempflag = 1;                                                                                                                           // Set tempflag to 1 to enable engine ready text
          }
          }
         
         
           
           
            Serial1.println("AT+CMGD=1,4");                                                                                                          // Delete all SMS
          }
        }


with this i can turn relay1 on and off

PaulS

Code: [Select]
if(Serial1.available() >0)
    {
      inchar=Serial1.read();   
      if (inchar=='@')
      {
        delay(10);
        inchar=Serial1.read(); 
        if (inchar=='a')
        {
          delay(10);
          inchar=Serial1.read();

So, if there is one byte available to read, keep your fingers crossed that the next 2 arrive in the allotted time. Waste that time if the characters arrive faster than that. There are better ways.

boelle

trouble for my mind is to figure why first part work and the rest don't

im sure i have screwed up the {'s and }'s some way that prevents the code from doing stuff when i send a text with anything other than @a1 or @a0

boelle

i added an section that should turn the same relay on just with a text containing @b1 or @b0.. it does not work.. and sure i have done it wrong some how

Code: [Select]
if(Serial1.available() >0)                                                                                                                       // If a character comes in from the cellular module...
    {
      inchar=Serial1.read();   
      if (inchar=='@')                                                                                                                               // Control char, if sms does start with anything else nothing happens and the sms is deleted
      {
       
        delay(10);
       
        inchar=Serial1.read(); 
        if (inchar=='a')
        {
       
          delay(10);
       
          inchar=Serial1.read();
          if (inchar=='0')
          {
            digitalWrite(rele1, LOW);                                                                                                                // If 0 after a then turn relay1 off
            Serial.println("Relay1 Off");
             Tempflag = 0;                                                                                                                           // Set tempflag to 0 to avoid multiple engine ready text's
          }
          else if (inchar=='1')
          {
            digitalWrite(rele1, HIGH);                                                                                                               // If 1 after a then turn relay1 on
            Serial.println("Relay1 On");
             Tempflag = 1;                                                                                                                           // Set tempflag to 1 to enable engine ready text
          }
          }
         
         delay(10);
       
        inchar=Serial1.read(); 
        if (inchar=='b')
        {
       
          delay(10);
       
          inchar=Serial1.read();
          if (inchar=='0')
          {
            digitalWrite(rele1, LOW);                                                                                                                // If 0 after a then turn relay1 off
            Serial.println("Relay1 Off");
             Tempflag = 0;                                                                                                                           // Set tempflag to 0 to avoid multiple engine ready text's
          }
          else if (inchar=='1')
          {
            digitalWrite(rele1, HIGH);                                                                                                               // If 1 after a then turn relay1 on
            Serial.println("Relay1 On");
             Tempflag = 1;                                                                                                                           // Set tempflag to 1 to enable engine ready text
          }
          }
           
           
           Serial1.println("AT+CMGD=1,4");                                                                                                          // Delete all SMS
          }
         
        }
       
     

PaulS

Quote
im sure i have screwed up the {'s and }'s some way

You need to use the Tools + Auto Format menu item to fix your indenting.

Quote
that prevents the code from doing stuff when i send a text with anything other than @a1 or @a0

You didn't post any code to deal with other than @a0 or @a1.

Go Up