Sistema Irrigazione Balcone

Scritto da Roberto Messa on . Postato in ROBOTICA

Ciao a tutti e bentornati, oggi vedremo come realizzare un semplice sistema di irrigazione del balcone con Arduino.

2013-07-18 19.32.10

Ciao a tutti e bentornati, oggi vedremo come realizzare un semplice sistema di irrigazione del balcone con Arduino.

Quest’estate prima di partire per le vacanze è saltata fuori l’esigenza di come irrigare gli innumerevoli geragni di mia mamma, sò che esistono delle soluzioni commerciali che prevedono di collegare delle elettrovalvole con timer ad un rubinetto
e gestire direttamente l’irrigazione dall’acqua potabile.
Questo tipo di soluzione non mi piaceva molto perchè avrei dovuto collegarlo ad un rubinetto e quindi in caso di perdite avrei rischiato di allagare casa ed inoltre quando è possibile mi piace fare del fai da te e quindi realizzare da me questi dispositi per imparare anche cose nuove.
Visto che è da un pò di tempo che esperimento con arduino ho deciso di puntare su questa piattaforma, dopo alcuni test con i vari componenti (timer, relè, etc) ho realizzato il sistema di irrigazione che ho battezzato Irrighino (che è la composizione di irrigazione + arduino).
Come vedrete nei prossimi post arduino è diventato fondamentale nei miei esperimenti (stò diventando un pò pigro nelle realizzazioni da zero e poi il tempo comincia scarseggiare nei fine settimana).
Cominciamo con il vedere il materiale necessario per poterlo realizzare.

Materiale necessario:
– Arduino 2009 (va bene anche arduino uno o un clone).
– Relay Shield (questo)
– Ds1307 (questo)
– Alimentatore step down (io ho utilizzato questo).
– Pompa a 12 volt (io ho utilizzato questa).
– Kit di irrigazione a goccia florabest (va benissimo qualsiasi altro kit con tubetti e rubinetti).
– Scatola da esterno (meglio se IP65).
– Pannello solare da 5 watt.
– Regolatore di carica 4 ampere.
– Tanica da 20 litri per l’aqua (potete usarla più piccola o più grande secondo le vostre esigenze).
– Cavetti maschio – femmina per il collegamento con arduino.
– Batteria da 12v da almeno 7,2Ah.

Sò che non vedete l’ora di iniziare quindi partiamo dal test della pompa.
Prendiamo una bacinella d’acqua ed immergiamoci la pompa.
Colleghiamo a questo punto il filo positivo della pompa (nel mio caso era indicato da un + sul filo) al polo positivo della pompa e poi il filo negativo al polo negativo della batteria.
Se tutto funziona correttamente dovremmo sentire la pompa che parte e poi l’acqua uscire dalla pompa (occhio a non farvi il bagno).

2013-07-18 19.32.20

Ora passiamo alla realizzazione della parte hardware con arduino.
Cominciamo con il collegare il timer Ds1307 ad arduino.
Il Timer Ds1307 viene collegato ad arduino tramite il bus i2c che è attivo sui piedini analogici A4 e A5.
Seguiamo lo schema sotto per il collegamento.

collegamentoTimer_bb

Ora per testarlo carichiamo lo sketch sotto

// Date and time functions using a DS1307 RTC connected via I2C and Wire lib

#include 
#include "RTClib.h"

RTC_DS1307 RTC;

void setup () {
    Serial.begin(57600);
    Wire.begin();
    RTC.begin();

  if (! RTC.isrunning()) {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
    RTC.adjust(DateTime(__DATE__, __TIME__));
  }
}

