• Home
  • Chi siamo
  • Contatti

FE

  • Design
    • Digital
    • Firmware&Debug
    • PCB
    • Power & Motor
    • Sensor & MEMS
    • Wireless-RF
  • Test & Measurements
    • Compatibilità Elettromagnetica
    • Software/EDA
    • Strumentazione
  • Embedded
    • FPGA
    • Lighting & Opto
    • Microcontrollori
    • Single board
  • Risorse
  • Annate FE
    • FE 2003
    • FE 2004
    • FE 2005
    • FE 2006
    • FE 2007
    • FE 2008
    • FE 2009
    • FE 2010
    • FE 2011
    • FE 2012
    • FE 2013
    • FE 2014
    • FE 2015
    • FE 2016
    • FE 2017
    • FE 2018

Comandare un semaforo a 10000 Km con l’ESP32

Grazie al protocollo MQTT, un Client abilitato e la MCU ESP32 è relativamente semplice comandare a distanza qualsiasi tipologia di carico. E’ sufficiente un collegamento a Internet, un firmware ad-hoc e uno Smartphone con la sua APP. Vediamo come realizzare il sistema, in maniera semplice e veloce.

Il prototipo da realizzare

Il futuro della tecnologia è ormai segnato, ovviamente in senso positivo. L’IoT è una grande realtà. Tutti gli oggetti al mondo, ben presto, saranno caratterizzati da un proprio indirizzo IP e, per questo, accessibili da qualsiasi parte del mondo con una connessione a Internet. Si tratta, indubbiamente, di una grande opportunità per la civiltà che, in pochi anni, dovrà gestire miliardi di dispositivi grazie a un collegamento remoto. L’articolo tratta, a grandi linee, la realizzazione di un sistema adatto al controllo remoto di semplici carichi (vedi schema di principio di cui alla figura 1). Anche se l’esempio trattato utilizza solamente tre diodi LED, il progettista può “spostare” il focus dell’applicazione a mille altre diverse funzioni utili. Il comandare a distanza un elettrodomestico, un sistema d’illuminazione o delle apparecchiature industriali consente, senza dubbio, di migliorare la qualità della vita. Il progetto presentato prevede l’utilizzo di uno Smartphone che ha la possibilità di azionare e d’illuminare una delle tre luci di un semaforo (virtuale), anche a enorme distanza. Il sistema si avvale, ovviamente, di un router WiFi (o di connessione dati) e di un broker pubblico o locale MQTT.

Schema di principio con ESP32
Figura 1: schema di principio

Il protocollo MQTT

Si tratta del protocollo per eccellenza per la realizzazione di dispositivi IoT (vedi schematizzazione in figura 2). In questo tipo di comunicazione, con l’Internet delle Cose, un sensore (o altro dispositivo) pubblica i dati su un sistema centrale chiamato Broker. Tutti i dispositivi che desiderano ottenere questi dati si iscrivono al Broker per ricevere le informazioni, quando disponibili. L’ESP32 si connette a un server MQTT esterno (o locale), avvia la connessione e attende i comandi. Lo Smartphone invia i comandi al server Broker MQTT che a sua volta li consegna ai rispettivi destinatari. Il Broker MQTT utilizzato nell’articolo è “mqtt.eclipse.org”, con appoggio sulla porta 1883. Per brevità si è deciso di non approfondire il concetto del protocollo MQTT, in quanto abbondantemente trattato in altre sedi. Inoltre tali concetti avrebbero costituito, senza dubbio, una ridondanza d’informazione, mentre lo scopo essenziale del progetto è quello di passare subito alla parte pratica della realizzazione.

funzionamento MQTT - L'ESP32 si connette a un server MQTT esterno
Figura 2: il funzionamento del protocollo MQTT

Schema elettrico

Lo schema elettrico è molto semplice. Si tratta di una configurazione generale, sicuramente da ampliare e adattare alle proprie esigenze. Nella figura 3 è riportato tale schema. In esso possiamo vedere i tre diodi LED (rosso, verde, giallo) con le relative resistenze di limitazione, collegate alle tre porte di uscita dell’ESP32. La parte WiFi è contenuta già all’interno del controllore. Esso è grandioso per la maggior parte dei progetti. E’ estremamente piccolo, potente, dotato di tanta memoria e consuma davvero poco, senza contare i carichi a esso collegati.

schema elettrico ESP32
Figura 3: schema elettrico

