← Torna agli articoli Domotica & IoT

Automazione Acquario Marino: Centralina Custom con ESP32, Home Assistant e Node-RED

30 Mag 2026 Automazione Acquario Marino con Home Assistant e Node-RED

Gestire un acquario marino di barriera (reef) è una delle sfide più entusiasmanti e complesse dell'acquariologia. I coralli duri (SPS e LPS) e i pesci tropicali richiedono parametri chimico-fisici incredibilmente stabili e precisi. Anche una minima fluttuazione di salinità, temperatura o pH può causar in pochi giorni il collasso biologico dell'intero ecosistema. In questo scenario, l'automazione intelligente non è un semplice sfizio tecnologico, ma un vero e proprio salvavita.

Spesso i sistemi commerciali integrati promettono letture perfette, ma si scontrano con problemi reali come interferenze elettriche, correnti vaganti, e sensori multi-sonda che per dare l'apparenza di un valore stabile ricorrono ad algoritmi software di smoothing aggressivo, nascondendo le reali derive del sistema. In questo articolo vedremo come progettare e realizzare una centralina custom WiFi basata su ESP32 totalmente isolata, con vasche di lettura separate stampate in 3D in PETG e temporizzate in Node-RED per garantire una stabilità assoluta, integrando il tutto con Home Assistant e i relè Shelly per governare l'intero acquario in totale sicurezza.

🌟 I Vantaggi dell'Automazione Domotica applicata al Reef

L'integrazione tra hardware custom ed ecosistema domotico (Home Assistant + Node-RED + Shelly) offre vantaggi incomparabili rispetto alle centraline proprietarie tradizionali:

  • Stabilità Biologica Rigida: Monitoraggio continuo in tempo reale con grafici storici dettagliati per intercettare le minime derive chimiche (es. consumo di tamponi carbonatici che altera il pH).
  • Safety Loops Infallibili: Controllo termostatico incrociato con spegnimento preventivo del riscaldatore in caso di blocco o del refrigeratore in caso di freddo eccessivo, e blocco dello schiumatoio (skimmer) se la pompa di risalita è spenta per evitare allagamenti.
  • Prevenzione Corrosione sotto il Mobile: Monitoraggio continuo di temperatura e umidità sotto il mobile dell'acquario per prevenire la formazione di condensa e ruggine sulle cerniere e sulla strumentazione elettrica tramite areazione forzata intelligente.
  • Notifiche Push Istantanee: Allarmi sonori e messaggi Telegram immediati in caso di perdite d'acqua rilevate sul pavimento (sensore anti-allagamento), anomalie nei sensori o interruzione di corrente (Blackout).

📐 Architettura Hardware: Centralina Custom a Sonde Isolate

