Un sistema IoT di controllo remoto degli attuatori con l’ESP32

Con questo articolo proponiamo a titolo dimostrativo, il progetto di un sistema IoT di home automation per il controllo di attuatori lineari o di motori a 12 V, mediante l’impiego del microcontrollore Wi-Fi ESP32 e di alcuni moduli relè. L’ESP32 con connettività IP tramite Wi-Fi locale, consente all’utente l'accesso e il controllo da remoto di attuatori e motori, utilizzando un’applicazione web server installata su dispositivi mobili come smartphone, tablet e PC. Il software, con poche modifiche, consente di espandere il numero di attuatori controllabili. Gli attuatori possono essere utilizzati ad esempio per l’apertura/chiusura di finestre, tapparelle, lucernari, serrande etc., a seconda della tensione di alimentazione degli attuatori. In questo esempio, per motivi di sicurezza, il progetto prevede l’impiego di dispositivi alimentati a 12 V.

Introduzione

L'innovazione tecnologica delle macchine automatiche progredisce giorno dopo giorno. L'IoT è un altro aspetto dell’evoluzione tecnologica che ci consente di controllare i dispositivi hardware attraverso il web. In questo progetto utilizziamo l’IoT per controllare gli apparati attuatori attraverso il web, consentendo all’utente di realizzare senza sforzo azioni che ne richiederebbero se venissero eseguite manualmente. In sostanza, questo progetto realizza una sorta di robotizzazione domestica mediante l’utilizzo di un’interfaccia utente Wi-Fi. Si può anche dire che si tratta di un sistema di informatizzazione domestica, organizzata attraverso un accesso a Internet e strategie tradizionali di comunicazioni a basso consumo energetico attraverso l’impiego di componenti a basso costo, Wi-Fi, un’applicazione server di controllo e uno smartphone.

Descrizione del progetto

L’hardware del progetto è costituito dal microcontrollore ESP32 per il controllo dei relè, 2 schede costituite da 2 moduli relè per il comando di due attuatori lineari. Nella Figura 1 è riportato lo schema a blocchi di principio del sistema di controllo attuatori.

Figura 1: schema a blocchi del sistema di controllo attuatori

Le due coppie di moduli relè sono controllate dalla scheda di sviluppo ESP32 per consentire l’azionamento di due attuatori. I quattro relè sono distinti in due coppie operative. Ogni coppia di relè viene utilizzata in configurazione a ponte ad H per pilotare un attuatore. I relè possono operare con tensioni di lavoro fino a 250 V e corrente massima di 10 A.

Realizzazione del prototipo

Nella Figura 2 viene mostrato lo schema elettrico di collegamento del circuito del sistema di controllo attuatori.

Figura 2: schema elettrico del sistema di controllo attuatori

Per il montaggio dei componenti potete utilizzare una breadboard sperimentale a 400 punti di connessione mediante dei jumper, collegate i pin IN1, IN2, IN3 e IN4 dei relè, rispettivamente alle porte digitali GPIO02, GPIO26 e GPIO27 dell’ESP32. Per ogni coppia di relè, le morsettiere di controllo degli attuatori devono essere collegate al rispettivo attuatore, ovviamente, se si desidera impiegare un solo attuatore si dovrà collegare solo una delle due coppie di relè. Con riferimento alla Figura 2, collegate il morsetto centrale K1 del RELE' 1 al contatto DOWN dell’attuatore 1, il morsetto a sinistra NC a GND e il morsetto a destra NO alla sorgente di alimentazione dell’attuatore 1 (in questo progetto di esempio la sorgente è un alimentatore a 12 V, ma può essere diversa a seconda dell’attuatore utilizzato); collegate il morsetto K2 del RELE' 2 al contatto UP dell’attuatore 1, il morsetto a sinistra NC a GND e il morsetto a destra NO alla sorgente di alimentazione dell’attuatore 1. Nella Figura 3 viene mostrato lo schema di controllo a ponte H di un attuatore realizzato con due relè. Questo schema può essere realizzato anche per il controllo di motori.

Figura 3: schema di principio di controllo di un attuatore

Seguendo lo schema di Figura 3, quando i contatti NC dei due relè sono connessi contemporaneamente a GND o a NO, l’attuatore è disalimentato, mentre quando solo il RELE' 1 viene attivato (COM su ON), l’attuatore è alimentato in posizione UP o se è attivato solo il RELE' 2, l’attuatore è alimentato in DOWN. Eseguiti tutti i collegamenti dei componenti del prototipo, riguardo l’alimentazione del circuito, considerando che ogni relè assorbe circa 70 mA nello stato attivo, è consigliabile non utilizzare le porte USB del PC collegate all’USB dell’ESP32, ma un alimentatore esterno con tensione di 5 V e corrente erogabile di almeno 300 mA, collegandolo al connettore micro USB dell’ESP32 o ai pin 5 V (Vin) e GND dell’ESP32 (come è previsto nel progetto). Con riferimento alla Figura 2, si noti in basso a sinistra dei relè, il set di 3 pin GND, VCC e JD-VCC. Il pin JD-VCC alimenta direttamente l'elettromagnete del relè, il pin VCC è connesso internamente al pin VCC della sezione di 4 pin del modulo relè, ovvero GND e VCC e i pin di controllo IN1 e IN2.

