eSWITCH: progettiamo un interruttore IoT

La domotica è una scienza interdisciplinare che coniuga vari campi dell’ingegneria (edile, elettronica, energetica, elettrotecnica e dell’automazione) per migliorare la qualità della vita all’interno delle abitazioni. Quando parliamo di domotica, le applicazioni che ci vengono in mente sono innumerevoli. La diffusione dei dispositivi IoT ed il progresso nel campo dell’Intelligenza Artificiale hanno permesso lo sviluppo delle tecnologie abilitanti la domotica. Le applicazioni coinvolte vanno dal controllo intelligente dell’illuminazione agli impianti di allarme integrati, al monitoraggio e controllo di impianti di erogazione dell’energia elettrica. Alla base di tutte queste applicazioni ci sono il sensing, l’attuazione, l’elaborazione e la comunicazione dei dati, i quali saranno memorizzati in remoto per creare statistiche, trend e interventi di manutenzione predittiva. Negli ultimi anni un dispositivo che si è fatto notare sul mercato è il SONOFF, uno switch elettronico estremamente versatile in grado di pilotare carichi a 220VAC. In questo articolo vediamo com’è possibile creare un dispositivo analogo, clone di un SONOFF.

eSWITCH: uno smart switch WiFi

Il SONOFF, declinato in una moltitudine di modelli differenti, si sta rivelando un dispositivo di enorme interesse, non tanto grazie all’elettronica di cui è composto (a dire il vero abbastanza banale), quanto per l’alto grado di integrazione e configurazione. Il che aiuta notevolmente chi deve installare un dispositivo, anche se si è alle prime armi. L’azienda è cresciuta a dismisura proprio grazie alla semplicità di installazione e, ovviamente, al basso costo del prodotto. In rete è possibile trovare ogni tipo di tutorial e video che spiegano il funzionamento di un SONOFF. Questi dispositivi sono comandabili da remoto sia dalla app per smartphone, ma anche tramite controllo vocale, grazie all’integrazione con le note piattaforme Alexa e Google Home.

In questo articolo prendiamo come riferimento il SONOFF BASIC R2, dotato di relè ed in grado di pilotare direttamente carichi a 220VAC, e diamo vita a eSWITCH, uno smart switch WiFi, che non ha nulla da invidiare al SONOFF.

Hardware: componenti, schema e PCB

Realizzare uno smart switch WiFi simile al SONOFF non è molto complicato. Le feature che ci proponiamo di ottenere sono:

1 – pilotare 2 carichi da 220VAC

2 – leggere un sensore onewire, come il classico sensore di temperatura DS18B20

Si tratta quindi di scegliere i componenti giusti per il tipo di applicazione.

I moduli hardware di cui è composto il sistema sono i seguenti:

1 – sezione di alimentazione

2 – microcontrollore e sezione di programmazione

3 – doppia sezione interfaccia relè

4 – sezione interfaccia sensore onewire

Per la realizzazione del circuito elettronico c’è bisogno di ricavare due tensioni di alimentazione: una 5VDC per eccitare correttamente le bobine dei relè, ed una 3.3VDC per fornire corrente al microcontrollore. In Figura 1 è possibile vedere lo schema elettrico della sezione di alimentazione. Essa è composta principalmente da un AC/DC converter step-down, HLK-PM01. Questo componente riceve un input dalla rete da 100 a 240VAC e fornisce in output una tensione di 5VDC, ed è in grado di erogare fino a 600mA, per un totale di 3W di potenza dissipata. Il tutto ad costo davvero interessante (circa 2$), e con dimensioni ridotte. L’ulteriore punto di forza di HLK-PM01 è che non ha bisogno di ulteriore circuiteria per funzionare correttamente. Il datasheet dell’AC/DC converter riporta però una serie di componenti suggeriti per la protezione da sovracorrenti (fusibile 1A e varistore 220VAC) e per migliorare il filtraggio (capacità da 0.1uF e induttanza di modo comune da 10-30mH per certificazione EMC e filtraggio EMI). Anche se non indispensabili, è buona norma seguire le indicazioni del costruttore del componente, soprattutto se riguardano i requisiti di sicurezza!

Figura 1: sezione di alimentazione

La tensione di 3.3VDC, invece, è ricavata a partire dall’output dell’AC/DC converter, tramite un low-dropout voltage regulator, SE8533-HF. Questo regolatore della Seaward Elec, in un package SOT-89-3, è in grado di erogare fino a 250mA, quantità di corrente sufficiente ad alimentare il microcontrollore.

