Protocollo ESP32-NOW (Parte 1)

Introduzione

Negli ultimi anni l’azienda cinese Espressif  ha introdotto  sul mercato diversi dispositivi che hanno rivoluzionato completamente il mercato dei sistemi embedded.

Una delle prime board ad avere un enorme successo è stata la ESP8266, tutt’ora commercializzata dato il suo enorme successo, in  pochi  centimetri quadrati è montato un microcontrollore  a 32bit, con il Wi-Fi integrato.

La possibilità di applicazioni, grazie alla periferica wi-fi integrata, sono innumerevoli.

Espressif  ha sviluppato  un sistema proprietario per la programmazione del modulo, nel contempo la board è compatibile con l’IDE di Arduino, quest’ultima  caratteristica  ha fatto aumentare la sua popolarità  nel mondo dei makers che già usava Arduino.

Il sistema ESP8266 di fatto è diventato il maggiore concorrente  di Arduino.

Uno dei grossi svantaggi del modulo ESP8266 è quello di avere un numero limitato di pins, solo quattro, e  questo è stato uno dei  motivi che ha indotto l’azienda Espressif ad introdurre  sul mercato nuovi moduli, in particolare la scheda ESP32,  che reputo, attualmente, il migliore sistema prodotto dall’azienda cinese.

In questo articolo parleremo proprio del modulo ESP32 e in particolare della libreria ESP32-NOW.

Caratteristiche ESP32-NOW

Il protocollo  ESP32 –NOW è stato sviluppato dall’azienda Espressif, per ridurre l’assorbimento di energia durante le comunicazioni wireless.

Nell’ambito dei progetti IOT, dove in molti casi i moduli di comunicazioni sono alimentati con delle batterie, ridurre l’assorbimento, per molte applicazioni, può essere un grosso vantaggio.

I moduli ESP8266 e ESP32, hanno un basso assorbimento d’energia quando si trovano nello stato di “sleep modes” quando il microcontrollore esce da questo stato, per esempio a seguito di un interrupt, per effettuare un’autenticazione e connessione  Wi-Fi, la durata di queste fasi è significativo  e l’assorbimento di corrente,  per ogni sezione, è maggiore di 350mA.

Il protocollo  ESP32-NOW, attiva una trasmissione  peer to peer tra  dispositivi  della famiglia ESP, con un assorbimento di corrente inferiore alla classica comunicazione WI-FI.  

Utilizza sempre il modulo Wi-Fi integrato pertanto usa sempre la  banda dei 2,4GHz,  ma  in questo caso non si esegue una connessione classica al  Wi-Fi WAP  e non interferisce con il normale funzionamento domestico delle comunicazioni wireless.

Il risparmio energetico non si ottiene diminuendo la potenza di trasmissione, ma semplificando e riducendo il tempo di connessione e comunicazione.

La filosofia che c’è dietro questo protocollo è quella di utilizzare la banda 2,4 GHz, senza usare il protocollo WI-FI  WAP, ma un  protocollo molto più snello e minimale.

Il trasferimento di un pacchetto può avere una dimensione massima di 250 byte.

Per le ridotte dimensioni del pacchetto  non e’ idoneo per la trasmissione dell’audio e tanto meno dei video, ma  è sufficiente per il trasferimento  di dati di piccole dimensioni, tipiche di applicazioni IOT.

I dati possono essere trasmessi in modo unidirezionale o bidirezionale, single–duplex o full-duplex.

La trasmissione può anche essere criptata, e si possono connettere fino a 20 dispositivi contemporaneamente.

La portata del segnale, ovviamente, dipende dall’ambiente in cui sono posizionati i dispositivi,  in particolari condizioni, in spazio aperto e con l’antenna esterna, può raggiungere fino a  400 metri.

Modalità di comunicazione con ESP32-NOW

In una rete di comunicazione ESP32-NOW, i dispositivi possono essere identificati in due modi diversi:

  • Initiator (Iniziatore)
  • Responder (Risponditore)

I due  dispositivi coinvolti nella comunicazione hanno due ruoli distinti:

Initiator: è il dispositivo che invia i dati.

Responder: è il dispositivo che riceve il messaggio.

Comunicazione unidirezionale

E’ il modello più semplice di un sistema di comunicazione, poiché c’è un  solo Initiator, e un solo Responder.

L’ESP32 Initiator, trasmette i dati all’ ESP32  Responder, il protocollo prevede anche la possibilità di attivare il feedback da parte del Responder, per ricevere la conferma dell’avvenuta ricezione.

Figura 1

Questo tipo di configurazione è molto utilizzata soprattutto nel controllo da remoto di un dispositivo.

Un Initiator e multipli  Responders

Come si evince dal titolo, c’è un solo Initiator, che può inviare i dati, ma a differenza del modello precedente, in questo caso i Responders sono più di uno. L’invio dei dati da parte dell’Initiator, può essere fatto anche in broadcast, cioè,  il messaggio è inviato a tutti i Responders.

Figura 2

Anche questo modello è molto usato quando ci sono più sensori da monitorare.

Un Responder e  multipli Initiators

Questa configurazione è l’opposto di quella vista in precedenza, abbiamo un solo Responder e multipli  Initiators.

Figura 3

Questo tipo di configurazione è usata quando c’è un solo sensore e più di un utilizzatore.

Comunicazione bidirezionale

I due dispositivi possono essere sia Initiator che Responder.

Figura 4

Rete full-duplex

Ci sono più di due dispositivi che possono comunicare tra di loro, due alla volta, in questo modo abbiamo realizzato una rete di  moduli ESP32.

Figura 5

2 commenti

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Ti sei iscritto alla newsletter

There was an error while trying to send your request. Please try again.

Quattrodispositivi utilizzerà le informazioni fornite in questo modulo per restare in contatto con te e fornire aggiornamenti del sito