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.

January 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

I'm a software engineer, an everyday web developer and a maker. I usually build sites with PHP, within or without WordPress. I build Internet of Things with Arduino and ESP8266. I'm the founder of Rockit.it and Dailybest.it and I'm actually the Chief Technical Officer of Better Days web agency.

Comments on “ESP8266-01 e schermo OLED: Mini Quiz”

Leave a Reply

Your email address will not be published. Required fields are marked with an *

Recommended

Dart Fener parlante con Arduino Nano e DF player mini mp3

Un Dart Fener parlante: ti metti davanti a lui e gli parli e lui risponde con delle frasi rigorosamente a caso, tratte del film

April 23, 2018

Vintage Lael retrofit, the gallery

Pictures from the retrofitting of the old Lael voltmeter

March 10, 2017

Retrofitting of a vintage Lael Tester from 1955

I've learned a lot of things by disassembling and changing the way an old tester works

March 1, 2017

Orari trenord, corri solo quando ce n’è bisogno

Hai presente quando corri in stazione per prendere il treno al volo e, quando arrivi, ti accorgi che il treno ha 12 minuti di ritardo?

March 30, 2017

WPLight, a deeper look inside the project

Some more informations about the WPLight system

December 13, 2016

Ultrasonic gun from a gun toy with Arduino

Guns are always bad, I don’t like guns. This is a summary of a project born to play. I’ve found…

November 30, 2016