Realizzazioni · Centralino di irrigazione
Un centralino che cresce
una scheda alla volta
Quattro, otto o sedici settori per scheda. Fino a diciannove nodi sullo stesso impianto. Le direttive sono progettate per vivere sulla scheda, non nel cloud: l’obiettivo è che spegnere il PC non fermi l’irrigazione. Una scheda nuova si annuncia da sola e si aggiunge senza rifare il software, il cablaggio degli altri settori o la programmazione già in servizio.
Prototipo funzionante. Firmware e maschera verificati su hardware reale: bridge ESP32-C3 su USB e nodo ESP32-S3 con scheda relè a 16 canali.
Il progetto
Accendere una valvola è facile.
Farlo per anni, senza sorprese, no.
Un impianto di irrigazione lavora quando nessuno lo guarda: all’alba, in vacanza, durante un temporale, con il PC spento e la rete che va e viene. La maggior parte dei centralini “smart” fallisce esattamente lì: mette l’orologio e la logica in un’app, in un server o in un cloud, e quando quel pezzo manca l’acqua non parte — o parte quando non dovrebbe.
Questo centralino inverte la dipendenza. Le direttive — giorni, partenze, durata e programmi di ogni canale — sono il patrimonio della scheda, che ha un orologio con batteria ed è progettata per irrigare almeno 48 ore senza PC. Il PC è l’editor e il sincronizzatore: scrive la configurazione, legge gli eventi, mostra la deriva dell’orologio. A regime non è nel percorso critico; oggi è ancora lui a far partire i cicli, e il passaggio del motore sulla scheda è il prossimo blocco di lavoro (lo raccontiamo in Che cosa è pronto).
Il collegamento fra le due parti è volutamente semplice e riparabile: dalla maschera web a un bridge ESP32-C3 via USB o rete locale, dal bridge alle schede via ESP-NOW, un protocollo radio diretto che non ha bisogno di Wi-Fi, router, internet o abbonamenti. Ogni scheda pilota elettrovalvole 24 VAC tramite triac o relè e applica da sola i propri limiti di sicurezza.
Non è un prodotto da scaffale con un numero fisso di zone: è un’architettura pensata perché l’impianto possa crescere. Si parte da una scheda da 8 canali per il giardino e si arriva a più schede per orto, serra e frutteto, senza cambiare protocollo, senza riscrivere il database e senza toccare la programmazione che già funziona.
Architettura
Tre livelli, una sola verità: la scheda
Il PC configura, il bridge trasporta, il nodo esegue. Nessun livello superiore può lasciare una valvola aperta se smette di rispondere, perché la chiusura e i limiti vivono sul livello che ha in mano il relè.
Configurazione, comandi manuali, registro
Mappa nodo ↔ MAC
elettrovalvole 24 VAC · pompa / valvola master
| Attore | Cosa fa | Cosa non fa |
|---|---|---|
| PC (master) | Mostra e modifica la configurazione, sincronizza orologio e direttive, raccoglie eventi e allarmi, inoltra i comandi manuali. | A regime non apre le valvole: non è nel percorso critico. Oggi le partenze passano ancora da lui. |
| Bridge ESP32-C3 | Incapsula i frame, trasmette in broadcast, raccoglie ACK e stato, ritrasmette, tiene la mappa dei nodi. | Non interpreta la programmazione e non decide quando irrigare. |
| Nodo (scheda) | Esegue le direttive, tiene l’ora con RTC, applica i limiti, registra gli eventi, riferisce stato e deriva. A regime lo fa in autonomia. | A regime non dipende dal PC per una partenza già programmata; oggi il motore dei cicli è ancora sul PC. |
| Uscite | Triac o relè verso elettrovalvole 24 VAC; uscita dedicata per pompa o valvola master. | La 230 V resta nel trasformatore esterno, mai sulla scheda. |
Perché non un cloud. Un’irrigazione persa non si recupera: la pianta resta senz’acqua e il ciclo non torna. Per questo il sistema funziona in rete locale, non richiede internet e non dipende dalla disponibilità di un fornitore. L’accesso remoto, quando serve, passa da una VPN o da un tunnel: è una scelta dell’installatore, non un requisito di funzionamento.
Simulazione
Guardalo lavorare, senza bagnare niente
La simulazione riproduce il comportamento del centralino: tre schede, la pompa, la sequenza dei canali, il blocco di sistema e la perdita del PC. Il tempo scorre circa 100 volte più veloce del reale; il registro racconta ogni passaggio. Mostra il funzionamento a regime: l’esecuzione autonoma dei programmi sulla scheda è l’ultimo blocco in corso di sviluppo.
Calcolo della prossima partenza…
Inizializzazione…
Il tipo è un codice di catalogo: la maschera lo interpreta, il firmware no.
Le direttive vivono sulla scheda: spegni il PC e la partenza resta in programma. Blocca l’impianto per vedere le uscite chiudersi subito.
Clicca un settore per un comando manuale di 10 minuti. La pompa si apre prima e si chiude dopo: la logica idraulica è la stessa dei cicli automatici.
I comandi manuali vengono rifiutati, ma la partenza successiva parte lo stesso: è la scheda che ha l’orologio e le direttive.
Il centralino la integra a caldo. I canali delle altre restano configurati e in servizio: nessuna migrazione, nessun riavvio.
Le uscite aperte si chiudono subito e ogni nuova partenza viene rifiutata. Resta solo il collaudo della pompa, per 60 secondi e tracciato.
Modularità
La modularità non è un accessorio:
è il modo in cui il sistema è fatto
Un centralino tradizionale si sceglie una volta: il numero di zone è quello, e se l’anno dopo aggiungi l’orto devi cambiare apparecchio o convivere con un impianto sottodimensionato. Qui la scheda è l’unità minima e il sistema è progettato per contenerne più di una fin dall’inizio.
Una scheda, da 4 a 16 canali
La stessa logica di schedulazione gira su una scheda da 4, 8 o 16 canali. Cambia il numero di uscite, non il firmware né il formato delle direttive. Si compra la capacità che serve oggi, non quella che potrebbe servire fra cinque anni.
Un canale per scheda può essere marcato P e comandare la pompa o la valvola master: non è un settore, non si programma e non entra nella sequenza.
Più schede, un solo sistema
Un bridge indirizza fino a 19 nodi. Ogni scheda in più aggiunge canali all’impianto senza cambiare il PC, il database o il resto della configurazione: le partenze delle altre schede continuano a funzionare mentre la nuova viene associata.
La configurazione resta una per scheda, con i suoi giorni, le sue cinque partenze e i suoi programmi. Non esiste un “limite di zona” da ripartire.
Un catalogo, non un firmware per modello
La scheda si annuncia con un codice di quattro byte — TR16,
RE8, … — e chi lo interpreta è il catalogo nel database: canali,
famiglia, pompa, RTC, sensori. Una tipologia nuova si aggiunge dall’interfaccia.
Un codice fuori catalogo non viene acquisito: meglio una scheda in attesa che una maschera che inventa canali che non esistono. Se firmware e catalogo divergono, la divergenza viene annotata negli eventi.
Cresce anche dopo l’installazione
La scheda “estesa” aggiunge sensori di pioggia, portata e umidità senza cambiare il protocollo. L’aggiornamento OTA, il log locale e i comandi manuali sono previsti nello stesso schema, non aggiunti a forza.
Sostituire una scheda guasta significa riassociare quel nodo: le altre mantengono numero, configurazione e storico.
Da 8 a 24 settori in un pomeriggio
Impianto esistente: una scheda TR8 con otto settori e il programma delle
06:00. Serve irrigare anche l’orto appena realizzato. Si aggiunge una TR16:
il nodo si annuncia, l’operatore confronta il MAC con l’etichetta e approva, il PC
assegna il node_id 2. La nuova scheda ha i suoi sedici canali; la prima
resta esattamente com’era.
Totale: 24 canali, due nodi, un bridge e un database. Nessuna migrazione dei dati, nessun nuovo software, nessuna interruzione delle partenze già in servizio.
Quello che non cambia quando aggiungi una scheda
- Il protocollo radio e il formato dei frame restano gli stessi.
- Lo schema del database non si tocca: cambia una riga nel registro dei nodi.
- I programmi, le durate e i giorni delle schede esistenti restano validi.
- La maschera web è la stessa: compare una scheda in più nel selettore.
- Il bridge non va riconfigurato: impara la mappa
node_id ↔ MAC. - Registro, backup e procedura di manutenzione restano quelli.
| Scenario | Schede | Canali |
|---|---|---|
| Giardino di casa | 1 × TR8 | 8 |
| Villa con orto | 1 × TR16 + 1 × TR8 | 24 |
| Serra e frutteto | 2 × TR16 + 1 × RE8 | 40 |
| Parco o azienda agricola | 4 × TR16 | 64 |
Un ciclo
Minuto per minuto, senza due valvole aperte insieme
Alla partenza di un programma la pompa si apre per prima, i canali si aprono in sequenza e si chiudono uno alla volta; la pompa si chiude dopo l’ultimo. La durata del programma è la somma delle durate, non la più lunga.
| Ora | Attività |
|---|---|
| 09:59:57 | Pompa ON — attesa T_pump |
| 10:00:00 – 10:30:00 | Canale 1 aperto (programma 1) |
| 10:30:00 – 10:30:05 | Chiusura, pausa T_gap di 5 s |
| 10:30:05 – 10:50:05 | Canale 2 aperto (programma 1) |
| 10:50:10 – 11:05:10 | Canale 3 aperto (programma 1) |
| 11:05:10 | Pompa OFF dopo T_post |
Il canale 2 è inserito anche nel programma 4 (partenza 18:00): alle 18:00 si apre di nuovo, per la seconda volta nella giornata, con la stessa durata.
-
La pompa apre per prima
La pompa non deve mai lavorare contro valvole chiuse: si apre, si attende che la pressione sia stabile e solo allora parte il primo settore.
-
Un canale alla volta
La sequenza segue l’ordine dei canali. La pausa fra un settore e l’altro evita il colpo d’ariete e dà il tempo alla valvola di chiudersi davvero.
-
Pompa chiusa per ultima
La pompa resta accesa finché l’ultimo canale non è chiuso, poi si spegne. Se la partenza successiva arriva durante un ciclo, si accoda o si salta: mai due settori insieme.
Giorni per canale. Lo stesso giorno può essere attivo per una zona e non per un’altra, senza duplicare i programmi. Un canale senza programmi non ha giorni né durata utili: la maschera spegne entrambi.
Più programmi, un canale. Un canale può appartenere a più programmi: parte a ogni partenza di ciascuno, con la stessa durata. È così che si costruiscono orari diversi senza duplicare la riga.
Partenze coerenti. Un programma usato da almeno un canale deve avere la partenza valorizzata, altrimenti non partirebbe mai: la maschera lo rifiuta al salvataggio.
Le schede
Stesso protocollo, capacità dichiarata
Il firmware non ha un ramo per ogni modello: dichiara un codice e un bitmask di capacità. Il database interpreta il codice, la maschera mostra i canali giusti. Aggiungere un modello è un’operazione di catalogo, non una ricompilazione.
| Codice | Famiglia | Canali | Uscita | Note |
|---|---|---|---|---|
TR4 | Triac | 4 | 24 VAC | Giardini piccoli, fioriere, terrazzi |
TR8 | Triac | 8 | 24 VAC | Impianto domestico completo |
TR16 | Triac | 16 | 24 VAC | Orto, frutteto, più settori |
RE8 | Relè | 8 | 24 VAC | Dove serve isolamento meccanico |
RE16 | Relè | 16 | 24 VAC | Impianti estesi con relè |
La scheda si presenta da sola
Un nodo nuovo trasmette un annuncio di 20 byte in chiaro, provando i canali radio finché non trova il master. Il PC lo registra come richiesta di pairing: è visibile, non è ancora fidato.
L’annuncio contiene codice scheda, revisione hardware, versione firmware, numero di canali, capacità e tre byte del MAC di fabbrica.
L’acquisizione è automatica, l’approvazione no
Il broadcast non è cifrabile e il MAC è modificabile via software: un annuncio identifica un indirizzo, non una scheda. Per questo l’operatore confronta il MAC con l’etichetta fisica e approva.
All’approvazione il nodo riceve node_id e token condiviso con cui firma i
comandi: un comando senza firma valida non tocca nessun relè.
La scheda estesa, senza cambiare impianto
Il bitmask dichiara RTC, pompa, log locale, OTA e sensori. La variante estesa aggiunge pioggia, portata e umidità: il protocollo è lo stesso, cambia ciò che la scheda sa misurare.
Il sensore di pioggia NC va in serie sul comune delle elettrovalvole: è un interblocco hardware, quindi chiude l’acqua anche se il firmware si blocca.
Sicurezza e autonomia
Il caso peggiore non è “non irrigare”.
È irrigare e non accorgersene.
Ogni scelta del progetto parte da qui: le uscite nascono chiuse, i limiti non dipendono dal PC, il blocco è visibile e tracciato, e la perdita del collegamento non apre né lascia aperta una valvola.
Autonomia reale
RTC esterno con batteria e direttive in flash: la scheda è progettata per irrigare
almeno 48 ore senza PC e senza rete. Dopo 48 ore senza sincronizzazione segnala
SYNC_STALE e continua; non chiude l’acqua per un problema di rete.
Blocco di sistema
Un blocco globale, con motivo, data e utente, chiude subito le uscite e rifiuta ogni avvio. Resta possibile solo il collaudo della pompa, per 60 secondi e con traccia negli eventi. Lo sblocco non riapre nulla: si riparte alla partenza successiva.
Limiti sempre attivi
Durata massima per canale e totale giornaliero, un solo canale aperto alla volta, pompa solo con almeno una zona aperta, uscite chiuse al boot. Sono regole della scheda, non della maschera: valgono anche quando il PC non c’è.
Comandi firmati
I comandi manuali portano durata e scadenza, vengono deduplicati per sequenza e firmati con HMAC. Se il collegamento cade, il comando scade e la valvola chiude: il dead-man vale per i comandi, non per i cicli programmati.
Manutenzione senza blackout
Aggiungere o sostituire una scheda non ferma le altre. Il registro dei nodi vive nel database, non nel firmware del bridge: cambiare PC non richiede di riassociare nulla.
Tutto lascia traccia
Aperture, chiusure, partenze saltate, comandi, blocchi e allarmi finiscono nel registro con causa e orario. La scheda tiene un log ad anello e lo consegna al PC al ritorno del collegamento.
Limiti dichiarati. In questa versione i frame ESP-NOW viaggiano in chiaro: la cifratura è una decisione aperta e dipende dall’esposizione fisica dell’impianto. La porta TCP del bridge va usata solo in rete locale o dietro un tunnel. La 230 V resta nel trasformatore esterno: la scheda tratta esclusivamente 24 VAC.
Sotto il cofano
Numeri misurati, non promesse
Il trasporto è la parte che si può verificare senza aspettare l’installazione. Ecco cosa hanno dato i collaudi sul prototipo, con il firmware flashato su hardware reale.
| Collaudo | Esito |
|---|---|
| Autotest del firmware sul dispositivo | 6 / 6 superati |
| Frame da 0 a 240 byte, 20 per dimensione | 120 / 120 risposte, nessun payload alterato |
| Ritardo medio a 240 byte | 7,1 ms (p95 12,2 ms) |
| Errori CRC sul bridge | 0 |
| Comando a nodo mappato | ACK ricevuto |
| Comando a nodo assente | tx_failed + errore, come previsto |
La prova su hardware ha scoperto un difetto che nessun test sul PC avrebbe visto: il firmware ometteva i due byte di sincronismo del frame. Corretto, e da allora il collaudo del collegamento è parte della routine.
Perché conta. Una configurazione da 16 canali — cinque partenze, giorni, durata e programmi per canale, fuso orario — sta in un solo frame. Non serve una connessione stabile né un upload a blocchi per cambiare la programmazione: si scrive, si verifica il CRC e la scheda risponde “già allineato” se non c’è niente da fare.
Stato del progetto
Che cosa è pronto, che cosa arriva
Il prototipo non è un rendering: bridge, pairing, comandi manuali e trasporto sono implementati e provati. La parte che resta è il motore dei programmi direttamente sulla scheda, oggi ancora sul PC.
-
Bridge seriale e TCP
Frame con CRC, ACK, deduplica, mappa nodi, modalità USB e rete locale. Collaudato con 120 frame da 0 a 240 byte.
-
Annuncio, pairing e comandi manuali
Una scheda nuova si annuncia, viene approvata, riceve node_id e token. I comandi manuali sono firmati e riportano lo stato reale delle uscite.
-
Configurazione e registro
Schede, canali, giorni, cinque partenze, più programmi per canale, canale pompa, blocco di sistema e catalogo delle tipologie.
-
Il motore dei programmi sulla scheda
Direttive in flash con versione e CRC, sincronizzazione dell’orologio, esecuzione autonoma dei cicli. Finché non è pronto, le partenze le fa partire il PC.
-
OTA, cifratura, sensori
Aggiornamento a blocchi con rollback, cifratura ESP-NOW quando l’installazione lo richiede, sensori della scheda estesa.
Domande frequenti
Le obiezioni che sentiamo più spesso
Quanti settori può gestire davvero?
Da 4 a 16 canali per scheda e fino a 19 schede sullo stesso bridge: il limite pratico non è il numero di zone, è la portata radio e l’organizzazione dell’impianto. Si parte con una scheda e se ne aggiungono altre senza cambiare il resto.
Serve internet o un abbonamento?
No. Il PC e il bridge stanno in rete locale, le schede parlano direttamente via radio. Non c’è un servizio cloud da rinnovare e l’irrigazione non dipende dalla copertura cellulare. L’accesso da fuori, se serve, si aggiunge con una VPN.
Cosa succede se il PC si spegne o si guasta?
Oggi le partenze le fa partire il PC: se è spento, la partenza viene saltata e registrata come persa. Il progetto porta direttive e orologio sulla scheda, con batteria tampone, così che le partenze continuino anche a PC spento: è il prossimo blocco di lavoro, descritto in Che cosa è pronto, che cosa arriva. Sostituire il PC non richiede di riassociare le schede: configurazione e pairing restano nel database e sulla scheda.
Posso aggiungere una scheda dopo anni?
Sì, ed è il punto del progetto. La scheda si annuncia, si approva confrontando il MAC
con l’etichetta, riceve un node_id e compare nella maschera. Le altre
schede non vanno riconfigurate e le partenze in corso non si interrompono.
Che valvole posso collegare?
Elettrovalvole 24 VAC, pilotate da triac o relè secondo la scheda. La 230 V non entra sulla scheda: resta nel trasformatore esterno in contenitore chiuso. Il cablaggio in bassa tensione è alla portata di un installatore; la parte in rete elettrica no.
È sicuro lasciare l’impianto senza sorveglianza?
Il progetto mette insieme più livelli: uscite chiuse al boot, limiti di durata sempre attivi, pompa solo con una zona aperta, blocco globale tracciato, sensore di pioggia NC in serie sul comune come interblocco hardware. Restano limiti dichiarati — in particolare la cifratura radio — che vanno valutati in base a dove è installato l’impianto.
Si integra con Home Assistant o un supervisore?
L’architettura espone lo stato e accetta comandi da un’interfaccia locale; l’integrazione con un supervisore è un passaggio successivo, non un requisito per irrigare. La priorità resta che i cicli funzionino senza dipendere da nessun servizio esterno.
Parliamone
Hai un impianto che deve crescere,
o uno che vorresti rendere autonomo?
Raccontaci quanti settori hai oggi, quanti ne serviranno e com’è fatto il sito. Possiamo partire da una scheda e dimensionare il resto senza vincolare l’impianto a un numero chiuso di zone.
Realizzazione NetSpeak · progettazione hardware, firmware e software.
