{"id":118138,"date":"2026-06-19T09:39:10","date_gmt":"2026-06-19T07:39:10","guid":{"rendered":"https:\/\/www.joy-reef.com\/?p=118138"},"modified":"2026-06-19T09:39:10","modified_gmt":"2026-06-19T07:39:10","slug":"diy-ato-joyreef-controller-hardware","status":"publish","type":"post","link":"https:\/\/www.joy-reef.com\/en\/diy-ato-joyreef-controller-hardware\/","title":{"rendered":"DIY ATO with JoyReef: build the controller for automatic top-off"},"content":{"rendered":"<h2 class=\"wp-block-heading\">Perch\u00e9 un ATO \u00e8 fondamentale per il reef<\/h2>\n<p class=\"wp-block-paragraph\">Evaporation in a marine aquarium is constant. Lampade potenti, circolazione superficiale e temperatura dell&#8217;acqua alta\u52a0\u901fano il processo. Senza un sistema di rabbocco automatico (ATO, Automatic Top-Off), il livello dell&#8217;acqua oscilla ogni giorno, alterando salinit\u00e0 e stabilit\u00e0 dei parametri.<\/p>\n<p class=\"wp-block-paragraph\">With JoyReef you can build a controller that monitors your tank level 24\/7 e, quando serve, accende una pompa di rabbocco collegata a una presa smart \u2014 tutto automatico, via WiFi, con notifiche sul telefono.<\/p>\n<p class=\"wp-block-paragraph\">In this article, we cover the hardware needed to build it. La configurazione sul portale \u00e8 coperta in un articolo separato.<\/p>\n<h2 class=\"wp-block-heading\">Cos&#8217;\u00e8 il controller JoyReef<\/h2>\n<p class=\"wp-block-paragraph\">Il cuore del sistema \u00e8 una piccola centralina basata su ESP8266 (NodeMCU v3) che:<\/p>\n<ul class=\"wp-block-list\">\n<li>Legge la temperatura della vasca con un sensore DS18B20<\/li>\n<li>Monitora fino a 4 sensori di livello a galleggiante<\/li>\n<li>Mostra lo stato su un piccolo display OLED<\/li>\n<li>Invia i dati al portale JoyReef via WiFi<\/li>\n<li>Comanda prese smart Tasmota per accendere\/spegnere dispositivi<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">Tutti i componenti si collegano a una basetta screw shield \u2014 niente saldature, ogni pin del NodeMCU diventa un morsetto a vite numerato.<\/p>\n<h2 class=\"wp-block-heading\">Componenti necessari \u2014 Setup base (\u2248 30 \u20ac)<\/h2>\n<p class=\"wp-block-paragraph\">Questo \u00e8 tutto quello che serve per la versione minima: temperatura della vasca, fino a 4 sensori di livello (per il rabbocco automatico) e display OLED.<\/p>\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"998\" height=\"1024\" src=\"https:\/\/www.joy-reef.com\/wp-content\/uploads\/2026\/06\/joyreef-ato-kit-componenti.jpg\" alt=\"ATO controller component kit JoyReef\" class=\"wp-image-118140\" srcset=\"https:\/\/www.joy-reef.com\/wp-content\/uploads\/2026\/06\/joyreef-ato-kit-componenti.jpg 998w, https:\/\/www.joy-reef.com\/wp-content\/uploads\/2026\/06\/joyreef-ato-kit-componenti-292x300.jpg 292w, https:\/\/www.joy-reef.com\/wp-content\/uploads\/2026\/06\/joyreef-ato-kit-componenti-768x788.jpg 768w, https:\/\/www.joy-reef.com\/wp-content\/uploads\/2026\/06\/joyreef-ato-kit-componenti-600x616.jpg 600w\" sizes=\"auto, (max-width: 998px) 100vw, 998px\" \/><figcaption class=\"wp-element-caption\">All the components needed to build the JoyReef controller: float switches, OLED display, DS18B20 temperature probe, ESP8266 shield, and wiring.<\/figcaption><\/figure>\n<table class=\"wp-block-table\">\n<thead>\n<tr>\n<th>#<\/th>\n<th>Componente<\/th>\n<th>Q.t\u00e0<\/th>\n<th>Prezzo<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1<\/td>\n<td>NodeMCU v3 \u2014 scheda ESP8266 con WiFi integrato<\/td>\n<td>1<\/td>\n<td>4-7 \u20ac<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>Sonda temperatura DS18B20 con cappuccio in plastica \u26a0\ufe0f<\/td>\n<td>1<\/td>\n<td>2-4 \u20ac<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>Resistenza 4,7 k\u03a9 (per la sonda DS18B20)<\/td>\n<td>1<\/td>\n<td>0,05 \u20ac<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>Galleggianti di livello (float switch) \u2014 interruttori che si attivano quando l&#8217;acqua li tocca<\/td>\n<td>4<\/td>\n<td>1,5-3 \u20ac cad.<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>Display OLED 128\u00d732 \u2014 mostra temperatura e indirizzo IP del controller<\/td>\n<td>1<\/td>\n<td>2-4 \u20ac<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>Basetta screw shield per NodeMCU \u2014 ogni pin diventa un morsetto a vite<\/td>\n<td>1<\/td>\n<td>4-8 \u20ac<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>Cavetti jumper M\/F + M\/M \u2014 per collegare display e galleggianti<\/td>\n<td>1 set<\/td>\n<td>3-5 \u20ac<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>Cavo micro-USB (dati) + alimentatore USB 5V 2A<\/td>\n<td>1<\/td>\n<td>\u2014<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"wp-block-paragraph\"><strong>Totale setup base: \u2248 28-35 \u20ac<\/strong> (se hai gi\u00e0 caricatore e cavo USB in casa).<\/p>\n<h3 class=\"wp-block-heading\">\u26a0\ufe0f Attenzione alla sonda DS18B20<\/h3>\n<p class=\"wp-block-paragraph\">La sonda temperatura deve avere il <strong>cappuccio in PVC\/plastica bianca<\/strong>, non in acciaio inox. In saltwater l&#8217;acciaio si corrode in poche settimane e rilascia ioni metallici tossici per corals and fish.<\/p>\n<h2 class=\"wp-block-heading\">The smart plug \u2014 the heart of your ATO<\/h2>\n<p class=\"wp-block-paragraph\">For the ATO to work, a smart plug is <strong>required<\/strong>: it turns the top-off pump on and off when the water level sensor triggers. Without it, the controller can read sensors and send notifications, but it cannot take action.<\/p>\n<p class=\"wp-block-paragraph\"><strong>Recommended model: Nous A1T<\/strong> (12-15 \u20ac, 5 channels) \u2014 comes with Tasmota pre-installed. Just connect it to WiFi and configure MQTT from the portal.<\/p>\n<p class=\"wp-block-paragraph\"><strong>Modello consigliato: Nous A1T<\/strong> (12-15 \u20ac) \u2014 arriva gi\u00e0 con Tasmota installato, basta collegarla al WiFi e configurare MQTT dal portale.<\/p>\n<p class=\"wp-block-paragraph\">Quante prese servono per l&#8217;ATO: <strong>1 presa<\/strong> per la pompa di rabbocco. Se vuoi anche la sicurezza termica (spegnere il riscaldatore se troppo caldo), 2 prese.<\/p>\n<h3 class=\"wp-block-heading\">Altri optional<\/h3>\n<ul class=\"wp-block-list\">\n<li><strong>Pulsantino per factory reset<\/strong> (0,20 \u20ac) \u2014 utile se cambi WiFi<\/li>\n<li><strong>Alimentatore Meanwell HDR-15-5<\/strong> (8-15 \u20ac) \u2014 pi\u00f9 affidabile di un caricatore USB<\/li>\n<li><strong>Case stampato 3D o scatola IP65<\/strong> (5-10 \u20ac) \u2014 per chiudere tutto ordinatamente<\/li>\n<li><strong>Sonda pH DFRobot + ADS1115 + board ESP<\/strong> (30-50 \u20ac) \u2014 per monitorare il pH (\u00e8 un device a s\u00e9 stante, guida separata)<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading\">Schema di montaggio<\/h2>\n<p class=\"wp-block-paragraph\">Con la basetta screw shield non serve saldare nulla. Si posiziona il NodeMCU sopra la basetta e ogni pin diventa un morsetto a vite numerato. Per collegare un sensore basta strippare il cavo, infilarlo nel morsetto giusto e stringere la vite.<\/p>\n<p class=\"wp-block-paragraph\"><strong>Collegamenti principali:<\/strong><\/p>\n<ul class=\"wp-block-list\">\n<li><strong>DS18B20<\/strong> \u2192 pin dati al GPIO, alimentazione 3.3V e GND, con resistenza 4,7k\u03a9 tra dati e 3.3V<\/li>\n<li><strong>Galleggianti IN1-IN4<\/strong> \u2192 4 ingressi digitali del NodeMCU (uno per ogni galleggiante)<\/li>\n<li><strong>Display OLED<\/strong> \u2192 I2C (SDA, SCL) + VCC e GND<\/li>\n<li><strong>Alimentazione<\/strong> \u2192 micro-USB (5V 2A da caricatore da telefono)<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.joy-reef.com\/wp-content\/uploads\/2026\/06\/joyreef-wiring-diagram.jpg\" alt=\"Schema di collegamento NodeMCU per sensori e display\" \/><\/figure>\n<p><em>La piedinatura esatta \u00e8 spiegata passo passo nella guida &#8220;Primo avvio: monta il controller&#8221; sul portale. Lo schema sopra riassume i pin usati: DS18B20 su D5, OLED su D3 (SDA) e D4 (SCL), galleggianti IN1-IN4 su D6-D2.<\/em><\/p>\n<h2 class=\"wp-block-heading\">A cosa servono 4 galleggianti<\/h2>\n<p class=\"wp-block-paragraph\">Il controller ha 4 ingressi per sensori di livello. Ecco come si possono usare:<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>Galleggiante 1 \u2014 Livello operativo ATO<\/strong>: posizionato in sump, rileva quando l&#8217;acqua \u00e8 scesa e fa partire il rabbocco<\/li>\n<li><strong>Galleggiante 2 \u2014 Livello massimo di sicurezza<\/strong>: 1-2 cm sopra il primo. Se l&#8217;acqua arriva fino a lui, ferma immediatamente la pompa (rete di sicurezza)<\/li>\n<li><strong>Galleggiante 3 \u2014 Livello reservoir<\/strong>: avvisa quando il serbatoio dell&#8217;acqua osmotica \u00e8 quasi vuoto<\/li>\n<li><strong>Galleggiante 4 \u2014 Extra<\/strong>: cambio acqua automatico, livello skimmer, o altro<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading\">Come funziona l&#8217;ATO<\/h2>\n<p class=\"wp-block-paragraph\">Il principio \u00e8 semplice:<\/p>\n<ol class=\"wp-block-list\">\n<li>Il galleggiante in sump rileva che il livello \u00e8 sceso sotto soglia<\/li>\n<li>Il controller invia un comando alla presa smart Tasmota<\/li>\n<li>La presa smart accende la pompa di rabbocco (normale pompa AC, 5-10W)<\/li>\n<li>La pompa pesca acqua osmotica dal reservoir e la immette in sump<\/li>\n<li>Quando il livello torna a posto, il galleggiante si chiude e la pompa si spegne<\/li>\n<\/ol>\n<p class=\"wp-block-paragraph\">Il tutto \u00e8 protetto da tre livelli di sicurezza: limite per singola erogazione, limite giornaliero e pausa tra un ciclo e l&#8217;altro. Se uno scatta, il sistema si blocca e ti avvisa.<\/p>\n<h2 class=\"wp-block-heading\">Cosa NON comprare<\/h2>\n<ul class=\"wp-block-list\">\n<li><strong>Rel\u00e8 230V da collegare al NodeMCU<\/strong> \u2014 pericoloso. Usa sempre prese smart Tasmota certificate<\/li>\n<li><strong>DS18B20 con cappuccio in acciaio<\/strong> \u2014 tossico per l&#8217;acquario marino<\/li>\n<li><strong>Prese smart non Tasmota<\/strong> (TP-Link Kasa, Meross, Tuya, Shelly) \u2014 non parlano con JoyReef<\/li>\n<li><strong>Sonde ORP o conducibilit\u00e0<\/strong> \u2014 non ancora supportate dal firmware<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading\">Dove comprare<\/h2>\n<table class=\"wp-block-table\">\n<thead>\n<tr>\n<th>Dove<\/th>\n<th>Tempi<\/th>\n<th>Prezzi<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Amazon.it \/ Amazon.de<\/td>\n<td>1-3 giorni<\/td>\n<td>Riferimento<\/td>\n<\/tr>\n<tr>\n<td>AliExpress (sped. standard)<\/td>\n<td>15-30 giorni<\/td>\n<td>-30\/50%<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"wp-block-paragraph\"><strong>Consiglio:<\/strong> ordina NodeMCU, DS18B20 e display su AliExpress (risparmi), e prendi su Amazon galleggianti, screw shield e prese smart per iniziare subito.<\/p>\n<h2 class=\"wp-block-heading\">Prossimo articolo: configurazione sul portale<\/h2>\n<p class=\"wp-block-paragraph\">In questo articolo abbiamo visto l&#8217;hardware. Nel prossimo vedremo come configurare l&#8217;ATO sul portale: assegnare i sensori di livello, collegare la presa smart Tasmota, impostare i limiti di sicurezza e attivare l&#8217;automazione.<\/p>\n<p class=\"wp-block-paragraph\">\ud83d\udc49 <a href=\"https:\/\/portal.joy-reef.com\">Crea il tuo account gratuito<\/a> e ordina i componenti \u2014 nel prossimo articolo lo configuriamo insieme.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Perch\u00e9 un ATO \u00e8 fondamentale per il reef Evaporation in a marine aquarium is constant. Lampade potenti, circolazione superficiale e temperatura dell&#8217;acqua&hellip;<\/p>\n","protected":false},"author":2,"featured_media":118130,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32],"tags":[],"class_list":["post-118138","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tecnica"],"_links":{"self":[{"href":"https:\/\/www.joy-reef.com\/en\/wp-json\/wp\/v2\/posts\/118138","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.joy-reef.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.joy-reef.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.joy-reef.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.joy-reef.com\/en\/wp-json\/wp\/v2\/comments?post=118138"}],"version-history":[{"count":3,"href":"https:\/\/www.joy-reef.com\/en\/wp-json\/wp\/v2\/posts\/118138\/revisions"}],"predecessor-version":[{"id":118145,"href":"https:\/\/www.joy-reef.com\/en\/wp-json\/wp\/v2\/posts\/118138\/revisions\/118145"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.joy-reef.com\/en\/wp-json\/wp\/v2\/media\/118130"}],"wp:attachment":[{"href":"https:\/\/www.joy-reef.com\/en\/wp-json\/wp\/v2\/media?parent=118138"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.joy-reef.com\/en\/wp-json\/wp\/v2\/categories?post=118138"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.joy-reef.com\/en\/wp-json\/wp\/v2\/tags?post=118138"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}