Impianto di irrigazione comandato da sim800l

Buongiorno a tutti ho iniziato un progetto per un impianto di irrigazione composto da due pompe di cui una serve per riempire una vasca di accumulo dove si trovano 3 galleggianti posizionati in modo da indicare lo stato di massimo , medio , minimo riempimento. Ho scritto nel Void loop due funzioni se premo il pulsante off spegne i due relè ,
La seconda funzione sfrutta il tasto ON dove leggendo lo stato del pulsante se viene premuto e a seconda dello stato dei galleggianti agisce sul relè pompa e relè vasca , tutto funziona finché il pulsante di ON ( pull down) è premuto , ma se lo lascio andare anche se varia la lettura dei galleggianti non cambia istruzione if
Spero di essere stato chiaro
Grazie a tutti in anticipo per il vostro aiuto

l'

if (ON == LOW) {

lo devi chiudere prima dell' else

Ok proverò grazie

ciao brunello22 ho provato in questo modo https://pastebin.com/embed_js/vnAFnAJx ma comunque il pulsante on mi richiama le altre funzioni solo se lo tengo premuto

Mica ho capito cosa vuoi fare !
Vuoi che il sistema sia attivo solo se e' in ON ? e quando premi OFF si disabiliti fino a che non lo riattivi ?

si quando premo on da pulsante o invio un sms con scritto on si accende ancora le funzioni sms non sono inserite , lo stesso con il pulsante off .
ancora grazie

ciao brunello ho provato anche creando delle funzioni cosi da dividere il problema che il tasto on non funziona e il tasto off quando lo clicco spegne ma non appena lo rilascio la condizione di on continua a leggere !
in questo caso i galleggianti funzionano ma non riesco a fermare il loop

https://pastebin.com/raw/8YwEv8Rv

ma non fai prima a metere un solo pulsante e passare da On a Off semplicemente ripremendolo

#include <SoftwareSerial.h> // necessaria alla libreria gsm.h richiamata in sms.h

const byte pompa = 4 ;// Il Pin 4 è quello connesso al relè1 della pompa del pozzo
const byte vasca = 5 ;// Il Pin 5 è quello connesso al relè 2 della pompa della vasca di rilancio
const byte gallmax = 6; // Il Pin 6 è quello connesso al galleggiante che segna la vasca piena
const byte gallmed = 7; // Il Pin 7 è quello connesso al galleggiante che segna la vasca media
const byte gallmin = 8 ;// Il Pin 8 è quello connesso al galleggiante che segna la vasca vuota
const byte pinOnOff = 10; // Il Pin 10 è quello connesso al tasto ON-OFF
const byte pinstatoimpianto = 11;// il pin 11 si accende quando l'impianto e on o off
//int pressione = A1;// Il Pin A1 è quello connesso al SENSORE DI PRESSIONE


//GALLEGGIANTI
byte MAX = 0 ; //VARIABILE CHE MEMORIZZA LO STATO DEL GALLEGGIANTE A LIVELLO MASSIMO CAPACITA'
byte MED = 0; //VARIABILE CHE MEMORIZZA LO STATO DEL GALLEGGIANTE A LIVELLO MEDIA CAPACITA'
byte MIN = 0; //VARIABILE CHE MEMORIZZA LO STATO DEL GALLEGGIANTE A LIVELLO MINIMA CAPACITA'
//-----------------------------------------------------------------------------------------------
byte OnOff = 0; //VARIABILE CHE MEMORIZZA LO STATO DEL PULSANTE SUL PIN 10
byte statoOnOff = 1 ; // Se sistema acceso o spento (HIGH = Acceso)
byte lastOnOff = 0;    

void setup()
{
  Serial.begin(9600);
  //  Serial.println("APERTURA TRAMITE RICEZIONE SMS POWERED by adrykx 2016");

  pinMode(pinOnOff, INPUT_PULLUP);   // imposta il pin 10 come pin di INPUT.
//  pinMode(off, INPUT_PULLUP);   // imposta il pin 9 come pin di INPUT.
  pinMode(pompa, OUTPUT);   // imposta il pin 4 come pin di OUTPUT.
  digitalWrite(pompa, 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(vasca, OUTPUT);   // imposta il pin 5 come pin di OUTPUT.
  digitalWrite(vasca, 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(gallmax, INPUT_PULLUP);   // imposta il pin 6 come pin di OUTPUT.
  pinMode(gallmed, INPUT_PULLUP);   // imposta il pin 7 come pin di OUTPUT.
  pinMode(gallmin, INPUT_PULLUP);   // imposta il pin 8 come pin di OUTPUT.
  pinMode(pinstatoimpianto, OUTPUT); // indicatore impianto spento o acceso
  digitalWrite(pinstatoimpianto, statoOnOff);// indicatore acceso alto
}

void loop() {
  OnOff = digitalRead (pinOnOff);  
  if (OnOff != lastOnOff) {
    if (OnOff == LOW) {
     statoOnOff = !statoOnOff ;
    }
    delay(75);
  }
  lastOnOff = OnOff;
digitalWrite(pinstatoimpianto, statoOnOff);

  if (statoOnOff == LOW) {
    digitalWrite(pompa, LOW);
    Serial.print ("Pompa pozzo spenta  -  ");
    digitalWrite(vasca, LOW);
    Serial.println ("Pompa vasca SPENTA ");
  }
   
  if (statoOnOff == HIGH) {
    MED = digitalRead (gallmed);
    MIN = digitalRead (gallmin);
    MAX = digitalRead (gallmax);

    if (MAX == LOW && MED == LOW && MIN == LOW)  {
      digitalWrite(pompa, LOW);
      Serial.print ("Pompa pozzo spenta  -  ");
      digitalWrite(vasca, HIGH);
      Serial.println ("Pompa vasca accesa ");
    }
    if (MAX == HIGH && MED == HIGH && MIN == LOW )  {
      digitalWrite(pompa, HIGH);
      Serial.print ("Pompa pozzo accesa  -  ");
      digitalWrite(vasca, HIGH);
      Serial.println ("Pompa vasca accesa");
    }
    if (MAX == HIGH && MED == HIGH && MIN == HIGH )  {
      digitalWrite(pompa, HIGH);
      Serial.print ("Pompa pozzo accesa  -  ");
      digitalWrite(vasca, LOW);
      Serial.println ("Pompa vasca spenta");

    }
  }
}

Si anche a questo punto potrei mettere un comando sms on nell'if statoOnOff == HIGH
E off nell'if statoOnOff == LOW
grazie 1000 provo e ti faccio sapere

brunello grazie mille cosi funziona adesso proverò ad inserire i comandi sms ,
un'ultima curiosità ma nel momento in cui continua a leggere quindi rx e sempre attivo non succede niente ad arduino scusa la mia ignoranza

Ciao brunello sto provando a incrementare lo sketch con il modulo gsm900 ma nella guida che sto seguendo mi fa l'esempio per accendere e spegnere un relè , io ho provato ad inviare il segnale alto come se il pulsante "pinstatoOnOff " fosse premuto e rilasciato mi sa che non e il sistema giusto ! quando gli interrogo lo stato tramite sms funziona mi dice se è acceso o spento.Quindi il modulo funziona

Perchè non metti lo sketch, così perlomeno capiamo cosa intendi

Ciao brunello non riesco a trovare dove inserire il code oggi lo metto con pastebin , comunque per simulare il pulsante premuto ho messo un relè comandato con il modulo gsmGsm900 e la libreria sim900.h cmq pomeriggio inserisco il codice

apri l'ide di arduino clicca su modifica, clicca copia per il forum vieni qui e incolli (ctrl+v) ed è fatta

Grazie Patrick_M

#include "SIM900.h"
#include <SoftwareSerial.h>
SoftwareSerial  Sim900Serial(2, 3);// rx, tx 
#include "sms.h"
#include <Wire.h> 
SMSGSM sms;
int numdata;
boolean started = false;
char smsbuffer[160];
char Mittente[20];
char mittenteregistrato [13] = "+3932+++"; // numero del mittente registrato (conosciuto)
char nomemittente [16] = "Impianto ULIVETO";
char sedicicrt [16]; // zona di memorizzazione dei primi sedici caratteri del messaggio ricevuto
int i = 0; // indice utilizzato nei cicli di for
int semaforo = 0; // semaforo riconoscimento numero telefono: o = numero riconosciuto;
// 1 = numero sconosciuto
const byte pompa = 4 ;// Il Pin 4 è quello connesso al relè1 della pompa del pozzo 
const byte vasca = 5 ;// Il Pin 5 è quello connesso al relè 2 della pompa della vasca di rilancio
const byte gallmax = 6; // Il Pin 6 è quello connesso al galleggiante che segna la vasca piena  
const byte gallmin = 12 ;// Il Pin 8 è quello connesso al galleggiante che segna la vasca vuota 
const byte pinOnOff = 10; // Il Pin 10 è quello connesso al tasto ON
const byte pinstatoimpianto = 11;// il pin 11 si accende quando l'impianto e on o off
const byte pinOnOffsim = 9;// Il Pin 9 è quello connesso al TASTO CHE GESTISCE SOLO LA POMPA 
const byte pinOnOffdigitale = 13; // il pin 13 accende e spegne il pulsante tramite relè con comando gsm
//GALLEGGIANTI
byte MAX = 0 ; //VARIABILE CHE MEMORIZZA LO STATO DEL GALLEGGIANTE A LIVELLO MASSIMO CAPACITA'
byte MIN = 0; //VARIABILE CHE MEMORIZZA LO STATO DEL GALLEGGIANTE A LIVELLO MINIMA CAPACITA'
//-----------------------------------------------------------------------------------------------
//stato pulsante on off
byte OnOff = 0; //VARIABILE CHE MEMORIZZA LO STATO DEL PULSANTE SUL PIN 10 
byte statoOnOff = 0 ;//Se sistema acceso o spento (HIGH = Acceso)
byte lastOnOff = 0;
//-----------------------------------------------------------------------------------------------



void setup() 
{
  pinMode(pinOnOff, INPUT_PULLUP);   // imposta il pin 10 come pin di INPUT.
  pinMode(pompa, OUTPUT);   // imposta il pin 4 come pin di OUTPUT.
  digitalWrite(pompa, 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(vasca, OUTPUT);   // imposta il pin 5 come pin di OUTPUT.
  digitalWrite(vasca, 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(gallmax, INPUT_PULLUP);   // imposta il pin 6 come pin di OUTPUT.
  pinMode(gallmin, INPUT_PULLUP);   // imposta il pin 8 come pin di OUTPUT.
  pinMode(pinstatoimpianto,OUTPUT);    // indicatore impianto spento o acceso 
  pinMode(pinOnOffsim,OUTPUT);
  pinMode(pinOnOffdigitale,OUTPUT);
  digitalWrite(pinOnOffdigitale, HIGH);
  digitalWrite(pinstatoimpianto, statoOnOff);// indicatore acceso alto
  
  //Serial connection.
  Serial.begin(9600);
   // GSM setup
  digitalWrite(pinOnOffsim, HIGH);
 delay(1500);  // > 1 secondo
 digitalWrite(pinOnOffsim, LOW); 
 delay(2500); // > 2.2 secondi
 Serial.println("SIM900 setup...");
 if (gsm.begin(2400)) {
     Serial.println("SIM900 Pronta");
     started=true;  
  }
  else 
     Serial.println(" SIM900 ko");
  }

void loop() 
{
 char inSerial[50];
 char position;
 if (started) 
 {
   position = sms.IsSMSPresent(SMS_ALL);// legge i messaggi in coda
   if (position) {
      sms.GetSMS(position, Mittente, smsbuffer, 160);// Leggo il messaggio ed il mittente
      Serial.print("sms in arrivo da");
      Serial.println("Tel.:" + String( Mittente));
      Serial.println("Content: " + String(smsbuffer));
      semaforo = 0;
 for (i = 0; i <= 12; i++)
 {
 if (!(Mittente[i] == mittenteregistrato [i]))
 semaforo = 1;
 }
 if (semaforo == 0)
 Serial.print (nomemittente);
 else
 Serial.print (Mittente);
 // attende tre secondi per consentire la lettura su lcd del mittente
 Serial.print ("testo sms:");
 for (i = 0; i <= 15; i++)
 sedicicrt [i] = smsbuffer [i]; // memorizzo i primi 16 caratteri del messaggio ricevuto
 Serial.print (sedicicrt); // espongo su lcd il messaggio ricevuto
 if (strcmp(smsbuffer, "On") == 0)
 {
 digitalWrite(pinOnOffdigitale, HIGH); // Attiva il RELE
 delay (500);
 digitalWrite (pinOnOffdigitale,LOW);
 delay (500);
 }
 else if (strcmp(smsbuffer, "Off") == 0)
 {
 digitalWrite(pinOnOffdigitale, HIGH); // Attiva il RELE
 delay (500);
 digitalWrite (pinOnOffdigitale,LOW);
 delay (500); 
 }
 else if (strcmp(smsbuffer, "Stato") == 0)
 {
 if (digitalRead(statoOnOff) == LOW)
 {
 sms.SendSMS(Mittente, "STATUS: impianto Attivo"); // restituisce true se invia l'SMS
 }
 else
 {
 sms.SendSMS(Mittente, "STATUS: impianto disattivo"); // restituisce true se invia l'SMS
 }
 }
 else
 {
  Serial.println ("sms non valido");
 }
 // attende tre secondi per consentire la lettura del messaggio
 sms.DeleteSMS(position); // Elimina l'SMS appena analizzato
 }
  // attende 5 secondi per consentire la lettura del display
 }


OnOff = digitalRead (pinOnOff);  
  if (OnOff != lastOnOff) {
    if (OnOff == LOW) {
     statoOnOff = !statoOnOff ;
    }
    delay(75);
  }
  lastOnOff = OnOff;
digitalWrite(pinstatoimpianto, statoOnOff);
  if (statoOnOff == LOW) {
    digitalWrite(pompa, LOW);
    Serial.print ("Pompa pozzo spenta  -  ");
    digitalWrite(vasca, LOW);
    Serial.println ("Pompa vasca SPENTA ");
}
 
  if (statoOnOff == HIGH) {
    
    MIN = digitalRead (gallmin);
    MAX = digitalRead (gallmax);

    if (MAX == HIGH && MIN == HIGH)  { //VASCA VUOTA 
      digitalWrite(pompa, HIGH);
      Serial.print ("Pompa pozzo accesa  -  ");
      digitalWrite(vasca, LOW);
      Serial.println ("Pompa vasca spenta ");
    }

    if (MAX == LOW && MIN == LOW )  {//VASCA PIENA
      digitalWrite(pompa, LOW);
      Serial.print ("Pompa pozzo spenta  -  ");
      digitalWrite(vasca, HIGH);
      Serial.println ("Pompa vasca accesa");
    }
   }

     
}

questo pezzo se mandi on accende e spegne
se mandi off accende e spegne

        if (strcmp(smsbuffer, "On") == 0) {
            digitalWrite(pinOnOffdigitale, HIGH); // Attiva il RELE
            delay (500);
            digitalWrite (pinOnOffdigitale, LOW);
            delay (500);
         } else if (strcmp(smsbuffer, "Off") == 0) {
            digitalWrite(pinOnOffdigitale, HIGH); // Attiva il RELE
            delay (500);
            digitalWrite (pinOnOffdigitale, LOW);
            delay (500);

è questo quello che vuoi?

praticamente io in questo momento ho aggiunto quella parte di codice che eccita un relè con un sms per simulare il pulsante premuto portandolo verso gnd ho collegato il negativo come NA quindi non mi sta sempre premuto ma l'impulso non è sufficiente a farmi cambiare lo stato del pulsante gli ho dato un delay (1600); , e quindi non riesco a fare avviare il ciclo creato precedentemente cioe la parte postata sotto , non so se e proprio corretto anche perché adesso vorrei inserire in questa parte di codice sotto che mi dovrebbe inviare un messaggio quando si conclude il ciclo della vasca vuota e vasca piena spero di essermi spiegato

OnOff = digitalRead (pinOnOff);  
  if (OnOff != lastOnOff) {
    if (OnOff == LOW) {
     statoOnOff = !statoOnOff ;
    }
    delay(75);
  }
  lastOnOff = OnOff;
digitalWrite(pinstatoimpianto, statoOnOff);
  if (statoOnOff == LOW) {
    digitalWrite(pompa, LOW);
    Serial.print ("Pompa pozzo spenta  -  ");
    digitalWrite(vasca, LOW);
    Serial.println ("Pompa vasca SPENTA ");
}
 
  if (statoOnOff == HIGH) {
    
    MIN = digitalRead (gallmin);
    MAX = digitalRead (gallmax);

    if (MAX == HIGH && MIN == HIGH)  { //VASCA VUOTA 
      digitalWrite(pompa, HIGH);
      Serial.print ("Pompa pozzo accesa  -  ");
      digitalWrite(vasca, LOW);
      Serial.println ("Pompa vasca spenta ");
    }

    if (MAX == LOW && MIN == LOW )  {//VASCA PIENA
      digitalWrite(pompa, LOW);
      Serial.print ("Pompa pozzo spenta  -  ");
      digitalWrite(vasca, HIGH);
      Serial.println ("Pompa vasca accesa");
    }
   }

     
}

spero di essermi spiegato

no :smiley:

il pezzo che ti ho mostrato come è collegato al pezzo che hai postato tu?
non mi dirai che la chiusura del relè (pinOnOffdigitale) comanda pinOnOff... ?

ho aggiunto quella parte di codice che eccita un relè con un sms per simulare il pulsante premuto

Beh, posso capire.... ma anche se tu non sai programmare, ragiona un po'....
Tu attivi il rele' per un Tot e poi lo spegni... secondo te, quando il programma arriva al punto in cui controlla se il tasto è premuto, come lo trova ... premuto o no ?

#include "SIM900.h"
#include <SoftwareSerial.h>
SoftwareSerial  Sim900Serial(2, 3);// rx, tx
#include "sms.h"
#include <Wire.h>
SMSGSM sms;
int numdata;
boolean started = false;
char smsbuffer[160];
char Mittente[20];
char mittenteregistrato [13] = "+3932+++"; // numero del mittente registrato (conosciuto)
char nomemittente [16] = "Impianto ULIVETO";
char sedicicrt [16]; // zona di memorizzazione dei primi sedici caratteri del messaggio ricevuto
int i = 0; // indice utilizzato nei cicli di for
int semaforo = 0; // semaforo riconoscimento numero telefono: o = numero riconosciuto;
// 1 = numero sconosciuto
const byte pompa = 4 ;// Il Pin 4 è quello connesso al relè1 della pompa del pozzo
const byte vasca = 5 ;// Il Pin 5 è quello connesso al relè 2 della pompa della vasca di rilancio
const byte gallmax = 6; // Il Pin 6 è quello connesso al galleggiante che segna la vasca piena
const byte gallmin = 12 ;// Il Pin 8 è quello connesso al galleggiante che segna la vasca vuota
const byte pinOnOff = 10; // Il Pin 10 è quello connesso al tasto ON
const byte pinstatoimpianto = 11;// il pin 11 si accende quando l'impianto e on o off
const byte pinOnOffsim = 9;// Il Pin 9 è quello connesso al TASTO CHE GESTISCE SOLO LA POMPA
//GALLEGGIANTI
byte MAX = 0 ; //VARIABILE CHE MEMORIZZA LO STATO DEL GALLEGGIANTE A LIVELLO MASSIMO CAPACITA'
byte MIN = 0; //VARIABILE CHE MEMORIZZA LO STATO DEL GALLEGGIANTE A LIVELLO MINIMA CAPACITA'
//-----------------------------------------------------------------------------------------------
//stato pulsante on off
byte OnOff = 0 ; //VARIABILE CHE MEMORIZZA LO STATO DEL PULSANTE SUL PIN 10
byte statoOnOff = 0 ;//Se sistema acceso o spento (HIGH = Acceso)
byte lastOnOff = 0 ;
//-----------------------------------------------------------------------------------------------

void setup()
{
  pinMode(pinOnOff, INPUT_PULLUP);   // imposta il pin 10 come pin di INPUT.
  pinMode(pompa, OUTPUT);   // imposta il pin 4 come pin di OUTPUT.
  digitalWrite(pompa, 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(vasca, OUTPUT);   // imposta il pin 5 come pin di OUTPUT.
  digitalWrite(vasca, 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(gallmax, INPUT_PULLUP);   // imposta il pin 6 come pin di OUTPUT.
  pinMode(gallmin, INPUT_PULLUP);   // imposta il pin 8 come pin di OUTPUT.
  pinMode(pinstatoimpianto, OUTPUT);   // indicatore impianto spento o acceso
  pinMode(pinOnOffsim, OUTPUT);
  digitalWrite(pinstatoimpianto, statoOnOff);// indicatore acceso alto

  //Serial connection.
  Serial.begin(9600);
  // GSM setup
  digitalWrite(pinOnOffsim, HIGH);
  delay(1500);  // > 1 secondo
  digitalWrite(pinOnOffsim, LOW);
  delay(2500); // > 2.2 secondi
  Serial.println("SIM900 setup...");
  if (gsm.begin(2400)) {
    Serial.println("SIM900 Pronta");
    started = true;
  }
  else
    Serial.println(" SIM900 ko");
}

void loop()
{
  char inSerial[50];
  char position;
  if (started)
  {
    position = sms.IsSMSPresent(SMS_ALL);// legge i messaggi in coda
    if (position) {
      sms.GetSMS(position, Mittente, smsbuffer, 160);// Leggo il messaggio ed il mittente
      Serial.print("sms in arrivo da");
      Serial.println("Tel.:" + String( Mittente));
      Serial.println("Content: " + String(smsbuffer));
      semaforo = 0;
      for (i = 0; i <= 12; i++)
      {
        if (!(Mittente[i] == mittenteregistrato [i]))
          semaforo = 1;
      }
      if (semaforo == 0)
        Serial.print (nomemittente);
      else
        Serial.print (Mittente);
      // attende tre secondi per consentire la lettura su lcd del mittente
      Serial.print ("testo sms:");
      for (i = 0; i <= 15; i++)
        sedicicrt [i] = smsbuffer [i]; // memorizzo i primi 16 caratteri del messaggio ricevuto
      Serial.print (sedicicrt); // espongo su lcd il messaggio ricevuto
      if (strcmp(smsbuffer, "On") == 0)
      {
        statoOnOff = true ;
      }
      else if (strcmp(smsbuffer, "Off") == 0)
      {
        statoOnOff = false ;
      }
      else if (strcmp(smsbuffer, "Stato") == 0)
      {
        if (digitalRead(statoOnOff) )
        {
          sms.SendSMS(Mittente, "STATUS: impianto Attivo"); // restituisce true se invia l'SMS
        }
        else
        {
          sms.SendSMS(Mittente, "STATUS: impianto disattivo"); // restituisce true se invia l'SMS
        }
      }
      else
      {
        Serial.println ("sms non valido");
      }
      // attende tre secondi per consentire la lettura del messaggio
      sms.DeleteSMS(position); // Elimina l'SMS appena analizzato
    }
    // attende 5 secondi per consentire la lettura del display
  }

  OnOff = digitalRead (pinOnOff);
  if (OnOff != lastOnOff) {
    if (OnOff == LOW) {
      statoOnOff = !statoOnOff ;
    }
    delay(75);
  }
  lastOnOff = OnOff;
  digitalWrite(pinstatoimpianto, statoOnOff);

  // se lo stato dal pulsante è vero oppure  se lo stato da SMS è vero
  if (statoOnOff ) {
    MIN = digitalRead (gallmin);
    MAX = digitalRead (gallmax);
    if (MAX == HIGH && MIN == HIGH)  { //VASCA VUOTA
      digitalWrite(pompa, HIGH);
      Serial.print ("Pompa pozzo accesa  -  ");
      digitalWrite(vasca, LOW);
      Serial.println ("Pompa vasca spenta ");
    }
    if (MAX == LOW && MIN == LOW )  {//VASCA PIENA
      digitalWrite(pompa, LOW);
      Serial.print ("Pompa pozzo spenta  -  ");
      digitalWrite(vasca, HIGH);
      Serial.println ("Pompa vasca accesa");
    }
  }
  else {
    digitalWrite(pompa, LOW);
    Serial.print ("Pompa pozzo spenta  -  ");
    digitalWrite(vasca, LOW);
    Serial.println ("Pompa vasca SPENTA ");
  }

}