E’ sempre utile tenere d’occhio la piedinatura dell’ESP32, per verificare le connessioni ed evitare errori pericolosi. Si consiglia, altresì, di consultare sempre le documentazioni tecniche, i datasheet e gli schemi applicativi dei fornitori. Tale documentazione, infatti, costituisce una garanzia assoluta e seguire le trattazioni originali contribuisce, senz’altro, a creare prodotti di alta qualità con cognizione di causa.

Il client MQTT (dashboard)

E’ possibile utilizzare qualsiasi Client o dashboard MQTT, sia su Android che su Windows o Linux. Quello utilizzato per il progetto è Linear MQTT Dashboard (vedi in figura 4), molto semplice, affidabile e, soprattutto, grafico. Si deve, ovviamente configurare l’indirizzo IP del Broker, locale o esterno, e la porta, in genere 1883. Con esso è necessario, anche, configurare i seguenti messaggi, che attivano le azioni corrispondenti:

  • topic: semaforo: messaggio: ROSSO;
  • topic: semaforo: messaggio: GIALLO;
  • topic: semaforo: messaggio: VERDE.
Linear MQTT Dashboard
Figura 4: la Linear MQTT Dashboard in funzione

Basta premere uno dei pulsanti creati, per attivare i diodi LED, in qualsiasi parte del globo terrestre. L’utente può creare qualsiasi altro tipo di evento: controlli luminosi, slider, bottoni, pulsanti, grafici e quant’altro che possano controllare completamente qualsiasi tipologia di utenza, a distanza.

Il Firmware

Il programma è ridotto ai minimi termini, per agevolare la comprensione. Mancano, ovviamente, i controlli dei tentativi di connessione ma il tutto è perfettamente funzionante. Si basa sulla creazione di connessioni particolari, una sul WiFi su cui si appoggia l’ESP32 e l’altra sul Broker. La funzione messageReceived() viene eseguita alla ricezione di messaggi appartenenti allo stesso topic. In essa i singoli messaggi sono processati, attraverso il controllo del Payload, e vengono decise le varie azioni operative da intraprendere. Lo scopo del progetto è quello di creare un sistema che, tramite l’uso di uno Smartphone, si possano controllare, genericamente, dei carichi posti a qualsiasi distanza dall’operatore. Il listato è abbastanza semplice e chi ha dimestichezza con la programmazione non farà fatica a comprenderlo a fondo.

#include <MQTT.h>     // Libreria MQTT
#include <WiFi.h> // Libreria WiFi
WiFiClient net;
MQTTClient client;
//----------------------------------------------------------
void messageReceived(String &topic, String &payload) {
if(payload=="ROSSO") { // Messaggio
digitalWrite(5,HIGH); // Accende diodo LED Rosso
digitalWrite(23,LOW);
digitalWrite(18,LOW);
}
if(payload=="GIALLO") { // Messaggio
digitalWrite(5,LOW);
digitalWrite(23,HIGH); // Accende diodo LED Giallo
digitalWrite(18,LOW);
}
if(payload=="VERDE") { // Messaggio
digitalWrite(5,LOW);
digitalWrite(23,LOW);
digitalWrite(18,HIGH); // Accende diodo LED Verde
}
}
//----------------------------------------------------------
void setup() {
pinMode(5,OUTPUT); // Porte in uscita
pinMode(18,OUTPUT); // Porte in uscita
pinMode(23,OUTPUT); // Porte in uscita
Serial.begin(115200);
WiFi.begin("Nome_WiFi", "mia_password"); // Setta credenziali
delay(10000);
Serial.println(WiFi.localIP()); // Visualizza IP ESP32
// client.begin("192.168.1.247", 1883, net); // IP Broker LOCALE
client.begin("mqtt.eclipse.org", 1883, net); // IP Broker PUB
client.onMessage(messageReceived);
client.connect("CliendID"); // Identificativo del Client
client.subscribe("semaforo"); // Questo e' il TOPIC
Serial.print("Sistema pronto");
}
//----------------------------------------------------------
void loop() {
client.loop(); // Interrogazione continua MQTT
}

Utilizzo

Dopo l’accensione dell’ESP32 e l’avvio della APP sul telefonino Android, il sistema è pronto per funzionare. Per il collegamento della MCU al WiFi è consigliata una pausa d’attesa passiva di circa 10 secondi. Se le funzioni di connessioni vengono eseguite prima, esiste il rischio che il collegamento non vada a buon fine. Si sconsiglia di accorciare tale tempistica. Utilizzando i pulsanti creati con l’APP. in maniera estremamente semplice, si possono comandare i carichi a distanza. Premendo il pulsante Rosso, si illumina esclusivamente il diodo Led remoto rosso, premendo il pulsante Verde, si illumina esclusivamente il diodo Led remoto verde e premendo il pulsante Giallo, si illumina il diodo Led remoto giallo. Ovviamente è possibile utilizzare qualsiasi altra APP per Android o altro sistema operativo. E’ possibile anche utilizzare il software Mosquitto per PC, con funzione di Broker, di Subscriber o di Publisher.

Conclusioni

Lo scopo dell’articolo è quello di avviare i progettisti alla creazione di un sistema che funzioni con il protocollo MQTT. Molto spesso, infatti, chi si occupa di elettronica, e in particolare i principianti, non ha idea da dove cominciare. La realizzazione di un sistema completo e funzionante con protocollo MQTT, ideale per applicazioni IoT, è molto importante per i progettisti elettronici. Controllare da remoto qualsiasi dispositivo in casa, tramite il proprio smartphone, consente di ottenere tanta indipendenza. Se, inoltre, si utilizza un Broker pubblico, si possono controllare i dispositivi a qualsiasi distanza nel mondo, con un risultato finale sorprendente e di grande utilità.

Mag 13, 2020Giovanni Di Maria
PCB Online: Perché Mypcbshop è cresciuto del 35%Alimentatori ferroviari
You Might Also Like
 
Pillole di Elettronica del 10 gennaio 2012
 
Come pilotare differenti carichi a diverse frequenze di commutazione con MCU PIC e Ladder

Lascia un commento Annulla risposta

Giovanni Di Maria
13 Maggio 2020 Arduino, Articoli, Domotica DIY, Embedded, IOT, Microcontrollori, Progetti, Sistemi di controllo, Wireless-RFdomotica, ESP32, iot, MQTT
Fare elettronica
BMS: sistema di monitoraggio e gestione delle batterie al litio
15 Dicembre 2020
Soluzioni avanzate per le applicazioni embedded
9 Dicembre 2020
Intelligenza Artificiale e Sistemi Embedded
Intelligenza Artificiale e Sistemi Embedded
8 Dicembre 2020
Stazioni di ricarica per i veicoli elettrici
2 Dicembre 2020
Tesla Model X hackerata col Raspberry Pi
25 Novembre 2020
ULTIMI ARTICOLI
  • La dissipazione termica nei condensatori elettrolitici 21 Gennaio 2021
  • Energia Ibrida: Supercondensatori e Batterie lavorano congiuntamente 21 Gennaio 2021
  • Display per applicazioni automotive 21 Gennaio 2021
  • Potenza ed efficienza sempre più ai massimi livelli 14 Gennaio 2021
  • PCB per dispositivi indossabili: note di design 14 Gennaio 2021
Domotica DIY
Comandare un semaforo a 10000 Km con l’ESP32
13 Maggio 2020
Come pilotare differenti carichi a diverse frequenze di commutazione con MCU PIC e Ladder
28 Aprile 2020
Google Home
Comandiamo Home Assistant con Google Home grazie a Tasker – Video Tutorial
17 Maggio 2018
Domotizziamo una tapparella
1 Maggio 2018
hubspot




About
Rss Feed
Privacy
Contattaci

 


Tecno, il network che guida le imprese

Supportiamo le aziende nel rafforzare il proprio brand e nel generare contatti B2B tramite il nostro network editoriale, gli eventi e la formazione, con l’obiettivo di aiutarle a cogliere le nuove opportunità del settore.

 


Testate
LUMI 4 INNOVATION
A&V ELETTRONICA
FARE ELETTRONICA

Indirizzo
Via Console Flaminio 19
20134 Milano   MI


Eventi
LUMI EXPO
FORTRONIC



Contatto
marketing@tecnoimprese.it


Formazione
LUMI ACADEMY




Telefono
+39 02 45947830


Osservatori di mercato
ASSODEL
CONSORZIO ELINT


 

Consorzio Tecno Scarl – P.IVA IT09998410964 – © Consorzio Tecno – ALL RIGHTS RESERVED - Informativa estesa cookies

Questo sito utilizza cookie, anche di terze parti, che ne permettono il corretto funzionamento. Cliccando in un punto qualsiasi dello schermo, effettuando un'azione di scroll o chiudendo questo banner, presti il consenso all'uso di tutti i cookie. Accetto Informativa Estesa
Privacy & Cookies Policy
Necessario Sempre attivato