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è.
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.
- rilevamento digitale della pioggia;
- blocco automatico dell’irrigazione;
- controllo di una pompa tramite modulo relè;
- monitoraggio dello stato tramite Monitor Seriale.
Materiale necessario
🧰 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.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è
Codice Arduino
// ============================================
// 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
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.
Arduino legge il pin 2
La funzione digitalRead() controlla continuamente lo stato dell’uscita DO del sensore.
Se piove, la pompa viene bloccata
Quando il sensore segnala pioggia, Arduino porta il relè nello stato OFF e impedisce l’irrigazione.
Quando il sensore è asciutto
Nell’esempio didattico Arduino attiva il relè e permette alla pompa di funzionare.
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.
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
🌱 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.

