Skip to Content

Sistema automatico di irrigazione per piante con Arduino IoT Cloud

Sistema automatico di irrigazione per piante con Arduino IoT Cloud

In questo progetto imparerai come creare un sistema automatico di irrigazione per interni con il Arduino IoT Cloud. Questo sistema ti permette di monitorare e annaffiare le tue piante da qualsiasi parte del mondo ed è un’ottima introduzione all’internet delle cose.

Ho incluso istruzioni per la costruzione, una guida introduttiva per l’Arduino IoT Cloud e tutto il codice necessario. Questo progetto utilizza una scheda Arduino MKR1000 IoT, un sensore capacitivo di umidità del terreno, un sensore di temperatura e umidità, un LCD I2C e una pompa d’acqua. È anche possibile realizzare questo progetto con un Arduino normale (non connesso a internet).

Nota che questo è principalmente un proof of concept, cioè costruire questo sistema per una sola pianta è piuttosto costoso e probabilmente non ha molto senso. Tuttavia, ora che so come funziona tutto, posso facilmente espandere il sistema e aggiungere più funzionalità in futuro.

Se hai domande o suggerimenti, lascia un commento qui sotto.

Per maggiori informazioni su alcuni componenti usati in questo progetto, dai un’occhiata ai tutorial qui sotto:

Materiali

Componenti hardware

arduino-mkr1000Arduino MKR1000 × 1 Amazon
arduino-mkr-relay-proto-shieldArduino MKR Relay Proto Shield × 1 Arduino
Capacitive soil moisture sensor × 1 Amazon
AM2301-temperature-humidity-sensorAM2301A (DHT21) temperature and humidity sensor × 1 Amazon
LCD20×4 character I2C LCD × 1 Amazon
Mini submersible pump × 1 Amazon
PVC tube 6 x 9 mm 1 m Amazon
IKEA container with lid × 1 IKEA
Project box 120 x 80 x 50 mm × 1 Amazon

Nota che puoi anche usare qualsiasi altra scheda Arduino IoT con connettività Wi-Fi, come il Arduino MKR WiFi 1010 o la più economica Arduino Nano 33 IoT. Il vantaggio delle schede MKR è che si adattano all’Arduino MKR Relay Proto Shield, che rende il cablaggio molto più semplice.

Per il serbatoio dell’acqua, puoi usare qualsiasi contenitore tu abbia a disposizione (io ho usato un contenitore per alimenti IKEA dalla mia cucina).

App e servizi online

arduino-web-editorArduino Web Editor
arduino-iot-cloudArduino IoT Cloud

Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.

Assemblaggio del sistema

Tutti i componenti sono collegati a una scatola centrale del progetto montata sul coperchio del contenitore IKEA.

Scatola del progetto montata sul coperchio del contenitore IKEA

Per montare l’Arduino MKR Relay Proto Shield, ho stampato in 3D una semplice piastra adattatrice. Un piccolo foro sul lato della scatola del progetto permette l’accesso alla porta micro USB del MKR1000, usata per alimentare il sistema e programmare la scheda.

3d printed adapter plate
Piastra adattatrice stampata in 3D

Sensore di umidità del terreno

Per questo progetto ho usato un capacitive soil moisture sensor con uscita analogica. I sensori capacitivi hanno una migliore resistenza alla corrosione rispetto a quelli resistivi, ma non sono completamente impermeabili. Essendo realizzati con un PCB standard con substrato composito, l’acqua può facilmente entrare dai lati del PCB. L’elettronica sulla parte superiore del sensore non è protetta dall’acqua in alcun modo.

Per rendere il sensore un po’ più impermeabile, ho rivestito i bordi e l’elettronica con dello smalto trasparente per unghie. Un vero rivestimento conformale sarebbe probabilmente migliore, ma lo smalto funziona abbastanza bene come alternativa economica.

nail polish
Ho rivestito i bordi del sensore e l’elettronica con dello smalto trasparente per unghie

Il cavo fornito con il sensore era piuttosto corto, quindi ne ho realizzato uno nuovo. Puoi anche semplicemente saldare fili più lunghi al cavo originale.

longer cable
Nuovo cavo per il sensore di umidità del terreno

Collegamento del sensore di umidità del terreno all’Arduino MKR1000