void loop () {
    DateTime now = RTC.now();

    Serial.print(now.year(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.day(), DEC);
    Serial.print(' ');
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();

    Serial.print(" since midnight 1/1/1970 = ");
    Serial.print(now.unixtime());
    Serial.print("s = ");
    Serial.print(now.unixtime() / 86400L);
    Serial.println("d");

    // calculate a date which is 7 days and 30 seconds into the future
    DateTime future (now.unixtime() + 7 * 86400L + 30);

    Serial.print(" now + 7d + 30s: ");
    Serial.print(future.year(), DEC);
    Serial.print('/');
    Serial.print(future.month(), DEC);
    Serial.print('/');
    Serial.print(future.day(), DEC);
    Serial.print(' ');
    Serial.print(future.hour(), DEC);
    Serial.print(':');
    Serial.print(future.minute(), DEC);
    Serial.print(':');
    Serial.print(future.second(), DEC);
    Serial.println();

    Serial.println();
    delay(3000);
}

Come potete vedere dallo sketch al primo avvio del programma viene aggiornata l’ora del ds1307 con la data ora del computer.

Testiamo ora il collegamento con il relè.
Il relè andrà collegato ad arduino seguendo il seguente schema

Schema_rele

Per verificarne il funzionamento con arduino carichiamo il seguente sketch.

/*
  Rele - Messa Roberto
  Eccita il relè per un secondo e poi lo rilascia in continuazione.

 */
bool releAttivo=false;

void setup() {
  // inizializza i pin digitali come output.
  // il relè sarà collegato sul pin 12:
  pinMode(12, OUTPUT);     

  // inizializza la porta seriale a 9600 bps:
  Serial.begin(9600);
}

void loop() {

  if (releAttivo == true){
   digitalWrite(12, LOW);   // eccita il relè.
   Serial.println("Chiudo il contatto");}
  else{
   digitalWrite(12, HIGH);  // apre il relè.
     Serial.println("Apro il contatto");}

  releAttivo != releAttivo;

  delay(1000);              // attende per un secondo.
}

Se tutto funziona correttamente dovremmo sentire il relè che scatta ogni 2 secondi.

Passiamo ora al codice di irrighino.

/*
  Irrighino - software per gestione irrigazione piante.
  Roberto Messa 2013
 */
#include 
#include "RTClib.h"

RTC_DS1307 RTC;

void setup() {

    // inizializza la porta seriale a 9600.
  Serial.begin(9600);

  Wire.begin();
  RTC.begin(); 

  // inizializza il pin 12 come output (il pin del relè).
  pinMode(12, OUTPUT);    

 if (! RTC.isrunning()) {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
    RTC.adjust(DateTime(__DATE__, __TIME__));
  }
}

void loop() {

  DateTime now = RTC.now();

    Serial.print(now.year(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.day(), DEC);
    Serial.print(' ');
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);

    if (now.hour() == 20 && now.minute() >= 0 && now.minute() < 15) {
      // accende la pompa per l'irrigazione per 15 minuti (con la pompa attuale consuma circa 3 litri d'acqua).
      Serial.print(" pompa accesa");
      digitalWrite(12, LOW);   // accende la pompa portando in stato 0 il relè.
    }
    else{
      Serial.print(" pompa spenta");
      digitalWrite(12, HIGH);    // Spegne la pompa portando lo stato alto.
    }

    Serial.println();
    delay(1000);              // attende 1 secondo (sono + preciso).
}

Dopo aver testato i componenti singolarmente (con gli sketch precedenti), sarà più chiaro come funziona lo sketch di arduino.
L’unica differenza stà nella fusione delle due funzionalità di ora e relè.
Come vedete dal codice attivo alle 8 di sera per 15 minuti che con la pompa che ho utilizzato consuma 3 litri d’acqua, quindi con il fusto da 20 litri mi consente di avere 4 giorni di autonomia.
Non mi sono preoccupato che la pompa di fare in modo che la pompa non si attivasse dopo 4 giorni per mancanza acqua perchè è una pompa fatta apposta per girare anche in mancanza d’acqua senza rovinarsi.
Comunque nulla vieta di mettere un sensore a galleggiate per verificare anche questa condizione, magari la inserirò come possibile upgrade insieme al sensore di umidità del terreno (per evitare di bagnare troppo le piante).
Passiamo ora al montaggio dell’impianto partendo dall’installazione di pannello e regolatore.

(collegamento del pannello e regolatore)
Come nell’ precedente articolo (questo) dobbiamo collegare per prima cosa il regolatore di carica alla batteria rispettando la polarita (prima il + e poi il -).
Poi colleghiamo il pannello al regolatore (sempre rispettando la polarità) ed infine irrighino all’uscita carico del regolatore.
Se non vi è chiaro questo passaggio guardate lo schema qui sotto. (irrighino andrà collegato al posto della lampadina)

solare1_3

Qui sotto potete invece vedere il montaggio completato del pannello con regolatore ed irrighino.

2013-07-31 18.47.39

A questo punto se abbiamo fatto tutto correttamente si dovrebbe accendere il led che indica che il pannello stà caricando la batteria (ovviamente non si accende questo led se stiamo montando il tutto quando non c’è il sole ed è buio).
Ora non ci resta che prendere il kit dell’impianto a goccia e montarlo, vediamo come.

(Montaggio dell’impianto a goccia)
Ora apriamo la scatola del Kit di irrigazione a goccia e ci troveremo davanti del tubo nero lungo 20metri, dei piccoli gocciolatori, dei supporti per il tubo e 3 piccoli rubinetti gialli con i quali possiare regolare la portata d’acqua verso i gocciolatori.

2013-07-17 12.57.27

Cominciamo con il prendere i supporti ed inseriamoli nei vasi come nella foto sotto (io li ho messi ad una distanza di 15 cm l’uno dall’altro e ne ho messi 3 per vaso).

2013-07-17 12.58.48

Ora partendo dal primo vaso ho messo i finali (che sono dei gocciolatori neri) e poi tra un pezzo di tubo e l’altro i gocciolatori.

2013-07-17 21.12.57

Dopo aver completato il collegamento tra tutti i vasi il passaggio successivo è quello di portare il tubo che va ai vasi alla pompa da 12 volt (nella foto la vedete dentro una bacinella).

2013-07-18 19.32.15

(Test e collaudo dell’impianto)

Attendiamo le 8 di sera (oppure l’ora che avete indicato nello sketch), se tutto funziona correttamente dovremmo sentire la pompa che si mette in funzione e l’acqua che esce dai gocciolatori).

Se non funziona controllate bene i collegamenti tra la pompa e il relè ed i collegamenti con arduino.

Dai miei test è saltata fuori una situazione non prevista l’effetto sifone.
Che cosa è l’effetto sifone? L’effetto sifone si verifica quando si mette in comunicazione una vasca con un altra e si genera una piccola depressione tra le due che permette lo svuotamento della prima in modo naturale e senza bisogno di una pompa.
Questo effetto nel nostro impianto di irrigazione non deve avvenire perchè svuoterebbe tutta la cisterna il primo giorno allagando i vasi.
Per ovviare a questo problema ho inserito subito dopo la pompa uno dei piccoli rubinettini gialli ed un tubetto che funziona da sfogo per la pressione.
Quando la pompa si ferma l’aria entra dal tubetto secondario scollegando il serbatotio dal resto dell’impianto annullando l’effetto sifone.
Ecco al termine del collaudo all’arrivo dalle vacanze il sistema di irrigazione collaudato (e come potete vedere per fortuna i fiori sono ancora vivi).

2013-07-31 18.47.31

Quindi il sistema sembra funzionare.
Spero che il sistema irrighino possa aiutarvi a gestire anche le vostre piante durante il periodo estivo o di vacanza.
Per oggi è tutto
Arrivederci al prossimo post.

Tags:

Trackback dal tuo sito.

