ESP8266-01 e schermo OLED: Mini Quiz

Collegare una scheda ESP8266-01 ad uno schermo OLED è complesso, perché la scheda ESP8266-01 ha solo 8 pin di cui solo 4 utilizzabili.

Gennaio 21, 2018

Con questo progetto (inutile, come al solito) ho approfondito il funzionamento della più piccola scheda wi-fi sul mercato,la scheda ESP8266-01. La complessità del lavoro sta nel fatto che la scheda ha pochi pin disponibili, che è difficile collegarla al computer per caricare i sorgenti e che è ancora più difficile effettuare il debug.

Il Mini Quiz con ESP8266, cosa è

Il progetto Mini Quiz è un piccolo gioco a quiz, in cui le domande sono memorizzate su un sito Internet (così posso ampliare e modificare il set di domande senza toccare il software sul Mini Quiz) e vengono lette dalla scheda ESP8266-01 che preleva il testo, fa il parsing e mostra le domande sullo schermo Oled.

Per rispondere al quiz vengono utilizzati due pulsanti, gestiti tramite i pin GPIO0 e GPIO2. Le domande sono tutte con risposta binaria: vero/falso, sì/no. Il software sul Mini Quiz include un timer col tempo a scalare e un contatore del punteggio: +1 ad ogni risposta corretta e -1 ad ogni risposta errata.

E’ possibile avviare il dispositivo come access point, così si può configurare l’accesso wi-fi. E’ infatti necessario inserire i dati di accesso alla rete wi-fi per permettere al dispositivo Mini Quiz di collegarsi ad Internet per prelevare il file delle domande/risposte (spesso per rapidità si usa cablare nel sorgente user e password del proprio wi-fi, ma così non si può portare il Mini Quiz in un’altra casa, perché la connessione ad Internet non funzionerebbe).

Questo è il risultato del Mini Quiz assemblato e pronto per il gioco:

Oled e ESP8266-01, Mini Quiz

Le piccole dimensioni finali erano state pensate per farlo entrare nel case di un cellulare giocattolo recuperato tra i giochi delle mie figlie, e di cui volevo riutilizzare i bottoni per scegliere le risposte alle domande del Mini Quiz:

Oled mini quiz esp8266-01 case nokia cellulare giocattolo

Il Mini Quiz doveva entrare nel case di un vecchio cellulare giocattolo.

Tuttavia non ci sono riuscito. Pazienza. Tengo lì il case giocattolo, non butto via niente e lo metto nella scatola dei pezzi rotti.

Idee per l’assemblaggio di un progetto

Quando lavoro ad un progetto costruisco tutto sulla breadboard, con componenti e fili sparsi. Poi quando tutto sembra ok di solito procedo a caso a dare la forma finale al lavoro. Questa volta, invece, proprio perché volevo inserire tutto in un case, ho scoperto alcuni accorgimenti per incastrare le parti in maniera intelligente, in poco spazio.

Le parti importanti, cioè la scheda ESP8266 e lo schermo OLED sono infatti smontabili. E’ importante che la scheda ESP8266 sia smontabile perché bisogna toglierla e ricollegarla al PC per poter caricare il nuovo firmware. Lo schermo OLED è anch’esso smontabile e questo mi server per accedere all’alloggiamento della batteria. Che è una pila ricaricabile da 3.6 Volt.

oled mini quiz dettaglio esp8266 smontato

Qui un dettaglio della scheda forata che alloggia tutti i pezzi:

esp8266 oled mini quiz dettaglio

Segue lo schema del circuito e l’elenco dei componenti utilizzati.

Schema connessione OLED e ESP8266-01

Elenco componenti utilizzati:

Mi sono poi procurato un carica pile LIR2032, perché il Mini Quiz ha un’autonomia di una decina di minuti.

Il software è stato scritto con l’interfaccia Arduino IDE e utilizza le librerie ufficiali disponibili su Github sia per il modulo ESP8266 che per gli schermi OLED. I sorgenti del Mini Quiz sono disponibili qui.

Tra i vari sorgenti c’è il modulo wi-fi manager che è probabilmente la parte più utile e riutilizzabile per altri progetti, che permette di gestire la connessione ad Internet e la gestione del pannello di input dei dati via cellulare quando si attiva l’access point.

Caricare i sorgenti da Arduino IDE ad ESP8266-01

Il caricamento dei sorgenti dal PC alla scheda ESP8266 avviene attraverso la porta USB utilizando un Arduino UNO come “ponte”. Quando si usa un altro microprocessore come tramite per arrivare sulla ESP bisogna ricordarsi che l’Arduino “ponte” deve avere caricato un programma vuoto, che non fa nulla, se no qualunque output del programma di Arduino passa per i pin TX e RX e compromette la comunicazione con la ESP8266-01.

In alternativa si può utilizzare una scheda FTDI da collegare al computer al posto dell’Arduino.

Per avviare la scheda ESP8266 in modalità bootloader (o flashing mode), cioè per caricare il proprio programma sulla scheda, è necessario mettere il pin GPIO0 a GND (online si trovano un’infinità di articoli a proposito), quindi non è propriamente comodo e conviene costruirsi un circuito per fare quest’operazione più rapidamente possibile.

Il mio è fatto così:

boot uploader esp8266

Collegare un mini schermo OLED ad una scheda ESP8266-01

Come si vede dallo schema di collegamento la connessione I2C tra lo schermo e la ESP8266 avviene attraverso i pin TX e RX, perché i pin GPIO0 e GPIO2 vengono utilizzati dai due bottoni.

Questa situazione preclude l’utilizzo dei pin TX e RX come output sul serial monitor dell’interfaccia di sviluppo di Arduino. In pratica si fa il codice, si carica sulla scheda ESP (con modulo fatto a mano o con FTDI), si stacca la scheda ESP e la si collega nel proprio progetto.

Non è quindi possibile debuggare col serial monitor e il debug avviene per forza direttamente sul piccolo schermo Oled, dove in fase di sviluppo ho riservato gli ultimi 10×128 pixel dello schermo, in basso, per stampare messaggi di controllo del corretto funzionamento del software.

Tutti i sorgenti del Mini Quiz, nonché ulteriori informazioni tecniche, sono disponibili sul sito Hackaday.io.

 

Author

PHP expert. Wordpress plugin and theme developer. Father, Maker, Arduino and ESP8266 enthusiast.

Recommended

Hacking del sistema di irrigazione Claber

Modificare il sistema di irrigazione della Claber per utilizzarlo con Arduino e una app realizzata ad hoc

Novembre 1, 2019

Collegare il condizionatore al wifi

Il condizionatore di casa non è connesso ad Internet e non può essere azionato da remoto, possiamo migliorarlo e renderlo IOT? Ecco come controllare il condizionatore da remoto.

Giugno 16, 2019

#Fratellosole

Come riciclare vecchi cellulari e rientrare in contatto con la natura

Aprile 28, 2021

12 punti per scegliere il rivestimento conforme per il tuo PCB

Cos'è e come scegliere il rivestimento conforme (o conformal coating) quando si stampano i PCB

Settembre 11, 2020

Stampare PCB per i progetti con Arduino non è difficile (parte II)

Tra i miglioramenti possibili, uno dei più affascinanti e complessi è passare dalla breadboard al circuito stampato, cioè passare dall'ammasso di fili e componenti saldati o precariamente connessi al supporto solido, professionale e compatto della scheda elettronica.

Giugno 9, 2020

Dalla breadboard al circuito stampato (parte I)

Stufo di saldare? Proviamo a fare i PCB

Maggio 8, 2020