Il microcontrollore scelto per l’applicazione è un ESP8266, nella versione ESP12F, modulo della Espressif dalle caratteristiche ben note. In particolare, questo microcontrollore è adatto all’applicazione in quanto fornisce prestazioni elevate e connettività WiFi ad un costo davvero irrisorio (meno di 2$). In Figura 2 è possibile vedere la sezione di elaborazione, con relativo connettore di programmazione. Infatti, oltre al SoC, è presente un connettore a pettine con 6 pin a logica TTL, per consentire la scrittura del firmware all’interno della SPIFLASH del modulo ESP. Sul connettore di programmazione, oltre ai pin RX, TX, GND e alimentazione, sono presenti il pin di reset e quello di strapping (GPIO0), che deve trovarsi a livello logico alto per il boot da flash, mentre a livello logico basso permette la scrittura del firmware. Al pin GPIO0 è connesso anche un LED con la relativa resistenza di limitazione, in modo da essere utilizzato come pin di stato liberamente comandabile dal firmware. Gli altri pin di strapping (GPIO2 e GPIO15) non sono utilizzati e pertanto sono lasciati non connessi. I pin GPIO12, GPIO13 e GPIO14 sono utilizzati rispettivamente come comandi RELE1, RELE2 e sensore di temperatura.

Figura 2: sezione di elaborazione e programmazione

La sezione di attuazione, mostrata in Figura 3, si avvale di due relè pilotati da un transistor BC337 di tipo NPN e relativo diodo di ricircolo, nonchè un LED di stato accensione. Al carico attestato sul terminal block verrà trasferita direttamente la tensione 220VAC. Inoltre, i relè sono ad opzione di montaggio: il layout del circuito presenta la possibilità di utilizzare sia un SLA-5VDC-SL-A (pilotaggio a 5VDC, corrente fino a 30A a 220) che un SRD-5VDC-SL-A (pilotaggio a 5VDC, corrente fino a 10A a 220V).

Figura 3: sezione di attuazione

Data la presenza delle alte potenze, è necessario realizzare la pista che porta la 220VAC con un cavo da elettricista, in modo da non sovraccaricare il PCB con correnti troppo elevate, evitando così che la scheda subisca danni anche gravi.

Infine, il GPIO14 è portato su un connettore a 3 poli, insieme alla GND ed alla alimentazione, per essere utilizzato in qualsivoglia tipo di applicazione; ad esempio è possibile collegare una sonda digitale di temperatura DS18B20 e leggere la relativa misura utilizzando il protocollo one-wire.

Il PCB è visibile nelle Figure 4a e 4b.

Figura 4: a) PCB top; b) PCB bottom

Per semplicità di montaggio, questa versione di eSWITCH è realizzata con componenti discreti PTH; solo il modulo ESP12F ed il regolatore di tensione SE8533-HF sono componenti SMD, il cui montaggio a mano richiede un minimo di manualità in più. Nelle Figure 5a e 5b sono visibili i modelli 3D della scheda e dei componenti.

Figura 5: a) modello 3D top; b) modello 3D bottom

Software: toolchain e comunicazione

Una volta assemblato l’hardware è il momento di pensare al software. Il modulo ESP12F è programmabile sia utilizzando l’IDE di Arduino, scaricando le librerie e la toolchain relativa, oppure utilizzando l’ambiente ufficiale fornito da Espressif, ESP-IDF. Questo ambiente mette a disposizione dello sviluppatore le librerie ed i tool necessari per sfruttare tutte le potenzialità del SoC: sistema operativo FreeRTOS, librerie di accesso alle periferiche ed al modulo WiFi, librerie per creare un webserver e, in generale, per la comunicazione e lo scambio dati.

In particolare, una possibile architettura per testare le potenzialità della scheda eSWITCH è la seguente: allo startup il microcontrollore accende il modulo di comunicazione WiFi, configura la modalità station per connettersi ad un access point, e fa partire una connessione MQTT verso un broker. A questo punto, una volta aperto il canale di comunicazione, tramite un semplice protocollo sarà possibile inviare dati periodici dallo eSWITCH riguardanti il valore della misura di temperatura (o qualsiasi altra grandezza del sensore collegato al GPIO14), mentre il firmware sarà in grado di elaborare richieste di attivazione/disattivazione dei relè.

E’ chiaro che le potenzialità di questa architettura sono infinite: si potrebbe implementare una serie di web services tramite i quali remotizzare il nostro eSWITCH, reso a questo punto comandabile da una pagina web, o da un’app per smartphone, o da qualsiasi altra applicazione in grado di utilizzare il protocollo HTTP.

Ad esempio, risulterebbe davvero semplice realizzare un sistema di temporizzazione per le luci di un giardino: utilizzando un sistema Linux, basterebbe uno script bash lanciato ad un’ora prestabilita tramite il servizio cron, in grado di inviare comandi all’eSWITCH per l’attivazione e la disattivazione dei relè.

Conclusione

In questo articolo abbiamo visto come alcune idee, come il SONOFF, sono state in grado di penetrare nel mercato e nel mondo del DIY nonostante la facilità di realizzazione. Anzi, forse è stata proprio la semplicità, unita all’ampio range di problemi capace di risolvere, che ha regalato a questo dispositivo la sua enorme popolarità nel mondo dei makers e degli hobbysti.

Davide Di Gesualdo
Embedded Systems Engineer e Technical Writer, da sempre appassionato di tecnologia, informatica ed elettronica, collabora con testate giornalistiche tecniche nazionali ed internazionali per favorire la divulgazione delle nuove tecnologie di telecomunicazione e dei sistemi embedded.