La tabella qui sotto mostra quali collegamenti devi effettuare.

Sensore di umidità del terreno Arduino MKR1000
GND GND
VCC 3.3 V
AOUT A2

Pompa e shield relè

pump
Mini pompa sommersa

Per annaffiare le piante, ho usato una small submersible pump che può essere alimentata a 3.3 V. La pompa è controllata dal relè 1 del Arduino MKR Relay Proto Shield. Poiché la pompa assorbe solo circa 200 mA, può essere alimentata direttamente dall’uscita 3.3 V del MKR1000.

Se vuoi usare una pompa più grande, devi usare un’alimentazione esterna. Assicurati che la corrente della pompa rientri nelle specifiche dei relè.

arduino mkr relay proto shield
Arduino MKR Relay Proto Shield (Fonte: Arduino.cc)

Il filo nero della pompa è collegato a massa. Il filo rosso va al lato NO (normalmente aperto) del relè. COM è collegato all’uscita 3.3 V del MKR1000. Nota che questo 3.3 V è disponibile su uno dei morsetti a vite dello Shield.

Sensore di temperatura e umidità

temperature and humidity sensor
Sensore di temperatura e umidità montato sul lato della scatola del progetto

Anche se non strettamente necessario per annaffiare automaticamente le piante, ho pensato che un sensore di temperatura e umidità fosse un’aggiunta utile al sistema. Per questo progetto ho usato un AM2301A sensor che viene fornito in un involucro con i fili già collegati. Questo sensore è prodotto da ASAIR, che realizza anche i molto popolari sensori DHT11 e DHT22.

Per maggiori informazioni sui sensori di temperatura e umidità DHT, dai un’occhiata al tutorial qui sotto:

Collegamento del sensore di temperatura e umidità AM2301A

La tabella qui sotto mostra quali collegamenti devi effettuare.

Sensore di temperatura e umidità AM2301A Arduino MKR1000
Nero GND
Rosso 3.3 V
Giallo A1

Ho montato il sensore sul lato della scatola del progetto. Nota che ho praticato un piccolo foro nella scatola e sul retro del sensore per far passare i fili.

temperature and humidity sensor connection
I fili sono fatti passare dal retro del sensore

LCD I2C

Oltre all’Arduino IoT Cloud, i dati dei sensori sono anche visualizzati sul display LCD I2C 20×4 montato sul coperchio della scatola del progetto.

LCD I2C 20×4 caratteri montato sul coperchio della scatola del progetto

Ho tagliato un’apertura nella scatola del progetto usando my homemade CNC router, ma potresti usare anche un seghetto alternativo o un taglierino affilato.

i2c lcd back
L’LCD è fissato con quattro bulloni attraverso i fori di montaggio nel PCB

L’LCD di solito è alimentato a 5 V ma sembra funzionare bene anche a 3.3 V. Grazie al modulo I2C montato sul retro dell’LCD, devi collegare solo due fili, SDA e SCL, al MKR1000. I collegamenti sono disponibili ai morsetti a vite dello shield, quindi il cablaggio del display è molto semplice.

Collegamenti LCD I2C

LCD I2C 20×4 caratteri Arduino MKR1000
GND GND
VCC 3.3 V
SDA SDA
SCL SCL

Ho scritto un tutorial dettagliato sull’uso degli LCD I2C con Arduino che puoi trovare qui:

Nota sul cablaggio

Come avrai notato, tutti i sensori, l’LCD e la pompa devono essere collegati a 3.3 V e GND. L’Arduino MKR Relay Proto Shield ha una sola uscita di alimentazione e infilare tutti i fili in un solo morsetto a vite non è una buona idea. Invece, puoi usare qualcosa come Wago lever nuts come punto di distribuzione dell’alimentazione.

wago lever nuts
Morsetti a leva Wago

Il tubo dell’acqua

Inizialmente, avevo pianificato di infilare semplicemente l’estremità del tubo in PVC da qualche parte nel mezzo del vaso. Tuttavia, ho scoperto che questo lasciava una parte del vaso bagnata e il resto completamente asciutto.

La mia soluzione è stata di praticare molti piccoli fori (1 mm) distanziati di circa 2 cm negli ultimi 30-40 cm del tubo. Ho stampato in 3D un tappo per l’estremità del tubo e alcuni supporti da infilare nel terreno.

