Questo manuale è rivolto a chi è alle prime armi. Non serve una formazione in elettronica — ma servono un saldatore, un po' di pazienza e la disponibilità a digitare qualche comando in un terminale. Ogni passaggio è descritto per intero: cosa fai, perché lo fai e da cosa riconosci che ha funzionato. Alla fine avrai in mano un dispositivo che accende un carico a 230 V (per esempio un distributore automatico di mangime) alla pressione di un pulsante per un tempo impostabile — utilizzabile con tre pulsanti, un piccolo display e una pagina web nella rete domestica.
I comandi per il terminale si presentano così — vanno digitati riga per
riga e confermati con Enter. Le righe che iniziano con
# sono commenti e non vanno digitate:
# Questo è un commento — solo a scopo esplicativo
esphome run firmware/timer-relais-c3.yaml
I rimandi come «Capitolo 7» sono cliccabili nel PDF. Tramite il link «↑ Indice» in fondo a ogni pagina puoi tornare in qualsiasi momento alla panoramica.
Il Feeder-Relais è una scheda di controllo autocostruita che accende un carico a 230 volt alla pressione di un pulsante per un tempo impostabile e poi si spegne da sola. Il nome deriva dall'impiego originario: sostituisce la scheda timer difettosa di un distributore automatico di mangime (in inglese feeder). Poiché alla fine si limita a «premere un interruttore per un certo tempo», è adatta a qualsiasi carico che si voglia commutare in modo temporizzato.
Sul lato frontale si trovano tre pulsanti. Una pressione breve accende il carico per un tempo memorizzato:
| Pulsante | Etichetta | Tempo predefinito | impostabile |
|---|---|---|---|
| S1 | Down / Manual (T1) | 5 secondi | 1–600 s via Wi-Fi |
| S2 | SET (T2) | 10 secondi | 1–600 s via Wi-Fi |
| S3 | UP (T3) | 15 secondi | 1–600 s via Wi-Fi |
Un piccolo display OLED dietro la finestrella mostra in alto la ricezione Wi-Fi, l'ora in grande (impostata tramite un server orario Internet) e lo stato Idle; in basso la data e la memoria libera. Quando un timer è in corso, al centro appare il conto alla rovescia in secondi e a destra Feed.
L'uso avviene senza app e senza cloud tramite una
piccola pagina web ottimizzata per smartphone, fornita dall'ESP32 stesso
(nel browser http://feeder-relais.local): avviare i timer,
impostare i tempi, consultare i valori di rete e di stato. Per
l'integrazione in un sistema di domotica (per esempio ioBroker o Home
Assistant) è inoltre disponibile una snella interfaccia
JSON (capitolo 11).
Dalla pressione del pulsante al carico commutato, il segnale attraversa cinque stazioni. Ciascuna ha esattamente un compito:
Tasto ─► ESP32-C3 ─► 330 Ω ─► PhotoMOS ─► Shelly 1PM ─► Carico
S1–S3 misura il limita isola commuta e (pompa,
tempo, corrente galvanica- misura la motore
pilota del LED mente potenza mangime,
l'OLED 230 V luce …)
Questo manuale descrive la versione 3 della scheda. Rispetto alla prima versione, la struttura si è notevolmente semplificata:
Tra due superfici di rame su una scheda, la corrente non può solo scoccare attraverso l'aria, ma anche strisciare lungo la superficie — favorita da polvere, umidità e sporco. Questa «distanza di dispersione» deve essere sufficientemente grande a 230 volt. La fissiamo a 6 mm; un valore generoso, con margine di riserva. L'unica eccezione ammessa è l'interno del relè PhotoMOS stesso — questo componente è il punto di isolamento certificato e può portare tensione di rete e bassa tensione a pochi millimetri di distanza (capitolo 6).
L'ordine di questo manuale è scelto deliberatamente in modo che tu faccia tutto ciò che è pericoloso per ultimo e possa esercitarti senza rischi fino ad allora:
| Componente | Compito |
|---|---|
| ESP32-C3 Super Mini | Il «cervello». Un piccolo microcontrollore con Wi-Fi. Legge i pulsanti, misura il tempo, disegna l'OLED, fornisce la pagina web e pilota il PhotoMOS. Alimentato a 5 V, lavora internamente a 3,3 V. |
| Relè PhotoMOS | Il punto di isolamento galvanico tra 3,3 V e 230 V. Dettagli nella sezione 3.3. |
| Resistenza di limitazione 330 Ω | Limita la corrente attraverso il LED interno del PhotoMOS, in modo che non venga sovraccaricato. |
| Alimentatore (modulo AC/DC) | Ricava dai 230 V~ i 5 V con cui funziona l'ESP. Un modulo già pronto e incapsulato. |
| Shelly 1PM Mini Gen4 | Commuta il carico vero e proprio, ne misura la potenza ed è inoltre raggiungibile via Wi-Fi. Si trova fuori dalla scheda. |
| Display OLED 0,91" | Mostra orologio, conto alla rovescia e stato. Viene solo innestato, non saldato. |
| Fusibile + varistore | Proteggono dal sovraccarico e dalla sovratensione sul lato di rete. |
Lo Shelly 1PM Mini Gen4 è un relè di commutazione già pronto e collaudato, con misura della potenza. Usarlo comporta tre vantaggi: la commutazione rischiosa del carico è affidata a un prodotto finito certificato; la potenza viene misurata (si vede se il carico sta effettivamente funzionando); e lo Shelly stesso è raggiungibile via Wi-Fi, qualora lo si voglia integrare ulteriormente.
La nostra scheda «preme» l'interruttore per lo Shelly solo come un vero segnale hardware, senza dipendenza dal Wi-Fi per la funzione principale. Nella versione 3 lo Shelly si trova fuori dalla scheda ed è collegato tramite un morsetto (capitolo 13). Questo mantiene la scheda piccola, i percorsi a 230 V corti e la struttura ordinata.
Un PhotoMOS è un minuscolo relè a semiconduttore. Da un lato si trova un LED, pilotato dall'ESP a 3,3 V. Dall'altro lato un interruttore comandato dalla luce, che può commutare la tensione di rete. Tra i due c'è solo luce — quindi un isolamento galvanico completo tra bassa tensione e 230 V.
L'ingresso di commutazione dello Shelly è riferito alla tensione di rete (si aspetta una fase commutata). Per questo il PhotoMOS deve sopportare una tensione di tenuta ≥ 400 V — per esempio un Omron G3VM-601BY o un Panasonic AQY216.
Ecco la funzione esatta di ogni componente — con i valori effettivamente montati sulla scheda v3. Le sigle (riferimenti) sono quelle riportate sulla serigrafia della scheda.
| Sigla | Valore | Funzione esatta |
|---|---|---|
| U1 | ESP32-C3 Super Mini | Il microcontrollore con Wi-Fi. Funziona a 5 V, genera internamente 3,3 V tramite un regolatore (anche per l'OLED). Porta un LED RGB integrato (WS2812) su GPIO8. Pilota pulsanti, OLED, PhotoMOS e l'interfaccia web. |
| K1 | G3VM-601AY2 | Il PhotoMOS — l'isolamento galvanico tra 3,3 V e 230 V. Pin 1/2 = LED interno (pin 1 tramite R1 da GPIO6, pin 2 a GND), pin 3/4 = interruttore comandato dalla luce (pin 3 = L_F, pin 4 = SW_SHELLY). Tensione di tenuta ≥ 400 V. |
| R1 | 330 Ω | Resistenza di limitazione del LED di K1. Da ~3,3 V meno ~1,2 V di tensione diretta del LED scorrono circa 6 mA — sufficienti per una commutazione sicura, ben al di sotto del valore limite del LED. |
| PS1 | TSP-05 (5 V / 3 W) | L'alimentatore: ricava dai 230 V~ (L_F + N) i 5 V/GND per l'ESP. 3 W = 600 mA — sufficienti per i picchi di trasmissione Wi-Fi (~350 mA) più l'OLED. |
| C1 | 220 µF / 10 V | Condensatore di supporto su +5 V: attutisce brevi picchi di corrente durante la trasmissione Wi-Fi ed evita il calo di tensione che altrimenti farebbe riavviare l'ESP. |
| C2 | 100 nF | Condensatore di disaccoppiamento direttamente su +5 V/GND: assorbe i disturbi ad alta frequenza vicino al chip. |
| F1 | 1 A ritardato | Fusibile (5×20 mm) in serie: X1 (L_IN) → F1 → L_F. Protegge in caso di corto circuito/sovracorrente. «Ritardato» affinché la corrente di spunto dell'alimentatore non lo faccia scattare erroneamente. |
| RV1 | S14K275 (varistore) | Protezione da sovratensione in parallelo tra L_F e N: limita i picchi di tensione (transitori di commutazione, disturbi di rete) e protegge alimentatore ed elettronica. |
| J2 | OLED SSD1306 128×32 | Il display. Indirizzo I²C 0x3C, 400 kHz. Viene solo innestato (assegnazione GND/VCC/SCL/SDA). |
| SW1–3 | Pulsante 6×6 mm | I tre micropulsanti T1/T2/T3. Un contatto a GND, l'altro a GPIO3/4/5 — l'ESP usa i pull-up interni, una pressione porta il pin a GND. |
E i morsetti di collegamento sul bordo della scheda:
| Sigla | Collegamento | Assegnazione |
|---|---|---|
| X1 | Ingresso rete | 1 = N, 2 = L_IN (230 V in ingresso) |
| X2 | Uscita carico | 1 = O (commutato), 2 = N |
| X3 | Snubber | 1 = O, 2 = N — per una rete RC opzionale su carichi induttivi |
| J1 | Shelly | 1 = SW, 2 = O, 3 = L, 4 = N (verso lo Shelly esterno, capitolo 13) |
Tutto ciò che serve per un Feeder-Relais. La scheda stessa la fai produrre (capitolo 7); i componenti si ordinano e si saldano (capitolo 9).
| Sigla | Componente | Valore / tipo | Nota |
|---|---|---|---|
| U1 | ESP32-C3 Super Mini | 18 × 24 mm, USB-C | Controller con Wi-Fi |
| K1 | Relè PhotoMOS | Omron G3VM-601AY2 (o -601BY / Panasonic AQY216) | ≥ 400 V! |
| PS1 | Modulo alimentatore AC/DC | 5 V / 3 W (classe HLK-PM05) | verificare la distanza dei pin |
| — | Display OLED | 0,91" SSD1306, 128 × 32, I²C | Pin: GND VCC SCL SDA, indirizzo 0x3C |
| SW1–3 | Micropulsante | 6 × 6 mm, corsa 1,5 mm | posizione fissa (pannello frontale) |
| R1 | Resistenza | 330 Ω | resistenza di limitazione LED PhotoMOS |
| F1 | Fusibile + portafusibile | 1 A ritardato, 5 × 20 mm | lato primario, obbligatorio |
| RV1 | Varistore | S14K275 | lato primario, obbligatorio |
| C1 / C2 | Condensatori | 220 µF/10 V & 100 nF | buffer 5 V e disaccoppiamento |
| X1 | Ingresso rete | 2 poli (L, N) | morsetto a vite, 230 V in ingresso |
| X2 | Uscita carico | 2 poli (O, N) | verso il carico commutato |
| X3 | Snubber | 2 poli (O, N) | rete RC opzionale per carichi induttivi |
| J1 | Collegamento Shelly | 4 poli (SW, O, L, N) | fili corti verso lo Shelly esterno, capitolo 13 |
| J2 | Zoccolo OLED | 1 × 4, passo 2,54 | GND/VCC/SCL/SDA, il display viene innestato |
L'involucro è composto da due parti: la parte anteriore (il pannello frontale originale con la finestrella e i tre pulsanti a stantuffo) e la parte posteriore, che stampi tu stesso in 3D. La scheda viene avvitata da dietro a sei colonnette, il display si trova dietro la finestrella.
La parte anteriore è la parte superiore dell'involucro originale. Porta la finestrella (dietro cui si trova l'OLED) e gli stantuffi che, premuti, azionano i tre pulsanti sulla scheda. Per questo la posizione dei pulsanti non è negoziabile — devono trovarsi esattamente sotto gli stantuffi (capitolo 9).
Nella versione 3 la parte posteriore è deliberatamente più profonda dell'originale (35 mm invece dei 5,7 mm originari), affinché scheda e Shelly esterno ci stiano comodamente. Sul bordo superiore si trova una linguetta di sospensione con foro a serratura per il montaggio a parete.
Il modello si trova come file OpenSCAD nel progetto, in
box/feeder_back.scad. OpenSCAD è un programma gratuito che
genera un modello 3D a partire da un file di testo — il vantaggio: tutte
le misure sono definite come variabili in cima al file e possono essere
adattate.
box/feeder_back.scad.box/feeder_back_35mm.stl.box/Timer-Ersatzplatine-v3-BOARD.stl — una riproduzione 1:1
della scheda (contorno, fori di fissaggio, fessure). Stampala piatta e
inseriscila nella parte posteriore prima di ordinare la
scheda vera. Così verifichi senza rischi che tutto sia compatibile
(capitolo 7).La scheda viene avvitata da dietro con sei viti alle colonnette della parte posteriore (passo colonnette 45 mm × 70 mm, foro vite 3,2 mm, svasatura per la testa della vite sul retro). Altri quattro punti sul pannello frontale centrano ulteriormente la scheda.
| Misura | Valore |
|---|---|
| Dimensione esterna parte posteriore | 109,8 × 90,8 mm |
| Profondità parte posteriore (v3) | 35 mm |
| Spessore pareti e fondo | 1,3 mm |
| Dimensione scheda | 101,6 × 77,5 mm |
| Passo colonnette | 45 mm (X) × 70 mm (Y) |
Non devi progettare la scheda da solo — è già pronta nel progetto, in
kicad-v3/. Questo capitolo spiega come è
strutturata, in modo che tu sappia cosa va dove durante il montaggio
e il collaudo. Chi vuole modificarla trova la guida a KiCad nel
capitolo 8.
Nella versione 3 tutta l'elettronica si trova sul retro. Sul lato anteriore (verso il pannello frontale) restano solo i tre pulsanti e lo zoccolo OLED — tutto ciò che viene azionato o visto.
La scheda ha quattro strati di rame: i due strati esterni (lato anteriore e posteriore) portano le piste, i due strati interni sono piani di massa continui nella zona a bassa tensione. Tali piani di massa agiscono come un piano di riferimento stabile: rendono la struttura poco soggetta a interferenze e la funzione Wi-Fi stabile.
Le cinque reti L_IN, L_F, N,
SW_SHELLY e O_LAST portano 230 volt. Sono
raggruppate in una classe di rete «230V» propria (piste
più larghe, distanze maggiori) e si trovano tutte in basso a sinistra,
lontano dall'elettronica. Una regola di verifica definita nel progetto
richiede 6 mm di distanza tra ogni rete a 230 V e
ogni bassa tensione.
La sola eccezione è il relè PhotoMOS K1: il suo involucro è il punto di isolamento certificato (pin 1/2 = bassa tensione, pin 3/4 = tensione di rete). Solo lì i due mondi possono incontrarsi a pochi millimetri di distanza — esattamente per questo il componente è costruito.
Quale conduttore porta cosa lo mostra la seguente panoramica:
| Nome rete | porta | collega |
|---|---|---|
| L_IN | 230 V (non protetta) | Ingresso rete X1 → fusibile F1 |
| L_F | 230 V (protetta) | F1 → varistore RV1, alimentatore PS1, PhotoMOS K1.3, Shelly J1.L |
| N | 230 V neutro | X1 → RV1, PS1, Shelly J1.N, carico X2, snubber X3 |
| SW_SHELLY | 230 V commutata | PhotoMOS K1.4 → Shelly J1.SW |
| O_LAST | 230 V commutata | Shelly J1.O → uscita carico X2 + snubber X3 |
| +5V | bassa tensione | Alimentatore → ESP 5V, C1, C2 |
| GND | bassa tensione | Massa: ESP, pulsanti, PhotoMOS, OLED |
| +3V3 | bassa tensione | Uscita ESP-3V3 → OLED |
L'ESP32-C3 utilizza questi pin:
| Pin | Funzione |
|---|---|
| 5V / G | alimentazione dall'alimentatore |
| 3V3 | alimenta l'OLED |
| GPIO3 / 4 / 5 | pulsanti T1 / T2 / T3 |
| GPIO6 | pilotaggio PhotoMOS (tramite 330 Ω) |
| GPIO7 | I²C-SDA (OLED) |
| GPIO8 | LED RGB integrato (stato) |
| GPIO9 | I²C-SCL (OLED) |
Questa tabella è la corrispondenza vincolante tra scheda e
firmware. A sinistra è indicato cosa fa il firmware
(timer-relais-c3.yaml) con il pin — con la sua configurazione
esatta; a destra, dove lo porta la scheda. I due lati devono corrispondere
esattamente, altrimenti il dispositivo non funziona.
| Pin ESP | Firmware (ID e configurazione) | Scheda | Funzione nel dettaglio |
|---|---|---|---|
| GPIO3 | btn_s1 · ingresso, pull-up interno, invertito, 30 ms di debounce | Pad 3 → /BTN1 → pulsante S1 verso GND | Pulsante S1 (Down/Manual). Livello di riposo HIGH; la pressione porta a GND (LOW) → considerato «premuto». Breve = avviare Timer 1. |
| GPIO4 | btn_s2 · ingresso, pull-up, invertito, 30 ms | Pad 4 → /BTN2 → pulsante S2 verso GND | Pulsante S2 (SET). Breve = Timer 2; lunga ≥ 3 s = menu informazioni. |
| GPIO5 | btn_s3 · ingresso, pull-up, invertito, 30 ms | Pad 5 → /BTN3 → pulsante S3 verso GND | Pulsante S3 (UP). Breve = Timer 3; lunga ≥ 1,2 s = arresta tutto. |
| GPIO6 | shelly_trigger · uscita GPIO | Pad 6 → /PMOS_DRV → R1 330 Ω → anodo LED K1 | Pilota il PhotoMOS. HIGH = LED acceso = PhotoMOS conduce = Shelly-SW riceve L → carico acceso. LOW = spento. |
| GPIO7 | i2c: sda · 400 kHz | Pad 7 → /SDA → OLED J2.4 | Linea dati I²C verso l'OLED. Si trova intenzionalmente su GPIO7 (non GPIO8). |
| GPIO8 | status_led · WS2812 (GRB), attenuato | interno al modulo — nessuna rete sulla scheda (Pad 8 libero) | LED RGB di stato integrato (semaforo verde/giallo/rosso). Si trova fisso su GPIO8 del modulo; per questo qui non deve trovarsi un secondo segnale — il motivo per cui SDA è passato a GPIO7. |
| GPIO9 | i2c: scl · 400 kHz | Pad 9 → /SCL → OLED J2.3 | Linea di clock I²C verso l'OLED (indirizzo 0x3C). |
| 5V / GND | Alimentazione del modulo | /+5V / GND dall'alimentatore | 5 V dal modulo AC/DC; GND è la massa comune (anche gli strati interni). |
| 3V3 | Uscita del regolatore integrato | /+3V3 → OLED-VCC | L'ESP genera internamente 3,3 V e con essi alimenta l'OLED. |
Una scheda a quattro strati non si costruisce in casa — la si fa produrre da un produttore di circuiti stampati. Oggi è economico e semplice: si caricano alcuni file e si ricevono le schede finite per posta.
box/Timer-Ersatzplatine-v3-BOARD.stl 1:1 (piatto, senza
supporti) e inseriscilo nella parte posteriore stampata. Il contorno
combacia, le sei fessure si allineano con le colonnette, i fori delle
viti sono nella posizione giusta? Questi cinque minuti ti risparmiano un
ordine sbagliato e costoso.In alternativa (o in aggiunta) stampa il contorno della scheda su carta in scala 1:1 e ritaglialo.
«Gerber» è il formato di file standard nel quale i produttori si aspettano le schede — un file per ogni strato, più i dati di foratura. I Gerber già pronti si trovano già nel progetto; puoi generarli da KiCad così:
kicad-v3/Timer-Ersatzplatine-v3.kicad_pcb.Carica lo ZIP presso un fornitore come JLCPCB, PCBWay o Aisler. Impostazioni importanti:
| Impostazione | Valore |
|---|---|
| Strati | 4 |
| Spessore materiale | 1,6 mm (standard) |
| Finitura superficiale | HASL senza piombo o ENIG |
| Rame | 1 oz (35 µm) |
| Colore | indifferente |
Questo capitolo serve solo se vuoi modificare tu stesso la scheda. Per la sola autocostruzione puoi saltarlo — i dati di produzione già pronti sono inclusi. KiCad è un programma gratuito per la progettazione di schede (testato con KiCad 8/9/10; i nomi dei menu possono variare leggermente).
kicad-v3/Timer-Ersatzplatine-v3.kicad_pro.Ogni simbolo di componente è collegato a un footprint — l'immagine di saldatura sulla scheda. Verifica in Strumenti → Assegna footprint che, per esempio, PS1 corrisponda all'alimentatore effettivamente acquistato (misurare la distanza dei pin!) e che il PhotoMOS corrisponda alla forma costruttiva SMD o DIP.
Le classi di rete sono definite nel file di progetto e non devono essere modificate: Default (0,2 mm di distanza e larghezza pista) e 230V (1,0 mm di distanza e larghezza pista) con le cinque reti L_IN, L_F, N, SW_SHELLY, O_LAST.
La regola sulla distanza di dispersione si trova come file separato
Timer-Ersatzplatine-v3.kicad_dru nel progetto. Richiede
6 mm tra 230 V e bassa tensione — con la deliberata eccezione
del PhotoMOS K1:
(version 1)
(rule "230V->SELV 6mm (K1-Barriere ausgenommen)"
(condition "... 230-V-Netz gegen Nicht-230-V-Netz,
K1 ausgenommen ...")
(constraint creepage (min 6mm))
(constraint clearance (min 6mm)))
Dopo ogni modifica, eseguire il DRC (Design Rules Check, Verifica → Verifica regole di progettazione) finché non risulta privo di errori.
Se DRC e controllo visivo (vista 3D con Alt+3) sono corretti, esporta i dati Gerber e di foratura come descritto nel capitolo 7.
«Montare» significa: saldare i componenti sulla scheda. Si procede dai componenti piatti a quelli alti — così la scheda resta sempre stabile durante la saldatura.
Ordine consigliato: R1 → C2 → PhotoMOS → pulsanti → zoccolo OLED J4 → C1 → portafusibile F1 → varistore RV1 → morsetti. L'ESP si monta solo dopo essere stato flashato e testato (capitoli 10 e 14).
Il PhotoMOS è (a seconda del tipo) un piccolo componente SMD. Ecco come saldarlo correttamente:
Il «firmware» è il programma che gira sull'ESP. La prima volta viene caricato sul chip via cavo USB. Tutti gli aggiornamenti successivi avvengono poi via etere (capitolo 15).
firmware/build/: feeder-relais.factory.bin per
il primo flashing e feeder-relais.ota.bin per i successivi
aggiornamenti via web. Non contengono alcuna credenziale
Wi-Fi — la configuri dopo il flashing (capitolo 11).ESPHome è lo strumento con cui il firmware viene compilato e caricato.
Un file secrets.yaml non è necessario — non vengono
compilati dati Wi-Fi.
esphome run firmware/timer-relais-c3.yaml
/dev/ttyACM0, su Windows una COMx) e
flasha./dev/ttyACM0 viene negato, aggiungi il tuo
utente al gruppo dialout e accedi di nuovo:
sudo usermod -aG dialout $USER
Per il file già pronto feeder-relais.factory.bin senza
alcuna installazione:
https://espressif.github.io/esptool-js/.115200, cliccare su
Connect e scegliere la porta seriale dell'ESP.0, con
Choose File scegliere feeder-relais.factory.bin,
quindi Program. Attendere finché non appare «Hard
resetting…».| Sintomo | Causa / soluzione |
|---|---|
| L'ESP non viene riconosciuto | cavo di ricarica invece di cavo dati → provare un altro cavo USB-C, un'altra porta |
| Nessuna porta nel browser | usare Chrome/Edge; su Windows eventualmente i driver (CH340/CP210x) |
| «Connect» fallisce | Modalità boot: tenere premuto BOOT + toccare RESET + rilasciare BOOT, quindi riconnettersi |
Nessun ….local dopo | configurare prima il Wi-Fi (capitolo 11); mDNS richiede un momento |
Il firmware non porta deliberatamente alcuna credenziale Wi-Fi. Dopo il flashing l'ESP apre un proprio hotspot:
feeder1234).http://192.168.4.1).http://feeder-relais.local.http://feeder-relais.local apre un'app web mobile con
cinque schede:
Nell'intestazione si trova un punto di stato: verde = tutto in ordine, giallo = un timer è in corso, rosso = anomalia a riposo (per es. OLED non raggiungibile o nessun Wi-Fi). Lo stesso semaforo è mostrato sul dispositivo dal LED RGB integrato attenuato.
Per la domotica l'ESP offre un'interfaccia JSON. Gli endpoint principali:
| Chiamata | Effetto |
|---|---|
GET /api/status | tutti i valori come JSON (attivo, tempo residuo, relè, tempi, Wi-Fi …) |
POST /api/trigger?button=N | avvia il pulsante N (1–3) con il suo tempo |
POST /api/trigger?seconds=N | commuta ad hoc per N secondi |
POST /api/trigger?seconds=N&src=adapter | come sopra, marca l'origine — appare come trg (button/api/adapter) nello stato e nel log |
POST /api/stop | spegne immediatamente |
POST /api/config?time1=A&time2=B&time3=C | imposta i tempi (ciascuno 1–600 s) |
POST http://feeder-relais.local/api/config?time1=8.Nella scheda Rete imposti:
de.pool.ntp.org).feeder-relais). Viene cambiato a runtime — l'indirizzo
….local è valido immediatamente.L'interruttore roaming Wi-Fi (802.11k/v) ha senso solo se hai più access point con lo stesso SSID (mesh/UniFi) che supportano questa tecnologia. In tal caso il dispositivo può passare in modo mirato all'access point con il segnale più forte. Predefinito: disattivato. Dopo il cambio, il pulsante «Riconnetti ora» aiuta a renderlo effettivo subito.
Sul dispositivo i pulsanti sono etichettati: S1 = Down/Manual, S2 = SET, S3 = UP.
L'OLED (128 × 32) mostra in alto la barra del Wi-Fi, l'orologio grande oppure il conto alla rovescia e lo stato (Idle/Feed); in basso la data e la memoria libera. Giorno della settimana, stato e titoli dei menu seguono la lingua impostata. Fino alla prima sincronizzazione dell'ora resta «--:--».
Lo Shelly ha quattro morsetti: L, N, SW (ingresso di commutazione) e O (uscita carico). Quattro fili corti lo collegano al morsetto della scheda J1:
| Scheda (J1) | → Shelly | Significato |
|---|---|---|
| J1.3 (L_F) | L | Fase (protetta) |
| J1.4 (N) | N | Neutro |
| J1.1 (SW_SHELLY) | SW | il nostro segnale commutato (dal PhotoMOS) |
| J1.2 (O_LAST) | O | carico commutato verso l'uscita |
Lo Shelly viene fissato in posizione orizzontale nell'involucro (nastro biadesivo VHB o clip). I fili corti e i morsetti a vite ben serrati — non deve sporgere rame da nessuna parte.
Dopo la prima accensione configuri lo Shelly una tantum (tramite la sua app o interfaccia web):
I componenti piccoli sono saldati (capitolo 9). Ora l'ESP:
http://feeder-relais.local.Dopo il primo flashing via USB sono disponibili due percorsi di aggiornamento via etere — la presa USB può tranquillamente essere poco accessibile una volta montato il dispositivo:
esphome run firmware/timer-relais-c3.yaml aggiorna via
Wi-Fi.feeder-relais.ota.bin. Il
dispositivo si riavvia dopo.La scheda Servizio, con la visualizzazione in tempo
reale attivata, mostra le ultime righe di log, filtrate per livello
(ERROR/WARN/INFO/DEBUG). Questo aiuta nella risoluzione dei problemi
senza dover collegare l'ESP a un cavo. I log completi sono disponibili
anche tramite esphome logs firmware/timer-relais-c3.yaml.
| Problema | Rimedio |
|---|---|
| L'ESP non viene riconosciuto | cavo dati invece di cavo di ricarica; provare un'altra porta USB |
| «Connect» fallisce | forzare la modalità boot (tenere premuto BOOT, toccare RESET, rilasciare BOOT) |
feeder-relais.local non raggiungibile | Wi-Fi configurato nell'hotspot di setup? mDNS richiede un momento; provare direttamente l'indirizzo IP (nel menu OLED) |
| Manca l'hotspot di setup | il dispositivo è già connesso a un Wi-Fi; altrimenti reset di fabbrica (immagine factory con Erase Flash) |
| Problema | Rimedio |
|---|---|
| L'OLED resta scuro | Il display è innestato correttamente su J4? Verificare l'assegnazione GND/VCC/SCL/SDA |
| L'orologio mostra «--:--» | ancora nessun orario dal server NTP; verificare Wi-Fi e server NTP |
| Punto di stato rosso | OLED non raggiungibile o nessun Wi-Fi — la scheda Stato mostra i dettagli |
| Il carico non si commuta | Shelly su «Switch/Follow»? Verificare il cablaggio SW/O; misurare l'uscita PhotoMOS nel test solo USB |
| Il pulsante non si aziona | Il pulsante si trova esattamente sotto lo stantuffo? Verificare i punti di saldatura |
| Pin ESP | Funzione | Rete |
|---|---|---|
| 5V / G | Alimentazione | +5V / GND |
| 3V3 | Alimentazione OLED | +3V3 |
| GPIO3 / 4 / 5 | Pulsanti T1 / T2 / T3 | BTN1/2/3 |
| GPIO6 | Pilotaggio PhotoMOS (tramite 330 Ω) | PMOS_DRV |
| GPIO7 | I²C-SDA (OLED) | SDA |
| GPIO8 | LED RGB di stato integrato | — |
| GPIO9 | I²C-SCL (OLED) | SCL |
Le cinque reti a 230 V (classe di rete «230V»): L_IN,
L_F, N, SW_SHELLY,
O_LAST.
| Percorso | Contenuto |
|---|---|
kicad-v3/ | la scheda v3 (KiCad: schema elettrico, layout, regole) + dati di produzione |
box/feeder_back.scad | parte posteriore dell'involucro (sorgente OpenSCAD) + STL già pronto |
box/Timer-Ersatzplatine-v3-BOARD.stl | sagoma della scheda per la prova d'accoppiamento |
firmware/timer-relais-c3.yaml | firmware ESPHome |
firmware/timer_web.h | app web + interfaccia JSON |
firmware/net_config.h | configurazione di rete (IP, NTP, hostname, roaming, lingua) |
firmware/build/*.bin | immagini flash già pronte (factory + ota) |
README.md | panoramica del progetto (tedesco; traduzioni in docs/<lingua>/) |
docs/handbuch/…-Handbuch.pdf | questo manuale in PDF (traduzioni in docs/<lingua>/) |
| Termine | Significato |
|---|---|
| ESP32-C3 | piccolo microcontrollore con Wi-Fi — il «cervello» del dispositivo |
| PhotoMOS | relè a semiconduttore che separa bassa tensione e 230 V tramite la luce |
| Shelly | relè di commutazione Wi-Fi già pronto, con misura della potenza (esterno) |
| OLED | piccolo display ad alto contrasto |
| Gerber | formato di file standard per la produzione di schede |
| Footprint | l'immagine di saldatura di un componente sulla scheda |
| DRC | Design Rules Check — la verifica automatica delle regole in KiCad |
| Distanza di dispersione | il percorso lungo la superficie che la corrente può «strisciare» |
| OTA | «Over the Air» — aggiornamento del firmware via etere |
| NTP | servizio orario Internet che imposta l'orologio |
Questo manuale è distribuito con licenza CC BY-NC-SA 4.0. La struttura segue il regolamento documentale del progetto gemello AskSin-Analyzer: un indice con collegamenti diretti, regole di impaginazione fisse e il piè di pagina con il rimando al ritorno all'indice su ogni pagina.
L'autocostruzione avviene sotto la propria responsabilità. 230 volt sono pericolosi per la vita — in caso di dubbio rivolgersi a un elettricista qualificato.