Il modulo ha un jumper di colore blu (ma può capitare di qualsiasi colore) che collega i pin VCC e JD-VCC. Con questo ponticello l'elettromagnete del relè è connesso al pin di alimentazione 5 V (Vin) dell’ESP32, quindi, il modulo relè e i circuiti della scheda ESP32 non sono fisicamente isolati l'uno dall'altro. Eliminando il ponticello VCC JD-VCC, si isola fisicamente l’alimentazione del relè dall'ESP32 grazie al foto accoppiatore integrato nel modulo relè, prevenendo danni all'ESP32 in caso di sovratensioni da disturbi elettromagnetici o similari disturbi interferenti provenienti dal modulo relè. Questa configurazione circuitale alternativa richiede di collegare un alimentatore esterno al pin JD-VCC.

NOTA: la scheda ESP32 deve essere alimentata da una sola delle alimentazioni succitate. L’utilizzo contemporaneo di più di una alimentazione potrebbe danneggiare irreparabilmente la scheda e gli alimentatori ad essa collegati.

Programmazione dell’ESP32

Per programmare la scheda ESP32 occorre innanzitutto installare il driver che consente la comunicazione seriale USB della scheda con il PC. Per questo, il microcontrollore ESP32 utilizza il chip CP2102 per l'interfacciamento seriale USB al PC. Collegate la scheda ESP32 al computer tramite un cavo USB-micro USB. Se il sistema operativo del computer non riconosce automaticamente il chip CP2102, occorre scaricare il driver dal sito web http://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers e decomprimilo in una cartella. Su Windows, si installa eseguendo "CP210xVCPInstaller_x86.exe" o "CP210xVCPInstaller_x64.exe", a seconda del sistema operativo a 32 o 64 bit; per Mac, si installa il file DMG nell'archivio caricato. Per i sistemi operativi windows XP e Vista occorre installare il driver dal sito https://www.silabs.com/community/interface/knowledge-base.entry.html/2017/01/10/legacy_os_softwarea-bgvU . Dopo aver scollegato e ricollegato la scheda ESP32, nell’elenco delle periferiche di comunicazione in Windows, dovrebbe apparire una porta COM identificabile come "Silicon Labs CP210x da USB a UART Bridge". Il prossimo step è l’installazione del software Arduino dal sito ufficiale www.arduino.cc (in questo articolo si fa riferimento alla versione software Arduino 1.8.9). All’avvio del programma, dall’IDE di Arduino occorre installare la scheda ESP32. Da File > Impostazioni, alla voce “URL aggiuntive per il Gestore schede” inserire il link: https://dl.espressif.com/dl/package_esp32_index.json. Poi, con Strumenti > Scheda > Gestore Schede, digitare “esp32” nella barra di ricerca; si visualizzerà un’immagine come in Figura 4.

Figura 4: installazione della scheda ESP32

Selezionate la scheda "ESP 32 by Espressif Sistems" e cliccate su "Installa" per caricare il firmware di gestione della scheda ESP32 nell’IDE di Arduino. Completata l’installazione della scheda ESP32, da Strumenti > Scheda, selezionate la scheda "ESP32 Dev Module" o equivalente, poi la velocità di upload di 115200, infine, selezionate la porta COM (su Windows) o ttyUSB (su Mac) corrispondente al driver CP210x USB to UART Bridge VCP. Al fine di verificare il funzionamento della scheda ESP32, la testeremo con uno sketch di esempio. Dall’IDE di Arduino, con File -> Esempi -> WiFi -> WiFiscan, si aprirà un nuovo sketch denominato WiFiscan. Caricate il codice nella scheda ESP32 cliccando sul pulsante “->“ (Carica). Al termine della compilazione e del caricamento del codice, aprite il monitor seriale di Arduino e impostatelo alla velocità di trasmissione di 115200. Vedrete nel monitor seriale quanto di simile è riportato nella Figura 5.

Figura 5: risultato dello sketch WiFiScan

Verificata con successo l’esecuzione del programma di esempio WiFiscan, abbiamo la certezza che la scheda ESP32 funziona correttamente, quindi si può procedere con il software del controllore attuatori. In questo progetto viene realizzato un web server che consente di controllare 4 relè, che a loro volta azionano i rispettivi attuatori, mediante uno smartphone, tablet o un PC. Modificando alcune righe del codice del web server è possibile definire il numero di relè che si desidera controllare e l'assegnazione dei relativi pin di controllo.

Installazione della libreria "ESPAsyncWebServer"

Per realizzare il web server utilizziamo la libreria ESPAsyncWebServer che installeremo seguendo i seguenti step:

Dal sito https://github.com/me-no-dev/ESPAsyncWebServer scaricate la libreria ESPAsyncWebServer.zip e copiatela in una cartella. Nell’IDE Arduino, con Sketch -> #include libreria -> Aggiungi libreria da file .ZIP, selezionate la libreria ESPAsyncWebServer.zip che avete scaricato e copiato in una cartella. [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2491 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend