Modifica sketch modulo gms 800 L relè

ciao a tutti
Da poco ho realizzato il progetto di far funzionare dei relè tramite l'invio di sms utilizzando Arduino uno e il modulo sim 800 L
Modificando lo sketch è possibile autorizzare tutti i numeri ? se è possibile mi date qualche dritta su come modificarlo?
lo sketch è il seguente:

//attenzione per collegare il modulo gsm tx su pin 2 e rx su pin 3
#include "SIM900.h"
#include <SoftwareSerial.h> // necessaria alla libreria gsm.h richiamata in sms.h
#include "sms.h"            // Libreria per la gestione degli SMS

SMSGSM sms;
int rel1 = 10;// Il Pin 10 è quello connesso al relè1
int rel2 = 9; // Il Pin 9 è quello connesso al relè 2
int rel3 = 8; // Il Pin 8 è quello connesso al relè 3
int rel4 = 7; // Il Pin 7 è quello connesso al relè 4
int rel5 = 6; // Il Pin 6 è quello connesso al relè 5
int rel6 = 5; // Il Pin 6 è quello connesso al relè 6
int rel7 = 11;// Il Pin 11 è quello connesso al relè 7
int rel8 = 12;// Il Pin 11 è quello connesso al relè 8

int numdata;
boolean started = false;
char smsbuffer[160];
char Mittente[20];

void setup()
{
  Serial.begin(9600);
  //  Serial.println("APERTURA TRAMITE RICEZIONE SMS POWERED by adrykx 2016");
  pinMode(rel1, OUTPUT);   // imposta il pin 10 come pin di OUTPUT.
  digitalWrite(rel1, HIGH); // spegne inizialmente il relè, uso High perchè questi relè altrimenti appena accessa la scheda da subito un input e si chiude il contatto


  pinMode(rel2, OUTPUT);   // imposta il pin 9 come pin di OUTPUT.
  digitalWrite(rel2, HIGH); // spegne inizialmente il relè, uso High perchè questi relè altrimenti appena accessa la scheda da subito un input e si chiude il contatto
  pinMode(rel3, OUTPUT);   // imposta il pin 8 come pin di OUTPUT.
  digitalWrite(rel3, HIGH); // spegne inizialmente il relè, uso High perchè questi relè altrimenti appena accessa la scheda da subito un input e si chiude il contatto
  pinMode(rel4, OUTPUT);   // imposta il pin 7 come pin di OUTPUT.
  digitalWrite(rel4, HIGH); // spegne inizialmente il relè, uso High perchè questi relè altrimenti appena accessa la scheda da subito un input e si chiude il contatto
  pinMode(rel5, OUTPUT);   // imposta il pin 6 come pin di OUTPUT.
  digitalWrite(rel5, HIGH); // spegne inizialmente il relè, uso High perchè questi relè altrimenti appena accessa la scheda da subito un input e si chiude il contatto
  pinMode(rel6, OUTPUT);   // imposta il pin 5 come pin di OUTPUT.
  digitalWrite(rel6, HIGH); // spegne inizialmente il relè, uso High perchè questi relè altrimenti appena accessa la scheda da subito un input e si chiude il contatto
  pinMode(rel7, OUTPUT);   // imposta il pin 10 come pin di OUTPUT.
  digitalWrite(rel7, HIGH); // spegne inizialmente il relè, uso High perchè questi relè altrimenti appena accessa la scheda da subito un input e si chiude il contatto
  pinMode(rel8, OUTPUT);   // imposta il pin 11 come pin di OUTPUT.
  digitalWrite(rel8, HIGH); // spegne inizialmente il relè, uso High perchè questi relè altrimenti appena accessa la scheda da subito un input e si chiude il contatto



  // Inizializzo la connessione GSM impostando il baudrate
  // Per l'utilizzo di HTTP è opportuno usare 4800 baud o meno
  if ( gsm.begin(2400) )
  {
    Serial.println("STATUS Modulo GSM = PRONTO");
    started = true;
  }
  else
    Serial.println("STATUS Modulo GSM = INATTIVO");
};


