Programmiamo l’ESP8266 con display 0.91″ integrato

AZ-Delivery ESP8266

Impariamo a gestire il display OLED e il WI-FI della scheda ESP8266 fornitaci da AZ-Delivery, tramjte Arduino IDE e una manciata di righe C.

Tempo fa abbiamo imparato a conoscere la scheda basata sull’ESP8266 con display OLED integrato. Vediamo oggi come accedere alle risorse di questa schedina, tanto piccola quanto versatile ed efficiente. Gli esempi riportati consentiranno, in particolare, di creare un semplicissimo scanner WI-FI e di gestire la grafica del piccolo schermo OLED da 0.91 pollici.

Per prima cosa occorrerà caricare attraverso, la gestione schede, la libreria ESP8266 community. Quindi, attraverso tools/Schede, scegliere Generic ESP8266 Module, ed associare la porta com relativa.

A questo punto sarà possibile caricare il codice di esempio (File/Esempi/Esp8266/WiFiScan):

Nell’esempio, la scheda viene disconnessa nel setup() (qualora si fosse connessa automaticamente)  e posta in station mode. Viene anche apera una connessione con il monitor seriale.

Nel loop(), vengono inizializzate le variabili necessarie alla scansione. Viene poi chiamato il modulo WiFi.scanNetworks(), con i relativi parametri relativi alla ricerca asincrona (posto a false) e alla modalità nascosta (posto a true). Qualora la scansione abbia esito positivo, viene chiamato il metodo getNetworkInfo(). In tal modo vengono acquisiti i parametri di numero rete, ssid, tipo di cifratura, rssi, bssid, canale e stato. Infine, una chiamata a Serial.Print() stampa il record così ottenuto. La variabile scanResult contiene il numero di reti trovate per ogni lettura, e gestisce il loop interno. Una volta stampati tutti i record acquisiti, viene imposta una pausa di 5 secondi.

wi-fi oled

Nota: Questo procedura è valida per qualsiasi scheda ESP8266.

Gestire il display OLED

Allo stesso modo è possibile al display OLED integrato sulla scheda.

Per prima cosa installeremo la libreria u8g2 (da Sketch/#include librerie/Gestione librerie). Dal menù File/Esempi/u8g2/full_buffer caricheremo l’esempio GraphicsTest.

Non lasciatevi spaventare dalla sfilza di informazioni contenute nel file: la libreria è stata scritta per lavorare su periferiche video diverse. A noi occorre semplicemente decommentare la periferica che ci interessa.

In particolare, la linea seguente:

Il file risultante sarà quindi così definito:

Di nuovo, non lasciatevi spaventare dall’apparente complessità del codice: CI troviamo di fronte alla classica macchina a stati definita nel loop():

  • vIene ripulito il buffer di schermo,
  • viene chiamata la funzione draw(),che chiama la sottofunzione di disegno relativa a draw_state,
  • l’immagine creata viene inviata allo schermo ,
  • viene aggiornato il parametro draw_state()
  • viene eseguito un controllo sul parametro draw_state
  • viene imposto un delay di 100 millisecondi

La “magia” avviene nella funzione draw(), che in base alla variabile draw_state ciama una differente funzione di disegno e stampa. In questo modo sarà possibile dedicarsi con calma a ciascuna funzione, studiarla per bene e capire come svilupparne le caratteristiche, prima di passare alla successiva (hint: sostituendo una costante al parametro draw_state nella funzione draw(), si imporrà la ripetizione dello stesso pattern grafico anziché il passaggio al successivo).

Considerazioni finali

Oggi abbiamo presentato codice di esempio per poter pilotare la scheda AZ-Delivery ESP8266 con display OLED da0.91″. In realtà quanto abbiamo scritto vale per tutte le schede basate su ESP, e per tutti i display presenti nella lista u8g2. Si tratta quindi di un tutorial davvero corposo, che garantisce la possibilità di gestire un elevatissimo numero di schede differenti in modo seamless.

Buon divertimento!

 

 

Iscriviti ai nostri gruppi Telegram

Link utili

Seguici per non perdere le prossime novità!

 

Definire ciò che si è non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche’ ciò che riesco a portare a termine mi dà soddisfazione, piacere. Così come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ciò che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.