«

»

Lug 26

Stampa Articolo

Centralina irrigazione arduino con LCD

Il progetto di realizzare una centralina irrigazione arduino continua e siccome in molti mi hanno chiesto di poter avere un display LCD sulla centralina ho deciso di riprendere alcuni progetti e fonderli insieme.

Centralina irrigazione arduino

Aggiungere un display LCD 16×2 ed i pulsanti puoi utilizzare la Keypad LCD ed eseguire le regolazioni dell’ora oltre alle fasce di irrigazione.

Purtroppo la keypad LCD è incompatibile con la Relay Shield scelta in precedenza per il progetto in quanto la utilizzano entrambe i pin 5,6,7,8 per controlli differenti, la relè li usa per:

relay shield

e la Keypad LCD utilizza gli stessi pin per controllare il display 16×2.

Una controindicazione è data dal fatto che in entrambe le shield non puoi cambiare i pin a cui i circuiti sono connessi e questo ti porta a dover scegliere quale sostituire, ho preferito sostituire la keypad LCD con il display ACM1602B già utilizzato in questo articolo e 5 pulsanti collegati some la Keypad LCD.

Dedicherò alla connessione dei pulsanti un articolo specifico.

Centralina irrigazione arduino con LCD ACM1602B

il display ACM1602B è stato oggetto di alcuni articoli sia come semplice display sia collegato alla RTC Shield per visualizzare data ed ora, trovi tutta la descrizione in questo articolo.

Prima di usarlo nel progetto della centralina irrigazione arduino è necessario che tu modifichi le connessioni e lo sketch utilizzato, per cui partendo dall’articolo in cui il display già convive con la RTC Shield esegui le modifiche per consentire al display di convivere anche con la Relay Shield della centralina irrigazione arduino.

Collegamenti della centralina irrigazione arduino con l’ACM1602B

Il display ACM1602B presenta come collegamenti i seguenti:

centralina irrigazione Arduino

  • Enable
  • RS
  • D4
  • D5
  • D6
  • D7
  • Contrasto
  • BLACKLIGHT

tutti questi pin devono essere collegati ad Arduino come mostrato in figura:

centralina irrigazione Arduino connessioni

in pratica sposterai i pin D4-D7 dai pin 7, 6, 5, 4 di Arduino ai pin 10, 11, 12, 13 lasciando liberi i pin 5,6,7 utilizzati dalla Relay Shield.

Sposta anche i pin RS ed EN rispettivamente da 12 e 11 ai pin 4 e 3 di arduino.

Il pin 3 era usato per gestire il contrasto del display, puoi utilizzare il pin 9 che resta libero dopo lo spostamento.

Lo sketch di test per centralina irrigazione arduino LCD

lo sketch che leggi di seguito parte dallo sketch dell’orologio arduino realizzato con la RTC Shield ed il display ACM1602B a cui dovrai applicare le modifiche per farlo funzionare con le nuove connessioni.

Lo scopo di questo sketch è consentirti di verificare che tutte le shield del progetto possano funzionare anche con il display LCD 16×2 appenna cablato.

/*
 * RTC & LCD
 *
 * Autore: Mauro Alfieri
 * Tw: @mauroalfieri
 *
 * Web: http://www.mauroalfieri.it
 */

#include <Wire.h>
#include <RTClib.h>
#include <LiquidCrystal.h>

#define BACKLIGHT 2
#define CONTRAST  9

char buffer[10];

RTC_DS1307 RTC;
LiquidCrystal lcd(4, 3, 10, 11, 12, 13);

void setup () {
    pinMode( BACKLIGHT, OUTPUT );
    pinMode( CONTRAST, OUTPUT );
    digitalWrite( BACKLIGHT, HIGH );
    analogWrite( CONTRAST, 40 );

    Wire.begin();
    RTC.begin();
    lcd.begin(16, 2);

    RTC.sqw(1);
    if (! RTC.isrunning()) {
      RTC.adjust(DateTime(__DATE__, __TIME__));
    }
}

