
Programmiamo in ESPHome e integriamo in Home Assistant il modulo a relè singolo con ESP-01, dotato di comodo contatto pulito per piccoli progetti DIY
Andiamo a rivisitare in ESPHome sia la ESP-01 [LINK] che il modulo a singolo relè [LINK] che abbiamo visto e programmato in passato. In questo articolo vedremo come programmarli per integrarli in Home Assistant. Questo modulo, poi, rappresenta la soluzione più semplice ed economica per gestire piccoli carichi elettrici tramite automazioni domestiche.
Acquista su Amazon:
- Modulo + ESP-01: https://amzn.to/46qJTma
- Adattatore USB: https://amzn.to/4mmcX4n
Specifiche tecniche
La ESP-01 è sicuramente il modello più piccolo ed economico tra le ESP8266, infatti le ridotte dimensioni ( 24,8 x 14,3 x 3,0 mm) fanno sì che il numero di pin sia molto scarso: troviamo solo 8 pin e 4 solo di questi sono programmabili per il flusso dei dati. Sulla scheda questi pin sono RX (GPIO3), TX (GPIO1), GPIO 0 e GPIO 2. Gli altri pin sono il Vcc (per l’alimentazione a 3,3V), il Ground (GND), il pin reset (RST) e il pin Enable (EN).
Come tutte le ESP8266, la ESP-01 è dotata di connessione WiFi a 2,4GHz con protocollo 802.11 b/g/n. Le interfacce adoperate sono la UART, SPI, I2S e I2C e la tensione di lavoro è a 3,3V. Il processore adoperato è un Tensilica 32-bit Xtensa L106, con una memoria flash da 512KB per la versione più vecchia della ESP-01, mentre 1MB per la versione più aggiornata (ESP-01S). Tuttavia manca completamente la connettività USB per caricare gli sketch.
Per sopperire, si adopera un particolare adattatore con porta USB-A che si incastra perfettamente con la scheda. Esistono altri modi per caricare il programma sulla dev-board, ma noi ci concentreremo su questo.
Per entrare nella modalità di programmazione, dovremmo saldare all’adattatore un pulsante a due pin, in particolare in corrispondenza dei pin GND e GPIO0.
Una volta saldato il pulsante, montate la ESP-01 sull’adattatore e, tenendo premuto il pulsante, collegatelo alla porta USB del PC, sempre senza lasciare il pulsante. Trascorsi 2-3 secondi, lasciate il pulsante e la scheda sarà pronta per ricevere il codice.
Dal punto di vista tecnico, il modulo si compone di un relè capace di gestire tensioni domestiche e un’interfaccia pensata per l’ESP-01, che si innesta direttamente sul connettore dedicato.
L’alimentazione è già predisposta per fornire i 3,3 V necessari al microcontrollore, mentre il relè opera a 5 V con un circuito di pilotaggio isolato, evitando sovraccarichi sulla logica di controllo. La capacità di commutazione è generalmente sufficiente per lampade, piccoli elettrodomestici e dispositivi a basso consumo, con la garanzia di un isolamento galvanico fra la parte di potenza e quella logica.
Il modulo monta solitamente un relè Songle SRD-05VDC-SL-C, uno dei più diffusi in questo tipo di schede economiche. Si tratta di un relè elettromeccanico con bobina a 5 V in corrente continua, erogabile tramite i due pin posti appena accanto all’alloggio per la ESP-01, che viene pilotata direttamente dalla logica tramite transistor di comando. Dal lato contatti, il relè è in grado di commutare fino a 10 A a 250 V in corrente alternata oppure 10 A a 30 V in corrente continua, valori più che sufficienti per l’uso domestico. I terminali disponibili sono tre: COM (comune), NO (normalmente aperto) e NC (normalmente chiuso), così da poter scegliere se controllare il carico con logica di apertura o chiusura a riposo.
Sul modulo è saldato un led di colore blu che si accende e si spegne secondo la posizione dell’elettromagnete, mentre di fianco ad esso troviamo il pulsante di Reset. A tenere separato il circuito di carico da quello di potenza, troviamo nel modello in esame, un fotoaccoppiatore Sharp PC817. Esistono comunque diverse versioni, anche dotate di 4 relè, ma la programmazione di base resta comunque la medesima.
Codice
Andiamo a creare un nuovo device su ESPHome e chiamiamolo Modulo Relè. Saltiamo per il momento la connessione e selezioniamo la scheda che dobbiamo programmare (ESP8266).
Una volta creato, clicchiamo su EDIT per modificare il codice.
Questo è il codice per configurare una ESP-01 per adoperare il relè singolo integrato nel modulo da Home Assistant tramite ESPHome. Il dispositivo sarà accessibile in rete tramite Wi-Fi e potrà essere aggiornato via OTA (Over-The-Air) senza bisogno di connessione fisica. Potete scaricarlo a questo LINK.
All’inizio, il codice definisce il nome del dispositivo, sia quello tecnico (“modulo relè”) che quello più leggibile per Home Assistant (“Modulo Relè”).
esphome:
name: modulo-rele
friendly_name: Modulo Relè
Poi si specifica che il microcontrollore usato è un ESP-01 con memoria da 1 MB. Questo è fondamentale per dire a ESPHome quale firmware compilare.
esp8266:
board: esp01_1m
Il codice attiva il logger, che serve a registrare gli eventi e inviare messaggi di debug. Inoltre, viene attivata l’API di ESPHome, che permette a Home Assistant di comunicare con il dispositivo in modo sicuro grazie a una chiave di crittografia.
logger:
api:
encryption:
key: "N/9Me2taeVI7Zfo/MIQWn6BJfk0ojlmvgnvmmU/+vOI="
Per evitare di dover collegare il dispositivo fisicamente ogni volta che si vuole aggiornare il firmware, viene attivata la modalità OTA (Over-The-Air), con una password di sicurezza. Inoltre, è presente la funzione captive portal, che permette di riconfigurare il Wi-Fi direttamente da un browser in caso di problemi di connessione.
ota:
- platform: esphome
password: "c4a97e724a76285c7aa9753f07b9a677"
captive_portal:
Per collegarsi alla rete, il codice usa le credenziali Wi-Fi salvate nei secrets di ESPHome (file separato non visibile nel codice). Se la connessione fallisce, il dispositivo crea un hotspot Wi-Fi di emergenza (“Modulo-Rele Fallback Hotspot”) con una password predefinita, in modo che sia possibile riconfigurarlo.
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "Modulo-Rele Fallback Hotspot"
password: "nqLrU2MpZkYY"
Nel codice la parte centrale riguarda proprio la gestione del relè, che viene definito come uno switch riconosciuto da Home Assistant. In questo caso il comando viene affidato al pin GPIO0 dell’ESP-01, che è fisicamente collegato al modulo relè e ne determina lo stato. C’è però un dettaglio importante: l’opzione inverted: True. Questo parametro indica che la logica di funzionamento è invertita rispetto al normale, quindi il relè si attiva quando il pin è portato a livello basso (LOW) e si disattiva quando il pin torna alto (HIGH). Tale comportamento non è un errore, ma una caratteristica di molti moduli economici, che integrano un piccolo circuito con transistor driver funzionante in modalità attiva-bassa. In questo modo, una volta integrato in Home Assistant, il relè risponde correttamente ai comandi di accensione e spegnimento come qualsiasi altro interruttore smart.
switch:
- platform: gpio
name: "Relè Singolo"
pin: GPIO0
inverted: True
Salvate e verificate con Validate se il codice è stato scritto correttamente.
Collegate la ESP-01 all’apposito adattatore USB, citato in precedenza e, tenendo premuto il pulsante, collegatelo alla porta USB del PC, sempre senza lasciare il pulsante. Trascorsi 2-3 secondi, lasciate il pulsante e cliccate su Install.
Conclusa l’installazione, integriamo il device su Home Assistant. Dovrebbe essere arrivata una notifica sulla plancia. In ogni caso, per integrarlo andate su Impostazioni -> Dispositivi e servizi e apparirà il dispositivo Modulo Relè da integrare.
Autorizziamo la configurazione e potremo adoperare il relè direttamente da Home Assistant.