void loop()
{
  char inSerial[50];
  char position;
  if (started)
  {

    position = sms.IsSMSPresent(SMS_ALL); // Valore da 1..20
    if (position)
    {
      // Leggo il messaggio SMS e stabilisco chi sia il mittente
      sms.GetSMS(position, Mittente, smsbuffer, 160);


      //cambiare o aggiungere i numeri autorizzati all'apertura
      if ((strcmp(Mittente, "1111111111") == 0)
          || (strcmp(Mittente, "11111111") == 0)
          || (strcmp(Mittente, "11111111") == 0)
          || (strcmp(Mittente, "111111111") == 0))

      {



        Serial.print("Comando Ricevuto [tel. " + String(Mittente) + String("]: ") + String(smsbuffer));
        if (strcmp(smsbuffer, "Garage") == 0)
        {
          digitalWrite(rel1, LOW); // Accende il LED impostando il voltaggio a HIGH
          delay(3000);
          Serial.println(" => Apro il Garage");
          digitalWrite(rel1, HIGH);

        }


        else if (strcmp(smsbuffer, "Pedonale") == 0)  // qui utilizzo password numerica sostituendo "pedonale" 
        {
          digitalWrite(rel2, LOW); // Accende il LED impostando il voltaggio a HIGH
          delay(3000);
          Serial.println(" => Apro il Pedonale");
          digitalWrite(rel2, HIGH);

        }
        else if (strcmp(smsbuffer, "Cancello") == 0)
        {
          digitalWrite(rel3, LOW); // Accende il LED impostando il voltaggio a HIGH
          delay(3000);
          Serial.println(" => Apro il Cancello");
          digitalWrite(rel3, HIGH);

        }


        else if (strcmp(smsbuffer, "Porta") == 0)
        {
          digitalWrite(rel4, LOW); // Accende il LED impostando il voltaggio a HIGH
          delay(3000);
          Serial.println(" => Apro la porta");
          digitalWrite(rel4, HIGH);

        }


        else if (strcmp(smsbuffer, "Porta garage") == 0)
        {
          digitalWrite(rel5, LOW); // Accende il LED impostando il voltaggio a HIGH
          delay(3000);
          Serial.println(" => Apro la porta del garage");
          digitalWrite(rel5, HIGH);

        }


        else if (strcmp(smsbuffer, "Cancelletto") == 0)
        {
          digitalWrite(rel6, LOW); // Accende il LED impostando il voltaggio a HIGH
          delay(3000);
          Serial.println(" => Apro il cancelletto");
          digitalWrite(rel6, HIGH);

        }

        else if (strcmp(smsbuffer, "Uno") == 0)
        {
          digitalWrite(rel7, LOW); // Accende il LED impostando il voltaggio a HIGH
          delay(3000);
          Serial.println(" => Apro uno");
          digitalWrite(rel7, HIGH);

        }

        else if (strcmp(smsbuffer, "Due") == 0)
        {
          digitalWrite(rel8, LOW); // Accende il LED impostando il voltaggio a HIGH
          delay(3000);
          Serial.println(" => Apro due");
          digitalWrite(rel8, HIGH);

        }


      }
      else
        Serial.println(" => non riconosciuto!");
      sms.DeleteSMS(position); // Elimina l'SMS appena analizzato
    }


    {


      delay(1000);
    }

  }
};

Grazie per l'attenzione

if ((strcmp(Mittente, "1111111111") == 0)
          || (strcmp(Mittente, "11111111") == 0)
          || (strcmp(Mittente, "11111111") == 0)
          || (strcmp(Mittente, "111111111") == 0))
{

se lo cambi con

if (Mittente >"") {

dovrebbe autorizzare tutti i numeri ma non mi pare una bella cosa :wink:

Patrick_M:
dovrebbe autorizzare tutti i numeri ma non mi pare una bella cosa :wink:

... beh, a quel punto, ancora più semplice, visto che comunque lui NON vuole alcun controllo, è prioprio eliminare l'IF :smiley:

Guglielmo

gpb01:
... beh, a quel punto, ancora più semplice, visto che comunque lui NON vuole alcun controllo, è prioprio eliminare l'IF :smiley:

Guglielmo

Grazie!!!! funziona!!!!
io pensavo chissà a quali difficoltà.... ma di cancellare non mi è venuto in mente
di nuovo grazie per la risposta e per il tempo concesso
buona serata