Il cuore della nostra centralina è un microcontrollore ESP32 con connettività WiFi. La centralina gestisce cinque sensori critici:

  1. Temperatura dell'acqua (sensore digitale impermeabile DS18B20).
  2. pH (sonda a elettrodo in vetro).
  3. TDS / Conducibilità (solidi totali disciolti, usata per determinare la salinità).
  4. ORP (Potenziale di Ossidoriduzione) (sonda per misurare il potere ossidante dell'acqua).
  5. Densità / Salinità specifica (calcolata tramite compensazione termica).
Vasche di isolamento sensori sump acquario stampate in PETG

🛡️ Il Problema delle Correnti Vaganti e dell'Interferenza Elettrica

Il vero nemico delle sonde pH, ORP e conducibilità in acquario sono le correnti vaganti. Pompe di movimento, riscaldatori e luci LED rilasciano in acqua micro-tensioni elettromagnetiche invisibili. Se posizioni le sonde direttamente in sump, queste correnti alterano i delicati segnali in millivolt delle sonde elettrochimiche, rendendo le letture del pH e dell'ORP instabili, fluttuanti e del tutto errate.

Inoltre, le sonde interferiscono tra loro: la sonda di conducibilità invia impulsi elettrici nell'acqua per misurarne la resistenza; questi impulsi vengono inevitabilmente intercettati dalla sonda del pH e dell'ORP poste nelle vicinanze, distorcendone la misura.

Come abbiamo risolto questo problema a livello hardware e strutturale:

  • Isolamento Galvanico dei Controller: Ogni scheda di controllo delle sonde (es. moduli Atlas Scientific EZO o simili) è alimentata tramite un convertitore DC-DC isolato (come il modulo B0505S-1W) e un isolatore di segnale I2C (es. ISO154). Questo interrompe fisicamente il loop di massa elettrico tra l'ESP32, l'alimentatore generale e l'acqua dell'acquario.
  • Condensatori di Filtro: Previsti condensatori elettrolitici da 10µF in parallelo a condensatori ceramici da 100nF su ogni rail di alimentazione dei sensori per abbattere i disturbi ad alta frequenza introdotti dal WiFi.
  • Multiplexer I2C Analogico in Cascata (Cascading): Per collegare e indirizzare le diverse schede sensore all'ESP32 senza conflitti di indirizzo, viene utilizzato un multiplexer I2C (come il TCA9548A). La bellezza di questo approccio è che **è possibile collegare più multiplexer I2C in cascata** modificando l'indirizzo hardware tramite i pin A0, A1 e A2 del modulo. In questo modo si possono gestire fino a 8 multiplexer TCA9548A contemporaneamente sullo stesso bus I2C, consentendo di leggere ed espandere fino a 64 sonde totali gestite da un singolo controller!
  • Vaschette di Lettura Separate Stampate in 3D in PETG: Le sonde non sono immerse direttamente nella sump e non sono in acrilico. Abbiamo progettato e **stampato in 3D in PETG** (un filamento chimicamente inerte, atossico e altamente resistente all'acqua salata) un blocco di **4 vaschette separate**. Questo blocco è montato ordinatamente all'esterno, agganciato all'interno del mobile ma **fuori dall'acqua della sump**. Ciascuna sonda risiede in una propria vaschetta d'acqua indipendente per eliminare qualsiasi crosstalk elettrico tra i sensori.

🔌 Schema Elettrico e Collegamenti della Centralina

Per realizzare una centralina sicura ed esente da interferenze, lo schema elettrico deve essere progettato con cura. Di seguito è riportato lo schema elettrico dettagliato dei collegamenti tra l'ESP32, il multiplexer I2C, i moduli di isolamento galvanico e le schede sensore:

Schema elettrico centralina acquario con ESP32 e isolamento galvanico

I collegamenti fondamentali e la logica di cablaggio si strutturano nei seguenti blocchi:

  • Alimentazione Principale e Stabilizzazione: L'ESP32 viene alimentato tramite un alimentatore USB da 5V stabilizzato. La linea a 5V primaria e il GND comune alimentano il lato primario dei convertitori DC-DC isolati B0505S-1W e i pin di alimentazione del multiplexer TCA9548A.
  • Isolamento Galvanico Individuale: Ogni scheda sensore (pH, ORP, Conducibilità) possiede un sistema di isolamento dedicato. Il modulo B0505S-1W genera una tensione di 5V secondaria completamente isolata da quella del sistema, mentre l'isolatore digitale ISO154 si occupa di trasferire i segnali I2C (SDA e SCL) tra il multiplexer e la sonda senza alcun contatto elettrico diretto.
  • Bus I2C con TCA9548A: L'ESP32 comunica con il multiplexer tramite i pin GPIO 21 (SDA) e GPIO 22 (SCL). Le uscite del multiplexer (SD0/SC0, SD1/SC1, ecc.) sono indirizzate individualmente a ciascun isolatore ISO154, consentendo a Node-RED di interrogare sequenzialmente ciascuna sonda. I pin di indirizzamento hardware (A0, A1, A2) sono collegati a GND per impostare l'indirizzo standard 0x70, lasciando spazio all'inserimento di altri multiplexer in cascata.
  • Filtro Rumore e RF: Su ogni rail di alimentazione delle schede sensore, in parallelo all'uscita del B0505S, sono installati un condensatore elettrolitico da 10µF e un condensatore ceramico da 100nF, essenziali per bloccare il rumore generato dall'antenna WiFi dell'ESP32.
  • Sensore di Temperatura DS18B20: Essendo un sensore digitale impermeabile pre-isolato con comunicazione digitale One-Wire, si collega direttamente a un GPIO dell'ESP32 (GPIO 4) con una resistenza di pull-up da 4.7kΩ tra la linea dati e i 3.3V della centralina. Non necessita di isolamento galvanico in quanto non condivide circuiti analogici sensibili a crosstalk.

⚡ ESP32 come Bridge Trasparente (Zero-Firmware Logic)

Paradigma di Controllo Raw Pass-Through: Dalla centralina ESP32 a Node-RED arrivano direttamente i segnali grezzi delle sonde trascodificati dai moduli I2C (es. letture dirette in millivolt dall'ADC ADS1115 o dati digitali grezzi dell'EC). La centralina **non fa alcun calcolo, taratura o decodifica**. Tutte le conversioni e l'elaborazione dei dati avvengono al 100% all'interno di Node-RED. Questo permette di calibrare le sonde e adeguare gli algoritmi di calcolo in tempo reale in Node-RED senza dover mai toccare il firmware della centralina o compilare codice aggiuntivo che appesantirebbe l'ESP32.

🔄 Il Sistema di Flusso Temporizzato (Sequential Pumping Loop)

Per assicurare che l'acqua nelle vaschette isolate sia sempre rappresentativa dei valori reali dell'acquario, è stato implementato un loop di ricircolo intelligente coordinato da Node-RED:

  • Una piccola pompa di ricircolo a 12V preleva l'acqua dalla sump e, tramite tubi in silicone dedicati, alimenta contemporaneamente le singole vaschette dei sensori collocate all'esterno.
  • Ogni minuto, la pompa viene attivata per soli 20 secondi per ricambiare totalmente l'acqua all'interno delle vaschette.
  • Dopo 20 secondi, la pompa viene spenta. L'acqua all'interno delle vaschette si ferma completamente e si isola elettricamente ed idraulicamente dalla sump.
  • Node-RED attende un delay di 5 secondi dopo lo spegnimento della pompa (per far stabilizzare eventuali micro-bolle o vibrazioni) e legge i dati chimici stabili in condizioni statiche (pompa spenta).
  • Questo approccio garantisce una precisione millimetrica. Al contrario, le multi-sonde commerciali in commercio adottano pesanti algoritmi di smoothing software che mascherano le letture instabili causate dal flusso d'acqua continuo e dalle correnti vaganti, fornendo un valore solo apparentemente stabile ma in realtà distorto e in ritardo.

⚡ Configurazione e Logica Node-RED

Node-RED funge da orchestratore centrale. Gestisce l'accensione temporizzata della pompa dei sensori, interroga la centralina ESP32 tramite HTTP/JSON, applica formule matematiche di compensazione e aggiorna i sensori in Home Assistant.

Dashboard Node-RED automazione acquario marino

🔍 Risoluzione Dinamica dell'IP tramite ARP/MAC

Nelle reti domestiche, gli indirizzi IP dei dispositivi IoT in DHCP possono variare. Per evitare di hardcodare l'IP dell'ESP32, la logica Node-RED implementa un flusso geniale:

  1. Un nodo periodico esegue la lettura della tabella ARP del server locale (Leggi Tabella ARP).
  2. Un nodo function cerca il MAC address univoco della centralina ESP32 (Trova IP da MAC).
  3. Una volta estratto l'IP aggiornato, Node-RED compone dinamicamente l'URL ed esegue la http request verso l'endpoint JSON dell'ESP32.

🧪 Funzioni di Calcolo Reali in Node-RED

Ecco gli script JavaScript esatti che gestiscono l'estrazione, la convalida e l'elaborazione chimica dei segnali grezzi all'interno dei nodi Function di Node-RED.

1. Estrazione e Validazione della Temperatura dell'Acqua

Questa funzione estrae il valore grezzo della temperatura dal payload JSON dell'ESP32, applica un offset di calibrazione fisso, verifica che il valore sia in un intervallo biologico plausibile ed emette lo stato sul nodo e l'output per Home Assistant.

// Function: estrai e valida temperatura per HA (Node-RED)
// Uscite: [OK -> ha-entity, ERROR -> debug/log]

const KEY = 'temperatura acqua'; // chiave nel payload sorgente
const MIN = 10;                  // °C min plausibile
const MAX = 40;                  // °C max plausibile
const DELTA = -0.1;              // correzione fissa in °C

function setStatus(fill, shape, text) {
  node.status({ fill, shape, text });
}
function err(text, extra = {}) {
  setStatus("red", "dot", text);
  node.error(text, { ...extra, original: msg });
  return [null, { payload: { error: text, ...extra }, original: msg }];
}

// --- Controlli base
if (!msg || typeof msg.payload === 'undefined') {
  return err('payload mancante');
}
if (typeof msg.payload !== 'object' || msg.payload === null) {
  return err('payload non-JSON: atteso oggetto');
}
if (!(KEY in msg.payload)) {
  return err(`chiave "${KEY}" assente`, { key: KEY, keys: Object.keys(msg.payload) });
}

// --- Parse robusto (accetta "24,3", "24.3 °C", ecc.)
const raw = msg.payload[KEY];
let s = String(raw).trim().replace(',', '.');
const match = s.match(/-?\d+(\.\d+)?/);   // estrae il primo numero
const parsed = match ? Number(match[0]) : NaN;

if (!Number.isFinite(parsed)) {
  return err(`valore non numerico`, { key: KEY, raw });
}

// --- Applica delta fisso
const value = parsed + DELTA;

// --- Range check (warning ma passa lo stesso)
if (value < MIN || value > MAX) {
  setStatus("yellow", "ring", `fuori range: ${value.toFixed(2)}°C`);
} else {
  setStatus("green", "dot", `${value.toFixed(2)} °C`);
}

// --- Output modificato: preserva l'oggetto originale e aggiunge msg.temp
msg.temp = Math.round(value * 100) / 100;

return [msg, null];

2. Calcolo del pH Compensato in Temperatura con Interpolazione

Questa funzione prende la lettura grezza in millivolt dall'ADC ADS1115 dell'ESP32 (`ads1_ch0`), interroga la curva dei punti di calibrazione standard (pH 4, 7, 8.2, 9.18) e compensa la lettura reale in base alla temperatura attuale dell'acqua calcolata al passaggio precedente (`msg.temp`) sfruttando le proporzioni fisiche assoluta in Kelvin (Equazione di Nernst).

// Temperatura di calibrazione standard (25°C) e temperatura attuale
const TEMP_CAL = 25.0;
let tempAttuale = msg.temp; // <--- Inserita la tua temperatura attuale

// Punti di calibrazione a 25°C (mV → pH)
const curve = [
    { x: 2260, y: 4.00 },
    { x: 2011, y: 7.00 },
    { x: 1815.2, y: 8.20 },
    { x: 1734, y: 9.18 }
];

// Funzione di interpolazione/estrapolazione con compensazione Nernst
function interpolateWithTemp(x, points, tCal, tAct) {
    points.sort((a, b) => a.x - b.x);

    // Trova i punti di riferimento per l'intervallo
    let p1, p2;
    if (x < points[0].x) {
        p1 = points[0];
        p2 = points[1];
    } else if (x > points[points.length - 1].x) {
        p1 = points[points.length - 2];
        p2 = points[points.length - 1];
    } else {
        for (let i = 0; i < points.length - 1; i++) {
            if (x >= points[i].x && x <= points[i + 1].x) {
                p1 = points[i];
                p2 = points[i + 1];
                break;
            }
        }
    }

    // Calcolo della pendenza teorica a tCal (mV per unità di pH)
    let slopeCal = (p2.x - p1.x) / (p2.y - p1.y);
    
    // Fattore di correzione basato sulla temperatura assoluta (Kelvin)
    let tempFactor = (tAct + 273.15) / (tCal + 273.15);
    
    // Nuova pendenza compensata
    let slopeAct = slopeCal * tempFactor;

    // Calcolo del pH compensato partendo dal punto p1
    return p1.y + (x - p1.x) / slopeAct;
}

// Legge il valore da msg.payload
let mv = msg.payload.ads1_ch0;

if (typeof mv !== "number") {
    node.error("Payload non numerico", msg);
    node.status({ fill: "red", shape: "ring", text: "non numerico" });
    return null;
}

// Calcola pH con compensazione termica
let ph = interpolateWithTemp(mv, curve, TEMP_CAL, tempAttuale);
msg.payload = parseFloat(ph.toFixed(2));

// Mostra stato nel nodo
node.status({
    fill: "green",
    shape: "dot",
    text: `mV: ${mv.toFixed(1)} (${tempAttuale}°C) → pH: ${ph.toFixed(2)}`
});

return msg;

🔌 Integrazione Shelly: Sicurezza Elettrica e Attuatori

Per pilotare in sicurezza i carichi a 230V dell'acquario (pompe di movimento, schiumatoio, riscaldatore, luci) utilizziamo i relè professionali Shelly Pro 4PM e Shelly Plus 1PM montati su una barra DIN dedicata all'interno del quadro elettrico della vasca.

Quadro elettrico Shelly automazione acquario marino

🛡️ Logiche di Controllo Attive e Loop di Sicurezza

Grazie all'integrazione tra Node-RED e Shelly, abbiamo strutturato delle regole di protezione insuperabili, impossibili da replicare con semplici prese temporizzate:

1. Termoregolazione Coordinata Riscaldatore & Refrigeratore

La temperatura calcolata viene inviata a una logica termostatica a tre stati in Node-RED per comandare in modo contrapposto il Riscaldatore (Heater) e il Refrigeratore (Chiller/Fans), prevenendo l'attivazione simultanea ed evitando stress biologico:

  • Sotto i 24.5 °C: Si attiva il relè Shelly del Riscaldatore per riportare la temperatura a regime, mantenendo spento il refrigeratore.
  • Sopra i 25.5 °C: Si spegne immediatamente il riscaldatore e si attiva il relè Shelly del Refrigeratore.
  • Intervallo Ottimale (24.6°C - 25.4°C): Entrambi i sistemi rimangono spenti per il massimo risparmio energetico.
  • Allarme e Sicurezza Fisico-Software: Nel caso in cui la temperatura superi i 26.5°C o scenda sotto i 23.5°C, Node-RED spegne cautelativamente tutte le prese e invia un allarme critico, bloccando il sistema in caso di relè Shelly fisicamente incollato/danneggiato.

2. Clima del Mobile & Prevenzione Corrosione (Ruggine)

Il vano sotto il mobile che ospita la sump è un ambiente confinato sottoposto ad evaporazione continua di acqua salmastra. Se non controllato, l'umidità relativa raggiunge rapidamente il 90-100%, creando le condizioni ideali per far arrugginire rapidamente le cerniere del mobile, corrodere la centralina e danneggiare le apparecchiature elettroniche.

Per risolvere questo problema, abbiamo posizionato un **sensore di temperatura e umidità ambientale sotto il mobile** ed inserito in Node-RED un calcolo della probabilità di corrosione (valutazione della persistenza del punto di rugiada combinata all'umidità relativa):

  • Il valore calcolato genera un sensore in Home Assistant chiamato Pericolo corrosione espresso in percentuale.
  • Se l'umidità sale oltre il 65% o il pericolo corrosione supera il 25%, Node-RED attiva istantaneamente il relè Shelly associato alla **Ventilazione Mobile** (Cabinet Ventilation).
  • Questo attiva delle ventole magnetiche silenziose che estraggono l'aria umida spingendola fuori dal mobile, rimpiazzandola con aria fresca e secca della stanza, mantenendo il vano interno perfettamente asciutto e proteggendo l'investimento strutturale dell'acquario.

3. Protezione Anti-Traboccamento dello Schiumatoio (Skimmer Safe Delay)

Lo schiumatoio (skimmer) lavora sul livello dell'acqua della sump. Se spegniamo la pompa di risalita (ad esempio per nutrire i pesci), il livello dell'acqua nella sump sale rapidamente di circa 10-15 cm. Se lo schiumatoio rimanesse acceso o venisse riacceso immediatamente con la sump piena, traboccherebbe istantaneamente riversando in vasca tutte le sostanze tossiche accumulate.

  • Regola di sicurezza: Se la pompa di risalita viene spenta, Node-RED spegne immediatamente lo schiumatoio.
  • Delay di riattivazione: Quando la pompa di risalita si riaccende, Node-RED attende un **delay di 5 minuti** (tramite un nodo delay) per consentire al livello della sump di scendere e stabilizzarsi prima di avviare lo schiumatoio.

📊 Monitoraggio Energetico e Analisi di Consumo Anomalo

Uno degli aspetti più avanzati e potenti derivanti dall'uso di dispositivi **Shelly con monitoraggio integrato di corrente (volt e ampere)** è la possibilità di profilare elettricamente ogni singolo carico. Node-RED non si limita ad accendere e spegnere le prese, ma analizza continuamente i Watt attivi assorbiti, identificando comportamenti anomali dell'hardware prima che si verifichi un guasto irreversibile o un blocco biologico.

Monitoraggio energetico e anomalie acquario in Node-RED

⚠️ Rilevamento delle Anomalie di Funzionamento

  • Pompa di Risalita o Movimento Intasata (Girante Bloccata): Se gusci di lumache, alghe coralline o detriti bloccano il rotore di una pompa, il motore a induzione sforza enormemente e si surriscalda. Questo comportamento si traduce in un **brusco aumento dell'assorbimento in Ampere e Watt** (spesso fino al 40-50% in più rispetto al consumo nominale). Node-RED confronta la potenza assorbita con la baseline impostata per quel canale; se rileva un superamento persistente della soglia massima per più di 15 secondi, toglie immediatamente alimentazione alla pompa per evitare che si bruci ed invia una notifica push critica: [ALLERTA] Pompa di Risalita bloccata per sovracorrente. Alimentazione interrotta!.
  • Pompa che gira a secco (Dry Running): Se la pompa di risalita inizia a aspirare aria (ad esempio a causa di un blocco nel sistema di rabbocco automatico dell'acqua evaporata), la girante incontra pochissima resistenza. Di conseguenza, il consumo energetico crolla istantaneamente a valori minimi (es. da 35W a meno di 3W). Node-RED rileva questo crollo anomalo quando il relè è comandato su ON, disattiva immediatamente la pompa per scongiurare il surriscaldamento a secco e notifica l'utente.
  • Guasto del Riscaldatore (Resistenza Bruciata): I riscaldatori sono elementi critici soggetti ad usura termica estrema. Se Node-RED comanda l'accensione del riscaldatore tramite Shelly, ma il consumo del canale rimane a **0 Watt**, significa che la resistenza si è interrotta o bruciata. Il sistema genera istantaneamente una segnalazione di guasto hardware sul cellulare per consentire la sostituzione del riscaldatore prima che la vasca si raffreddi.
  • Incollaggio Contatti Relè (Doppia Protezione): Se Node-RED comanda lo spegnimento del riscaldatore perché la temperatura target è stata raggiunta, ma il monitoraggio Shelly rileva che il consumo del canale è ancora attivo (es. 200W costanti), significa che i contatti del relè sono fisicamente saldati o incollati. Il sistema taglia immediatamente l'alimentazione a monte dell'intero quadro elettrico ed emette un allarme acustico prioritario prima che la vasca venga bollita.

💰 Il Risparmio Energetico Reale Ottenuto

Mantenere un acquario marino tropicale in condizioni perfette richiede riscaldatori ad alto wattaggio, refrigeratori a compressore, schiumatoi potenti e luci LED intensive. Senza un controllo centralizzato e intelligente, i costi in bolletta possono salire in modo incontrollato. Grazie a questo ecosistema domotico integrato, abbiamo registrato un **risparmio energetico annuo stimato tra il 15% e il 25%**.

I fattori chiave che determinano questo risparmio includono:

  1. Zero Concorrenza Termica (No Overlapping): Nei sistemi tradizionali con termostati e riscaldatori indipendenti non comunicanti, a causa di tolleranze fisiche differenti, può succedere che il riscaldatore rimanga acceso mentre il refrigeratore è in funzione, sprecando centinaia di watt in contrapposizione diretta. La nostra logica centralizzata a tre stati di Node-RED garantisce la **mutua esclusione assoluta** di riscaldatore e refrigeratore, separandoli con una precisa zona morta di isteresi.
  2. Gestione Intelligente della Ventilazione e dell'Evaporazione: Il raffreddamento dell'acqua avviene in gran parte per evaporazione forzata indotta da ventole. In inverno, la ventilazione del mobile sotto la sump viene spenta o minimizzata quando il riscaldatore è in funzione. Questo evita di indurre evaporazione superflua (che sottrarrebbe calore latente costringendo il riscaldatore a consumare energia elettrica aggiuntiva).
  3. Pause Pompe in Modalità Alimentazione e Manutenzione: Attraverso l'attivazione della modalità cibo o manutenzione da Home Assistant, tutte le pompe di movimento ad alto assorbimento e lo schiumatoio vengono spenti temporaneamente per 10-15 minuti. Questo non solo agevola i pesci nella nutrizione, ma riduce i consumi inutili ed evita lo spreco di energia elettrica in momenti in cui la filtrazione meccanica è superflua.
  4. Dissipazione Passiva del Calore sotto il Mobile: I trasformatori delle plafoniere e le pompe generano molto calore all'interno del mobile. Il sistema di ventilazione intelligente controllato in base all'umidità e temperatura estrae passivamente questo calore accumulato. In estate, questo abbassa notevolmente la temperatura della sump per via aerea, riducendo drasticamente i tempi di accensione del refrigeratore a compressore, che assorbe oltre 300W e rappresenta il carico più costoso di tutto il sistema.

🎯 Conclusioni e Sviluppi Futuri

Progettare una centralina acquario custom non è solo una scelta di risparmio economico, ma rappresenta l'unico modo per ottenere **rilevamenti chimico-fisici di livello scientifico**. Grazie al posizionamento delle sonde in vaschette isolate stampate in 3D in PETG collocate all'esterno e all'attivazione temporizzata del flusso tramite Node-RED, abbiamo eliminato alla radice il problema delle correnti vaganti e del crosstalk tra i sensori, delegando l'intera logica a Node-RED per un aggiornamento firmware zero-touch.

L'integrazione di questi dati all'interno di Home Assistant e il controllo dei carichi tramite Shelly chiudono il cerchio, regalandoci una serenità senza precedenti: la certezza che, anche a chilometri di distanza, il nostro angolo di barriera corallina stia prosperando in condizioni di perfetta stabilità e sicurezza.