Commenti (16)

  • Alessandro

    |

    Complimenti per la realizzazione e per il post.
    Ho in mente anche io da diverso tempo di fare una cosa del genere, magari aggiungendo un po’ di automatismi in più (come i sensori di umidità terreno, pioggia, temperatura, ecc…).

    Chissà che prima o poi mi decida di farlo 🙂

    Ciao!

    Rispondi

    • Roberto Messa

      |

      Grazie mille, se lo realizzi mandami pure le foto della tua realizzazione che le possiamo inserire nel post.
      Avevo anche io l’intezione per il prossimo anno di aggiungere i sensori di umidità del terreno e temperatura.

      Rispondi

  • Michele

    |

    Complimenti per l’articolo, ma ho un paio di domande.
    Hai messo nella lista della spesa “Alimentatore step down” ma dove va messo?
    E anche un altra domanda, la pompa a quale morsetto va attaccata?
    Grazie tante

    Rispondi

    • Roberto Messa

      |

      Ciao, l’alimentatore step down viene utilizzato per alimentare l’arduino 2009 con una tensione di 8,2volt (si può alimentare fino a 15 volt ma è consigliabile non esagerare, ho visto che con quella tensione il regolatore interno di arduino non scalda e funziona bene).
      La pompa và collegata al relè al contatto normalmente aperto, così quando arriva l’impulso da arduino viene attivata.
      Se hai altre domande chiedi pure.

      Rispondi

      • Alex

        |

        Ciao, bellissimo tutorial…proprio quello che servirebbe anche a me 🙂
        Anche io ho qualche dubbio sull’alimentatore step down…come collegarlo tra Arduino e il regolatore di carica?

        Rispondi

  • Nick

    |

    Ciao volevo un informazione, ho provato a collegare la batteria e poi stavo tentando di collegare il relè ma ho notato che entrambi vanno collegati nello spinotto dei 5v ma come faccio a collegare il relè se il foro è già occupato dalla batteria. Grazie Nicholas

    Rispondi

    • Roberto Messa

      |

      Ciao Nicholas, il relè ha da una parte 2 piedini che sono collegati alla bobina che fà scattare il relè questi devono essere collegati ad arduino.
      Dal lato opposto troverai 2/3 piedini che sono collegati al contatto del relè, questi funzionano da interruttore cioè aprono o chiudono il circuito.
      a questi devi collegare il solo polo positivo della batteria e dall’altro piedino prenderlo per portarlo alla pompa.
      Se hai ancora dei dubbi scrivi.

      Rispondi

      • Nicholas

        |

        ciao perdonami ma non riesco a capire come collegarre i 2 elementi all’arduino, se puoi rispiegarmi perfavore

        Rispondi

  • Marco

    |

    Ciao, bellissimo il tuo lavoro. Solo una cosa, mi potresti spiegare meglio come hai fatto ad evitare l effetto sifone?

    Rispondi

  • massimo

    |

    Ciao Roberto.
    Grazie per le tante idee e progetti che proponi in rete.
    Ho provato a realizzare il “Sistema Irrigazione Balcone” , ma probabilmente la mia inesperienza e/o incapacità non mi permette di attivare ne il relè e non riesco ad impostare correttamente il timer DS1307.
    Quando carico lo sketch il relè chiude il contatto e si accende il led rosso del modulino del relè ma rimane sempre con il contatto chiuso.
    Per quanto riguarda il timer ti chiedo se devo inserire o modificare qualche parametro per attivarlo correttamente.
    Non riuscendo a “decollare” con i due sketch precedenti non ho nemmeno provato a caricare l’irrighino che caricherò una volta risolti i problemi relè e timer.
    Ti chiedo gentilmente di darmi un suggerimento utile a risolvere le mie difficoltà.
    Un salutone da
    Massimo

    Rispondi

    • Roberto Messa

      |

      Ciao Massimo, grazie che ci segui.
      Arriviamo ai problemi che hai riscontrato, il timer verificherei per prima cosa i collegamenti verso arduino lato A4 e A5 forse li hai invertiti e quindi non arriva il segnale per il settaggio del Ds1307.
      Per il relè quale hai utilizzato? Forse ha una piedinatura differente se mi indichi da dove l’hai preso forse ti posso aiutare a farlo funzionare

      Rispondi

  • mMassimo

    |

    Roberto scusami se ti tedio ,
    ho provato a caricare questo sketch di prova relè e tutto funziona, il relè apre e chiude ogni 2 secondi.

    sketch:
    int Relay = 12;

    void setup()
    {
    pinMode(Relay, OUTPUT); //Set Pin12 as output
    }
    void loop()
    {
    digitalWrite(Relay, HIGH); //Turn off relay
    delay(2000);
    digitalWrite(Relay, LOW); //Turn on relay
    delay(2000);
    }

    Quindi non dipende nè dai collegamenti del relè/Arduino nè dalle due schede (Arduino uno , Relè ).
    Ti chiedo gentilmente se mi poi inviare gli originali dei 3 sketch al mio indirizzo mail.
    Grazie ancora.
    Massimo

    Rispondi

    • Roberto Messa

      |

      Ciao Massimo per gli sketch non c’è problema, devo solo recuperarli, ma sono gli stessi che ho messo sul sito.
      Il dubbio è sul pin utilizzato per il controllo del relè, verifico e ti faccio sapere.

      Rispondi

  • Antonio

    |

    Ciao !!!
    Volevo chiederti: quando la Pompa funziona, in questo caso per 15 minuti, una volta che il tubo é pieno d’acqua, come risolvi il problema della pressione all’interno del tubo, visto che la Pompa continua a pompare acqua?
    Complimenti per il progettino

    Rispondi

Lascia un commento