Come usare ESP8266 con E-Paper Display e Arduino IDE

Cos’è e a cosa serve ESP8266

ESP8266 è il microprocessore che compone un modulo WiFi completo, prodotto dalla cinese Ai Thinker, chiamato ESP-12F. Puoi trovare il modulo chiamato con lo stesso nome del microprocessore, cioè ESP8266. Con questo modulo puoi creare un web server e comandare apparecchiature o ricevere dati e misure ambientali anche via internet. Con facilità puoi implementare progetti IoT.

Il micro-controllore ha alcuni pin/risorse disponibili per essere utilizzate dall’esterno del modulo. Per essere utilizzato e programmato con la IDE di Arduino devi scaricare il Core specifico.

Schema a blocchi ESP8266

Il ESP-12F è saldato su un circuito stampato che integra l’antenna per la trasmissione radio WiFi a 2,4 GHZ, una sezione di alimentazione per poterla utilizzare con tensioni di 5 o 3,3 Volt continui e un chip per la trasmissione dei dati USB-Seriale.

Schema elettrico ESP8266 E-Paper display Driver

Guardando lo schema elettrico di questo “driver” si notano alcuni dettagli interessanti.

Il display E-Paper ha bisogno di tensioni ausiliarie (PREVGH è compreso tra +9 e +20 Vdc e PREVGL che varia tra -9 e -20 Vdc), oltre alla tensione principale di 3,3 Volt, per funzionare. Questa tensione viene generata utilizzando un semplice circuito switching a mosfet. Il controllo del valore di tensione e la corrente massima di switching vengono controllate dall’interno del display. A seconda del tipo di display utilizzato devi selezionare la corrente di mosfet corretta come da tabella. Lo fai cambiando posizione allo switch J3. Per il display da 7.5 pollici la posizione è la B.

Tensioni ausiliarie per il display in tecnologia E-Paper

La scheda driver è dotata di un convertitore USB – Seriale che permette lo scambio dei dati e della programmazione del micro-controllore presente nel modulo ESP-12F.

ESP12E-F module PinOut
PinOut NodeMCU con ESP8266

Cos’è e a cosa serve un E-paper Display

Un E-Paper display utilizza delle piccole sfere colorate, tenute all’interno di due elettrodi di vetro trasparente che formano il display, preventivamente caricate con una carica elettrica, che per mezzo di un campo elettrico vengono posizionate sulla superficie del display, e così formano un pixel. Al momento i colori che visualizza sono limitati al bianco, nero, rosso e giallo. Puoi trovare anche display multicolore.

Essendo, questi speciali pixel, delle piccole palline che si spostano fisicamente con l’utilizzo di un campo elettrico, se viene a mancare la corrente di alimentazione questi pixel rimangono dove sono. Questo ha il grande vantaggio di non richiedere energia per “tenere acceso” il display. La luce ambiente viene riflessa senza necessità di energia da parte del circuito del display. I pixel si vedono molto bene anche con angoli fino a 180 gradi.

Questa tecnologia ha al momento il difetto di essere molto lenta nel rendering dello schermo, diciamo almeno dai 5 secondi in su per far apparire l’immagine. Sicuramente per qualcuno può essere un grande ostacolo per il proprio progetto.

Come usare Arduino IDE con ESP8266

La IDE di Arduino, cioè l’ambiente di programmazione dove vengono creati gli sketch, deve essere aggiornata con il core adatto per il micro-controllore contenuto nel modulo ESP8266. Per fare questo si deve accedere al menù File -> Preferenze -> IMPOSTAZIONI e aggiungere l’indirizzo URL per il gestore schede.

Questo è l’indirizzo URL che puoi copiare e incollare:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Clicca sul quadratino alla destra del URL per aggiungere il core ESP8266
Clicca su OK per confermare la scelta

Adesso se entri nel “gestore schede” e digiti “esp” dovrebbe apparire la libreria “ESP8266 community” come da immagine che riporto sotto

Installazione ESP8266 core per Arduino

Adesso clicca su installa, aspetta che venga installato il pacchetto di file e che appaia la scritta INSTALLED in azzurro. Ora puoi programmare la scheda ESP8266 con la IDE di Arduino.

Verifica e primo programma Arduino ESP8266