Puoi scaricare i file STL qui se vuoi stampare i tuoi:

tube with plug holes and holders
Supporti e tappo stampati in 3D

Questo sembra funzionare abbastanza bene per bagnare il terreno in modo uniforme.

Tubo dell’acqua installato

Iniziare con Arduino IoT Cloud

Nella sezione successiva spiegherò come iniziare con Arduino IoT Cloud.

Il primo passo è andare su https://create.arduino.cc/. Su questa pagina web troverai il Web Editor, una guida introduttiva, il Device Manager e un link ad Arduino IoT Cloud.

arduino create dashboard
Dashboard di Arduino Create

Installazione del plugin Arduino Create

Ci sono diversi modi per configurare una nuova scheda, ma trovo più semplice farlo tramite la pagina Getting Started. Clicca sull’icona Getting Started e scorri fino in fondo alla pagina dove c’è scritto Install Arduino Create Plugin. Questo plugin ti permette di caricare sketch dall’Arduino Web Editor alla tua scheda o dispositivo.

getting started arduino create agent 1
Scarica e installa il plugin Arduino Create

Dopo aver cliccato sull’icona Arduino Create Plugin in fondo alla pagina, clicca su start, scarica e installa il plugin. Il wizard di configurazione verificherà se il plugin è stato installato correttamente. Se sì, vedrai la pagina qui sotto.

getting started arduino create agent 4
Dovresti vedere questa pagina dopo aver installato il plugin Arduino Create

Configurazione di una scheda IoT

Ora torna alla pagina Getting Started cliccando sull’icona in alto. Il passo successivo è configurare una nuova scheda IoT. Per questo progetto ho usato l’Arduino MKR1000. Se non sei sicuro del nome della tua scheda, puoi cliccare sull’icona Autodetect Arduino Board.

Seleziona l’Arduino MKR1000

Si aprirà il wizard di configurazione IoT che ti guiderà nella configurazione e nel test della scheda.

getting started mkr1000 iot configuration
Wizard di configurazione IoT MKR1000

Clicca su start e collega la scheda al computer con un cavo USB. Se hai installato correttamente il plugin Arduino Create, il computer dovrebbe rilevare il dispositivo.

getting started mkr1000 iot configuration 1
Collega il MKR1000 al computer con un cavo USB e attendi che la scheda sia disponibile

Poi dai un nome alla tua scheda. Io l’ho chiamata semplicemente MKR1000_1. Assicurati di usare un nome facile da riconoscere, soprattutto se usi più schede per progetti diversi.

getting started mkr1000 iot configuration name
Inserisci un nome per la tua scheda

Dopo questo, il chip crittografico del MKR1000 deve essere configurato, operazione che richiede fino a 5 minuti. Ogni MKR1000 è dotato di un  Microchip ECC508 crypto chip. Questo chip serve a memorizzare in modo sicuro l’identità della tua scheda quando è collegata al tuo account Arduino.

Configurazione del chip crittografico

Successivamente, puoi caricare uno sketch di esempio che ti permetterà di testare la funzionalità della scheda e accendere o spegnere il LED integrato tramite il Network Monitor. Nella scheda Secret dello sketch devi inserire il nome e la password della tua rete wifi locale.

Carica lo sketch di esempio dopo aver inserito i dati wifi nella scheda Secret

Nella pagina successiva clicca sul carattere LED per accendere o spegnere il LED integrato.

Clicca sul carattere LED o digita ON o OFF e clicca su ‘SEND’

Se tutto è andato bene, dovresti vedere la pagina qui sotto.

Creare un nuovo Thing

Dopo aver configurato un nuovo dispositivo IoT, puoi tornare alla dashboard di Arduino Create e cliccare sull’icona Arduino IoT Cloud.

arduino iot cloud icon
Dashboard di Arduino Create con l’icona Arduino IoT Cloud evidenziata

Cliccando su questa icona si aprirà la pagina “Your Things” di Arduino IoT Cloud. Qui puoi creare nuovi Things, che è come Arduino chiama i dispositivi connessi a internet. Nel nostro caso, il Thing rappresenta la scheda Arduino MKR1000 con più sensori collegati. Ogni Thing può avere più proprietà come temperatura, stato di un LED, coordinate GPS, ecc.

Nella versione gratuita dell’IoT Cloud puoi creare solo un Thing con fino a cinque proprietà. Se vuoi di più, devi passare al piano a pagamento. Poiché questo progetto usa un solo Thing con meno di cinque proprietà, il piano gratuito va benissimo.

create new thing
Pagina Your Things

Clicca su ADD NEW THING e dagli un nome. Io l’ho chiamato Automatic_indoor_garden. Seleziona la scheda MKR1000 che abbiamo appena configurato dal menu a tendina (MKR1000_1).

Inserisci un nome per il tuo Thing e seleziona un dispositivo da associare

Ora verrai reindirizzato a una pagina dove puoi aggiungere proprietà al tuo Thing.

add property
Pagina delle proprietà del Thing

Aggiunta delle proprietà

Per questo progetto ho aggiunto tre proprietà diverse: temperatura, umidità e contenuto di umidità del terreno. Le proprietà rappresentano variabili nel codice Arduino e sono anche leggibili nel Cloud. Dopo aver creato le proprietà e caricato il codice, potrai vederle nella dashboard del tuo Thing.

Aggiungere proprietà è molto semplice cliccando su ADD PROPERTY. Nota che devi ripetere questa operazione tre volte.

Per ogni proprietà devi impostare i seguenti parametri:

  • Nome – il nome che sarà mostrato nella lista delle proprietà e nel widget.
  • Nome Variabile – il nome della variabile che userai nello Sketch per riferirti a questa proprietà. Non può contenere caratteri speciali.
  • Tipo – seleziona il tipo corretto della proprietà. Aggiungi il minimo e massimo per misurazioni numeriche, per disegnare correttamente il widget.
  • Permessi
    • Lettura & Scrittura : la proprietà può essere sia impostata che mostrata nella dashboard di Arduino IoT Cloud.
    • Sola Lettura : la proprietà sarà inviata ad Arduino IoT Cloud e sarà disponibile nella tua dashboard.
  • Aggiornamento
    • Quando il valore cambia : la proprietà sarà inviata ad Arduino IoT Cloud ogni volta che la variazione del valore è maggiore o uguale al delta.
    • Regolarmente : la proprietà sarà inviata ad Arduino IoT Cloud ogni volta che trascorre il numero specificato di secondi.
  • Storico – Mostra una visualizzazione dei dati storici per la proprietà.

Nell’immagine sotto puoi vedere quali parametri ho usato per la proprietà Temperatura. Nota che puoi selezionare uno dei tanti tipi di proprietà predefiniti come Temperatura (Celsius) oppure crearne uno personalizzato.

add new property window
Screenshot della proprietà Temperatura

Puoi trovare i parametri per le altre proprietà nella tabella qui sotto

Parametri delle proprietà del Thing

Nome Variabile
Nome
Tipo Permessi Aggiornamento
Temperatura temperature Temperatura (Celsius)
-20 °C – 60 °C
RO Ogni 10s
Umidità humidity Umidità Relativa (Percentuale)
0 RH – 100 RH
RO Ogni 10s
Contenuto di umidità del terreno soilMoistureContent Float
0 – 100
RO Ogni 1s

Se selezioni mostra visualizzazione storico, puoi registrare i valori delle proprietà per un certo periodo e salvarli come grafici. Purtroppo, nella versione gratuita di Arduino IoT Cloud puoi salvare i dati solo per 1 giorno.

automatic indoor garden thing properties
Scheda Proprietà

Dopo aver aggiunto tutte le proprietà clicca su EDIT SKETCH. Questo aprirà l’Arduino Web Editor.

Crea sketch

Dopo aver cliccato su EDIT SKETCH vedrai che uno sketch nuovo è stato creato automaticamente.

Editor con sketch generato automaticamente

Nota che lo sketch ha lo stesso nome del nostro Thing più la data di creazione. Oltre a questo file .ino, vedrai altri tre file:

ReadMe.adoc : questo è un file di testo semplice dove puoi aggiungere informazioni sull’autore e sul progetto.

thingProperties.h : questo file è generato automaticamente da Arduino IoT Cloud quando aggiungi proprietà al tuo Thing. In generale, non dovresti modificare tu stesso il codice in questo file. Viene aggiornato automaticamente quando cambi le proprietà del Thing nella dashboard.

Consulta la pagina IoT Cloud – Getting Started sull’Arduino Project Hub per una spiegazione più dettagliata sulle diverse funzioni in thingProperties.h.

thingproperties
thingProperties.h

Secret: questa scheda ti permette di inserire le credenziali di rete. SECRET_SSID e SECRET_PASS sono il nome e la password della rete wifi a cui il MKR1000 si connetterà. Dopo aver inserito questi dati, clicca su salva.

Scheda Secret

Codice Arduino

I file generati automaticamente rendono abbastanza semplice iniziare con l’IoT Cloud, ma ovviamente devi comunque scrivere un po’ di codice da solo.

Nel sketch principale, non in thingProperties.h, ho aggiunto codice che legge i sensori, controlla la pompa d’acqua e visualizza le informazioni sull’LCD I2C.

Puoi sostituire il codice nel sketch principale con quello qui sotto. Collega la scheda MKR1000 al computer se non l’hai già fatto e carica il codice cliccando sul pulsante di upload (freccia a destra in alto). Ti consiglio di scollegare la pompa per ora e lasciare installati solo i sensori.

Ora spiegherò come funziona il codice e ti mostrerò come modificare alcuni parametri.

Puoi copiare il codice cliccando sul pulsante in alto a destra nel campo del codice.

/*
  Sketch for automatic indoor garden project. More info: https://www.makerguides.com

  Arduino IoT Cloud Properties description

  The following variables are automatically generated and updated when changes are made to the Thing properties

  float soilMoistureContent;
  float humidity;
  float temperature;

  Properties which are marked as READ/WRITE in the Cloud Thing will also have functions
  which are called when their values are changed from the Dashboard.
  These functions are generated with the Thing and added at the end of this sketch.
*/

#include "thingProperties.h"
#include "DHT.h"
#include "LiquidCrystal_I2C.h"

#define DHTPIN A1
#define DHTTYPE DHT21

#define RELAYPIN 1
#define SOILPIN A2

DHT dht = DHT(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 20, 4);

const unsigned long pumpPeriod = 20000;
const unsigned long waitPeriod = 120000;
unsigned long previousMillis;
float moistureSensorData;

void setup() {
  // Initialize serial and wait for port to open:
  Serial.begin(9600);
  // This delay gives the chance to wait for a Serial Monitor without blocking if none is found
  delay(1500);

  // Defined in thingProperties.h
  initProperties();

  // Connect to Arduino IoT Cloud
  ArduinoCloud.begin(ArduinoIoTPreferredConnection);

  /*
     The following function allows you to obtain more information
     related to the state of network and IoT Cloud connection and errors
     the higher number the more granular information you’ll get.
     The default is 0 (only errors).
     Maximum is 4
  */
  setDebugMessageLevel(4);
  ArduinoCloud.printDebugInfo();

  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(RELAYPIN, OUTPUT);

  dht.begin();

  lcd.init();
  lcd.backlight();
}

void loop() {
  ArduinoCloud.update();

  // Your code here
  temperature = dht.readTemperature();
  humidity = dht.readHumidity();

  lcd.setCursor(0, 0);
  lcd.print("Temperature:");
  lcd.setCursor(13, 0);
  lcd.print(temperature);
  lcd.print("\xDf" "C");
  lcd.setCursor(0, 1);
  lcd.print("Humidity:");
  lcd.setCursor(10, 1);
  lcd.print(humidity);
  lcd.print("%");

  moistureSensorData = analogRead(SOILPIN);
  //Serial.println(moistureSensorData);
  soilMoistureContent = map(moistureSensorData, 883, 469, 0, 100);
  soilMoistureContent = constrain(soilMoistureContent, 0, 100);
  lcd.setCursor(0, 2);
  lcd.print("Soil moisture:");
  lcd.setCursor(15, 2);
  lcd.print(soilMoistureContent, 0);
  lcd.print("%  ");

  if (soilMoistureContent <= 30 && millis() - previousMillis >= waitPeriod) {
    digitalWrite(RELAYPIN, HIGH);
    digitalWrite(LED_BUILTIN, HIGH);
    delay(pumpPeriod);
    digitalWrite(RELAYPIN, LOW);
    digitalWrite(LED_BUILTIN, LOW);

    previousMillis = millis();
  }
}

