Progetto #101 • Smart Garden

Arduino: irrigazione automatica con sensore pioggia

Realizziamo un sistema che rileva la pioggia e blocca automaticamente l’irrigazione, comandando una pompa o un’elettrovalvola tramite un modulo relè.

Difficoltà★★☆☆☆ Facile
Tempo25–40 minuti
ConcettiSensore • Relè • Automazione

Introduzione

Un impianto di irrigazione che continua a funzionare mentre piove spreca acqua inutilmente. In questo progetto useremo Arduino e un sensore di pioggia per impedire l’attivazione della pompa quando viene rilevata acqua sul sensore.

È un progetto semplice, ma introduce una logica tipica dei sistemi automatici: leggere una condizione ambientale e prendere una decisione.

Cosa realizzerai
  • rilevamento digitale della pioggia;
  • blocco automatico dell’irrigazione;
  • controllo di una pompa tramite modulo relè;
  • monitoraggio dello stato tramite Monitor Seriale.

Materiale necessario

Arduino UNO
Sensore pioggia per Arduino
Modulo relè 5 V
Pompa DC o elettrovalvola
Alimentatore esterno adatto al carico
Breadboard
Cavi jumper

🧰 Kit Arduino consigliato

Un kit completo è utile per avere a disposizione breadboard, jumper, sensori e molti dei componenti utilizzati nei progetti Arduino del sito.

Vedi il kit Arduino → Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.

📚 Arduino per tutti

Per continuare a imparare Arduino passo passo puoi consultare i tre volumi della raccolta.

Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.

Schema di collegamento

🌧️ Sensore pioggia

  • VCC → 5 V Arduino
  • GND → GND Arduino
  • DO → Pin 2

⚡ Modulo relè

  • VCC → 5 V Arduino
  • GND → GND Arduino
  • IN → Pin 8

💧 Pompa

  • Alimentazione esterna
  • Circuito di potenza interrotto dai contatti del relè
Importante: la pompa non deve essere alimentata direttamente da un pin di Arduino. Utilizza un’alimentazione esterna adeguata alla tensione e alla corrente richieste dalla pompa e usa il relè soltanto per comandarne il circuito.
Relè active LOW: il codice seguente assume un modulo che si attiva portando IN a LOW. Esistono anche moduli con logica diversa: verifica sempre il comportamento del tuo relè prima di collegare la pompa.
Schema Arduino irrigazione automatica con sensore pioggia modulo relè e pompa

Codice Arduino

Progetto #101 — Irrigazione con sensore pioggia
// ============================================
// Progetto 101 - Irrigazione con sensore pioggia
// Blocco automatico della pompa quando piove
// ============================================

const int sensorePioggia = 2;
const int relePompa = 8;

// Questo esempio considera un relè active LOW
const int RELE_ON  = LOW;
const int RELE_OFF = HIGH;

void setup() {

  pinMode(sensorePioggia, INPUT);
  pinMode(relePompa, OUTPUT);

  // Pompa spenta all'avvio
  digitalWrite(relePompa, RELE_OFF);

  Serial.begin(9600);
}

void loop() {

  int statoPioggia = digitalRead(sensorePioggia);

  if (statoPioggia == LOW) {

    // Pioggia rilevata: irrigazione bloccata
    digitalWrite(relePompa, RELE_OFF);
    Serial.println("Pioggia rilevata - irrigazione OFF");

  } else {

    // Nessuna pioggia: irrigazione attiva
    digitalWrite(relePompa, RELE_ON);
    Serial.println("Nessuna pioggia - irrigazione ON");
  }

  delay(1000);
}

Come funziona

1

Il sensore rileva l’acqua

La piastra del sensore cambia comportamento elettrico quando sulla superficie sono presenti gocce d’acqua. Il relativo modulo fornisce quindi un’uscita digitale a Arduino.

2

Arduino legge il pin 2

La funzione digitalRead() controlla continuamente lo stato dell’uscita DO del sensore.

3

Se piove, la pompa viene bloccata

Quando il sensore segnala pioggia, Arduino porta il relè nello stato OFF e impedisce l’irrigazione.

4

Quando il sensore è asciutto

Nell’esempio didattico Arduino attiva il relè e permette alla pompa di funzionare.

Regola la sensibilità: molti moduli per sensori di pioggia dispongono di un piccolo trimmer che permette di modificare la soglia dell’uscita digitale DO.

Un limite importante di questo progetto

Il sensore di pioggia dice ad Arduino se la superficie è bagnata, ma non indica se il terreno ha realmente bisogno di acqua. Per questo il progetto base attiva la pompa ogni volta che non viene rilevata pioggia.

Per un’irrigazione realmente automatica conviene aggiungere almeno un sensore di umidità del terreno e, idealmente, anche una programmazione temporale. In questo modo la pompa parte soltanto quando il terreno è asciutto, nel periodo previsto e non sta piovendo.

Cosa hai imparato

Hai utilizzato un sensore digitale per condizionare il funzionamento di un attuatore e hai visto come Arduino può prendere decisioni in base a ciò che accade nell’ambiente. Questa struttura è alla base di moltissimi sistemi di automazione e Smart Garden.

Varianti e miglioramenti

🌱 Umidità del terrenoLa pompa viene attivata soltanto quando il terreno è realmente asciutto.
⏲️ Irrigazione programmataAggiungi un RTC per consentire l’irrigazione soltanto in determinate fasce orarie.
📟 Display LCDMostra lo stato del sensore, della pompa e le condizioni dell’impianto.
📡 Wi-Fi e controllo remotoCon ESP32 puoi sviluppare una versione IoT con dashboard e notifiche.

🌱 Inizia la seconda raccolta

Il Progetto #101 apre la serie dei Progetti Arduino #101–200, dedicata a nuove automazioni, sensori e applicazioni sempre più complete.