Collega la tua scheda ESP8266 con il cavo USB al pc e avvia la IDE di Arduino. Cerca la scheda ESP8266 come da immagine che riporto sotto.

Seleziona la porta COM che corrisponde con la scheda che vuoi programmare.

Nel menu File clicca su Esempi -> ESP8266 -> Blink come da immagine che vedi sotto. Carica questo programma sulla scheda e verifica che il led si accende a intermittenza.

Se hai problemi di programmazione e non appare una COM seriale allora non hai installato il driver corretto per il chip che crea la USB virtuale. I chip utilizzati possono essere CH430G o CP2102. Cerca su google i driver aggiornati per il tuo sistema operativo con “driver CH340G” o “driver silab cp2102” e dovresti trovare la soluzione.

Libreria Arduino ESP8266 per display E-Paper E-Ink

Per poter visualizzare qualsiasi immagine o testo sul display E-Paper devi avere installato almeno una libreria adatta per questo scopo. La libreria deve essere compatibile con più core possibili (tipi di micro-controllore), nel nostro caso con il core ESP8266.

La libreria ufficiale per gli e-paper display della WaveShare è questa:

Link libreria e-paper WaveShare

Nelle librerie che trovi nella IDE di Arduino c’è quella creata da Asuki Kono che puoi caricare direttamente dal gestore librerie. La libreria si chiama EPD ed è stata implementata per i display WaveShare. Alcuni file della libreria sono direttamente copiati dalla libreria della Waveshare. In più ci sono le funzioni per usare la grafica e i testi. Quella da me utilizzata aveva esempi solo per i display da 1,54 Inch di grandezza. La puoi scaricare anche da Github da:

Link libreria Arduino Asuki Kona per display EPD della WaveShare

Una libreria, raccomandata anche nei forum di Arduino, è quella scritta da ZinggJM che trovi su Github con il nome di GxEPD. Ci sono due versioni. La GxEPD2 è quella più recente.

Link alla libreria per Arduino e display E-Paper EPD

Oltre a questa libreria devi installare la libreria grafica Adafruit_GFX fornita da Adafruit. Questa libreria comprende vari formati di display ed è utilizzabile con display WaveShare e Good display.

Un altra libreria specifica per tutti i display E-Paper EPD della Waveshare è la soonuse che trovi su Github al link che segue:

Link alla libreria E-Paper display Waveshare

Questa libreria fa solo una cosa: carica un immagine nel display. Non ha implementata la gestione grafica di forme e testo. Ti può servire per un primo test veloce del display che hai ricevuto. Questa libreria funziona in modo indipendente.

SparkFun ha creato una libreria per i suoi prodotti che è gratuita e open source. La trovi su Github:

Link libreria Arduino SparkFun E-Paper

Devi anche scaricare la libreria SparkFun per la gestione grafica dei display. Questa libreria fa uso di una SD card.

Programma Arduino per verificare il funzionamento del display E-Paper

Ho provato alcune tra le librerie che ti ho elencato in precedenza ed alla fine preferisco la libreria GxEPD perché mi è sembrata la più completa e compatibile con molti display e Core di Arduino.

Riporto il programma che ho utilizzato con un display EPD della WaveShare da 7.5 inch, tricolore Bianco-Nero-Rosso e risoluzione 640×384 pixels.

Una cosa importante da fare prima di programmare la scheda ESP8266 è impostare i corretti pin della comunicazione SPI nel programma.

Nel caso del driver ESP8266 della WaveShare i pin da utilizzare sono: Busy = 5; RST = 2; D/C = 4; CS = 15.

Puoi scaricare il programma per Arduino che ho utilizzato dal link che segue:

a breve metterò il link al programma.

Dove comprare ESP8266 + E-Paper Display per Arduino

Puoi comprare questi display in molti posti, ma se vuoi aiutarmi puoi cliccare sull’immagine. Se trovi il prodotto che ti serve e piace, al prezzo giusto, e lo acquisti mi dai una mano a pagare le spese di questo sito internet.

Credits & Links

Tempo utilizzato per scrivere questo articolo ? 12 ore

ESP-12F datasheet

E-ink produttore display E-Paper

Good-Display produttore display E-Paper

ESP12E pinout

Silabs CP2102 VPC driver link

Autore dell'articolo: Lucio Sciamanna