Come funziona il codice

Nella sezione loop del codice, temperatura e umidità sono letti con dht.readTemperature() e dht.readHumidity() rispettivamente. Le variabili temperature e humidity sono state aggiunte automaticamente in thingProperties.h e i loro valori saranno inviati al cloud ogni 10 secondi.

La sezione successiva del codice stampa i valori sull’LCD I2C.

  lcd.setCursor(0, 0);
  lcd.print("Temperature:");
  lcd.setCursor(13, 0);
  lcd.print(temperature);
  lcd.print("\xDf" "C");
  lcd.setCursor(0, 1);
  lcd.print("Humidity:");
  lcd.setCursor(10, 1);
  lcd.print(humidity);
  lcd.print("%");

Poi viene letta l’uscita analogica del sensore di umidità del terreno con analogRead(). Questo valore viene poi scalato tra 0 e 100 % di umidità. Per calibrare il sensore, puoi stampare i dati nel Serial Monitor. Il valore 833 corrisponde a quando il sensore è tenuto in aria e 469 quando è immerso in un bicchiere d’acqua.

  moistureSensorData = analogRead(SOILPIN);
  //Serial.println(moistureSensorData);
  soilMoistureContent = map(moistureSensorData, 883, 469, 0, 100);
  soilMoistureContent = constrain(soilMoistureContent, 0, 100);
  lcd.setCursor(0, 2);
  lcd.print("Soil moisture:");
  lcd.setCursor(15, 2);
  lcd.print(soilMoistureContent, 0);
  lcd.print("%  ");

Nell’ultima parte del codice controllo se il contenuto di umidità del terreno è sotto il 30 % e, in tal caso, le piante vengono annaffiate per una durata prestabilita. Ho aggiunto un tempo minimo di attesa tra i cicli di irrigazione per dare al terreno il tempo di assorbire l’acqua.

  if (soilMoistureContent <= 30 && millis() - previousMillis >= waitPeriod) {
    digitalWrite(RELAYPIN, HIGH);
    digitalWrite(LED_BUILTIN, HIGH);
    delay(pumpPeriod);
    digitalWrite(RELAYPIN, LOW);
    digitalWrite(LED_BUILTIN, LOW);

    previousMillis = millis();
  }

Probabilmente dovrai regolare i parametri pumpPeriod e waitPeriod in cima al codice per adattarli al tuo setup.

Creare una dashboard

Dopo aver caricato il codice, clicca su GO TO IOT CLOUD. Ora clicca su Dashboards in alto.

arduino iot cloud dashboards
Dashboard di Arduino IoT Cloud

Quando sei su questa pagina, clicca su create dashboard. Puoi aggiungere widget alla tua dashboard per mostrare valori, grafici, ecc.

arduino iot cloud dashboard add widget
Aggiungi un widget Valore

Clicca sul widget e seleziona Link Property

arduino iot cloud value
Clicca su Link Property

Ora seleziona quale proprietà vuoi visualizzare.

Collega una proprietà del nostro Thing

Dopo aver aggiunto più widget, la tua dashboard dovrebbe assomigliare a questa:

Dashboard con valori e grafici

Conclusioni

In questo articolo ti ho mostrato come creare un semplice sistema di irrigazione automatico con MKR1000 e Arduino IoT Cloud. Spero che questo tutorial ti sia stato utile e ti abbia dato qualche spunto.

Nell’attuale configurazione, Arduino IoT Cloud è usato solo per visualizzare e registrare i dati dei sensori. Quindi potresti anche realizzare questo come sistema standalone con un Arduino Uno o simile. Personalmente volevo solo sperimentare con Arduino IoT Cloud e vedere quanto fosse difficile configurarlo. È stato molto più semplice di quanto pensassi e sicuramente lo userò per altri progetti in futuro.

Ho fatto funzionare questo sistema per un breve periodo e sembra funzionare molto bene. Farò un aggiornamento tra un mese circa, dopo averlo testato più a lungo.

Una cosa che potrei aggiungere in futuro è un interruttore di livello dell’acqua per il serbatoio e collegarlo a un sistema di allerta via email. Temo che dimenticherò di riempire il serbatoio ora che non devo più pensare all’irrigazione delle piante…

Se hai domande o suggerimenti, lascia un commento qui sotto.