void loop () {

    DateTime now = RTC.now();
    lcd.clear();

    sprintf(buffer,  "%02d/%02d/%d", now.day(), now.month(), now.year());
    lcd.setCursor(0,0);
    lcd.print( buffer );

    char buffer[10] = "";

    sprintf(buffer,  "%02d:%02d:%02d", now.hour(), now.minute(), now.second());
    lcd.setCursor(0,1);
    lcd.print( buffer );

    delay(1000);
}

le linee in cui devi eseguire le modifiche sono la linea 15 che cambia da:

#define CONTRAST  3

a

#define CONTRAST  9

e la linea 20 che devi cambiare da:

LiquidCrystal lcd(12, 11, 7, 6, 5, 4);

a

LiquidCrystal lcd(4, 3, 10, 11, 12, 13);

Il resto dello sketch puoi lasciarlo invariato.

Eseguendo l’upload dello sketch sulla centralina irrigazione arduino con LCD visualizzerai correttamente la data e l’ora impostata nella RTC Shield è la dimostrazione che il tutto funziona in modo corretto e non ci sono conflitti tra i pin utilizzati dalle shield del progetto.

Al prossimo articolo in cui aggiungeremo i pulsanti alla centralina irrigazione arduino.

Permalink link a questo articolo: http://www.mauroalfieri.it/elettronica/centralina-irrigazione-arduino-lcd.html

14 comments

2 pings

Vai al modulo dei commenti

  1. didac

    buongiorno,
    bel progetto,è un’ottima partenza per me, in quanto ora la mia idea sarebbe ampliare il tuo progetto:
    vorrei inserire nel progetto un dht11 per il rilevamento temperatura-umidità, uno o più ventilatori legati al dht11 per il controllo temperatura: al raggiungimento della temperatura desiderata stacca la stufa, parte la ventola- come scende al di sotto della temperatura esempio 22 gradi di minima stacca la ventola e riparte la stufa ecc..
    lo stesso discorso è legato ad un umidificatore che anch’esso attacca e stacca al raggiungimento di determinati tassi di rh si stacca o attacca.
    il tutto gestito da relay separati all’impianto idrico!
    La gestione delle luci a led di potenza da 3 w con spettro blu- rosso- ir- uv- che sono spettri di luce effettivamente assorbiti dalle piante.la gestione luci è data da un controller alba tramonto quindi non ha a che fare con arduino.
    La domanda è:
    mi puoi aiutare nella espansione della tua scheda con quel che sopra ho citato??
    a dire il vero con arduino ho iniziato da un mese, quindi come avrai ben capito sono parecchio asino in materia, progetti non ce ne sono in rete – per quel che serve a me-
    io ho comprato arduino 2560mega, dht11, scheda due relay 5v per arduino, ora mi servirebbe il tuo aiuto a realizzare il progetto!!
    Ti ho scritto stamani su facebuk, ribadisco il fatto che se vuoi posso pagarti per lo sbattimento, è importante che io raggiunga lo scopo, perchè se voglio iniziare a coltivare gli -ariocarpus- mi serve un controllo minuzioso del terrario, altriomanti nemmeno iniziare, sono parecchio difficili da da far nascere, in quanto sono cactus, quindi devo avere un ‘ambiente desertico se voglio farli nascere -crescere!!!
    per ora ti ringrazzio, spero che ti prenda bene il progetto,potresti inserirlo nei tuoi tanti che hai pubblicato, specialmente questo dell’irrigazione, sarebbe un’automatizzazione quasi completa!!

    ciao grazie diego

    1. Mauro Alfieri

      Ciao Diego,
      posso realizzare per te un progetto, ti invio in posta nei prossimi giorni una scheda di progetto da compilare con il maggior numero di dettagli possibili sulla base della quale ti formulerò un preventivo di massima.
      Ti invito a non mettere nei commenti il tuo indirizzo email scritto in chiaro, io vedo cmq il tuo indirizzo email, per evitarti migliaia di spam in posta.

      Mauro

      1. giacomo

        interesserebbe molto anche a me, mi trovo a dover gestire un growbox con peperoncini e non riesco a mettere tutto insieme controlli temp e luci e umidità. Potresti darmi un sketch più o meno adattabile?!

        1. Mauro Alfieri

          Ciao Giacomo,
          hai mai letto i miei articoli sulla realizzazione di un orto idroponico?
          Siamo a livelli molto più specifici rispetto alla semplice centralina di irrigazione e più completi dal punto di vista delle funzionalità.

  2. didac

    buongiorno Mauro,
    la ringrazio della risposta, sto studiando parecchio con arduino, seguo i tutorial di questo sito, diciamo che comincio ad orientarmi con i comandi.
    In seguito ti invierò un codice che sto iniziando a compilare,gia da ora comincio ad avere problemi di compilazione, ma prima o poi spero di riuscire .
    Appena ricevo la sua mail provvedo a compilare la scheda.
    Grazie, a risentirci,Diego

    1. Mauro Alfieri

      Ciao Diego,
      ti chiedo di non incollare codice nei commenti.

      Mauro

  3. Fabio

    Buonasera Mauro. Iinnanzi tutto volevo farti i complimenti per i tuo progetti. Finalmente ho trovato quello che mi serviva.
    Una domanda posso utilizzare un RTC con DS1302 al posto del DS1307?
    Quand’è la differenza?

    1. Mauro Alfieri

      Ciao Fabio,
      io ho sempre usato il DS1307 non conosco il DS1302 e non saprei dirti che differenza ci possa essere tra i due e se la libreria scritta per il DS1307 possa andar bene senza necessità di adattarla.

      1. Fabio

        Ho fatto delle prove e sono riuscito ad utilizzare il seguente codice della libreria DS1302 modificato (ho provato con una sola uscita ma devo capire come inserire i pulsanti di programmazione). La libreria del DS1307 sembra non funzionare:

        < codice rimosso in automatico >

        1. Mauro Alfieri

          Ciao Fabio,
          forse non hai letto quello che c’é scritto in fondo ad ogni articolo o forse non ti é chiaro, il codice sketch non può essere incollato nei commenti.

  4. Riccardo

    Inanzitutto ottimo sito internet, utile e chiaro;
    Sto costruendo anche io una centralina per gli irrigatori ma sono bloccato ai collegamenti hardware .. uso arduino uno r3, modulo rtc ds 1302, modulo 4 relè e keypadshield della df robots.
    Le mie domande sono 2: il keypadshield ha i fori di riporto per usare liberamente i pin digitali dal 1 al 7, ma poi dal 4 all’8 li usa il display, non riesco a capire se posso usarli per collegare i 4 rele o no; altra domanda è dove collego l’ rtc? Ha dei pin fissi o posso definirli io?
    Grazie

    1. Mauro Alfieri

      Ciao Riccardo,
      la keypad LCD usa i pin dal 4 all’8 e non puoi usarli per altro.
      Per collegare la RTC devi usare SDA ed SCL ( I2C ) di arduino, ti consiglio di leggere i primi articoli che ho scritto sull’RTC, ricorda che anche i pin SDA ed SCL se li usi per la RTC potrai in seguito utilizzarli solo per altre shield I2C che non vadano in conflitto con la RTC.

  5. Max

    Ciao Mauro,

    anzitutto complimenti per i tutorial davvero molto ben realizzati.
    Volevo chiederti come mai non condividi anche gli schemi elettronici fatti, per esempio, con Fritzing e se c’è la possibilità che tu lo faccia.
    Ritengo possa essere davvero interessante poter realizzare davvero quanto appreso nel tutorial.

    Ciao e continua così
    Max

    1. Mauro Alfieri

      Ciao Max,
      gli schemi li condivido ogni volta che ne intravedo l’esigenza per consentire la riproducibilità del progetto.
      Se mi segui da un po’ o inizi a farlo leggendo i miei articoli scoprirai che ci sono.

      In alcuni progetti, come questo, non sono necessari perché uso solo Shield già confezionate e costruite, si tratta di progetti di differente natura indirizzati anche a chi non saprebbe seguire uno schema elettrico e non vuole rinunciare a riprodurre il progetto.

  1. Centralina irrigazione arduino aggiungi i pulsanti - Mauro Alfieri

    […] « Centralina irrigazione arduino con LCD […]

  2. Centralina irrigazione arduino imposta orario - Mauro Alfieri Domotica

    […] Centralina irrigazione arduino con LCD […]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Puoi usare i seguenti tag ed attributi HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>