La
libreria U8G2.h è ben
documentata, quindi si possono sviluppare abbastanza
rapidamente diversi programmi con essa e la scheda didattica
e sperimentale (BDS). Ecco aluni esempi.
|
![]() Immagine in scala 1:1 della BDS configurata per il programma che controlla lo stato di due switch via Wi-fi |
Controllo con uno switch in
locale |
Questo
è un semplice programma per testare alcune funzioni di base
della basetta didattica e sperimentale (BDS) per ESP8266
OLED. Le funzioni sono banali: dopo aver caricato il programma, il LED1 è acceso e LED2 è spento; il buzzer è muto e sul display appere la scritta in azzurro "switch non attivo". Se si avvicina al dito al pulsante touch "BT1" integrato sulla basetta, il LED1 si spegne eil LED2 si accende; il buzzer emette un suono e sul display appere la scritta (in giallo) "switch attivato". |
Lo schema elettrico |
![]() |
Il
collegamento elettrico: -BP1 (Touch) -> ADC0 -LED1 -> GPIO4 -LED2 -> GPIO5 -BUZZER -> GPIO2 |
![]() Rendering della basetta didattica e sperimentale in scala 1:1 Si noti in basso a sinistra il buzzer sullo zoccolo GPO2 e il collegamento sulla destra tra lo zoccolo "AUX" e "DATA" BT1 (il pulsante touch) è parzialmente nascosto dal buzzer, solo per esigenze di render. |
Le
librerie utilizzate: Nota: per quanto possibile, scaricare sempre le librerie più aggiornate. Solo in caso non le trovaste, utilizzare quelle proposte nel sito. Clicca qui per imformazioni sull'installazione delle librerie |
Arduino.h Wire.h U8g2lib.h |
Nota
sul caricamento: si consiglia di inserire il buzzer su
GPO2 dopo aver caricato il programma, per
evitare un errore nel caricamento. |
Clicca
qui per visualizzare il programma Clicca qui per scaricare il programma in formato ".zip" |
|
Controllo con due switch in locale |
Anche
questo programma serve per un test leggermente più completo
del precedente. Se si preme il pulsante touch BT1 (o ci si avvicina ad esso): - il LED2 si accende; - il buzzer emette un suono; - sul display Oled appare: "switch1 attivato"; altrimente appare: "switch 1 NON attivo". Se si preme il pulsante touch BT2 (o ci si avvicina ad esso): - il LED1 si accende; - il buzzer emette un suono; - sul display Oled appare: "switch2 attivato"; altrimente appare: "switch 2 NON attivo" |
Lo schema elettrico |
![]() |
Il collegamento elettrico: -BP1 (Touch) -> GPIO13 -BP2 (Touch) -> GPIO15 -LED1 -> GPIO4 -LED2 -> GPIO5 -BUZZER -> GPIO2 |
![]() Rendering della basetta didattica e sperimentale in scala 1:1 Si noti in basso a sinistra il buzzer sullo zoccolo GPO2 e il collegamento sulla destra tra lo zoccolo "AUX" e "DATA" I pulsanti touch BT1 e BT2 sono parzialmenti nascosti dal buzzer, solo per esigenze di render. |
Le
librerie utilizzate: Nota: per quanto possibile, scaricare sempre le librerie più aggiornate. Solo in caso non le trovaste, utilizzare quelle proposte nel sito. Clicca qui per informazioni sull'installazione delle librerie |
Arduino.h Wire.h U8g2lib.h |
Nota
sul caricamento: si consiglia di inserire il buzzer su
GPO2 dopo aver caricato il programma, per
evitare un errore nel caricamento. |
Clicca
qui per visualizzare il programma Clicca qui per scaricare il programma in formato ".zip" |
|
Controllo con uno switch via
WiFi |
Questo
programma è simile al primo proposto, e serve per
testare alcune funzioni di base della basetta didattica e
sperimentale (BDS) per ESP8266 OLED. Le funzioni sono banali: dopo aver caricato il programma, il LED1 è acceso e LED2 è spento; il buzzer è muto e sul display appere la scritta in azzurro "switch non attivo". Se si avvicina al dito al pulsante touch "BT1" integrato sulla basetta, il LED1 si spegne eil LED2 si accende; il buzzer emette un suono e sul display appere la scritta (in giallo) "switch attivato". La differenza con il primo programma è che viene ativato anche il Wi-Fi, e quindi le informazioni sulla pressione del pulsante può essere visualizzata anche sul proprio browser, sempre che si resti all'interno della propria rete. |
Lo schema elettrico |
![]() |
Il collegamento elettrico: -BP1 (Touch) -> ADC0 -LED1 -> GPIO4 - LED2 -> GPIO5 - BUZZER -> GPIO2 |
![]() Rendering della basetta didattica e sperimentale in scala 1:1 Si noti in basso a sinistra il buzzer sullo zoccolo GPO2 i il collegamento sulla destra tra lo zoccolo "AUX" e "DATA" BT1 (il pulsante touch) è parzialmente nascosto dal buzzer, solo per esigenze di render. |
Le librerie utilizzate: Nota 1: per quanto possibile, scaricare sempre le librerie più aggiornate. Solo in caso non le trovaste, utilizzare quelle proposte nel sito. Nota 2: la libreria ESP8266WebServer.h viene installata insieme alle schede relative a ESP8266. Clicca qui per informazioni sull'installazione delle librerie |
Arduino.h Wire.h U8g2lib.h ESP8266WebServer.h |
![]() |
In
serire nel programma il nome della propria rete Wi-Fi e la
password. Caricare il programma. |
Prendere
nota dell'indirizzo IP che il router ha attibuoto alla
propria ESP8266 |
![]() |
Nota
sul caricamento: - si consiglia di inserire il buzzer su GPO2 dopo aver caricato il programma, per evitare un errore nel caricamento. - terminato il caricamento e trascorsi alcuni secondi, appena il nostro ESP8266 si aggancia alla rete Wi-Fi, apparirà sullo schermo Oled l'indirizzo IP del microcontroller, che dovremo poi scrivere sulla barra di indirizzo del browser per vedere le infomazioni da remoto. P.s.: nel caso dopo un tempo ragionevole non apparissero le informazioni sul display, eseguire un reset, premendo per qualche secondo il tasto "RST", alla destra del connettore USB. Le informazioni, sia dell'indirizzo IP che degli stati degli switch si possono vedere anche sul monitor seriale, che deve essere settato su 115200 bps. |
![]() |
Inserire
sul proprio browser preferito l'indirizzo della scheda (nel
mio caso: 192.168.1.158). Apparirà la seguente schermata. Ho provato ad immaginare di inserire un interruttore (per esempio di tipo magnetico) alla porta di entrata. Qaundo il contatto è chiuso, sul browser appare in verde "porta chiusa"; sul display OLED appare la scritta in blu "switch attivato". Viceversa quando il contatto è aperto, postulo che anche la porta lo sia. Perciò sul browser apparirà in rosso, con caratteri più evidenti la scritta "PORTA APERTA!" e sul display OLED in giallo "switch non attivo. Se è stato inserito il buzzer, emetterà un segnale di allarme. |
Nota
sul caricamento: si consiglia di inserire il buzzer su
GPO2 dopo aver caricato il programma, per
evitare un errore nel caricamento. |
Clicca
qui per visualizzare il programma Clicca qui per scaricare il programma in formato ".zip" |
|
Controllo con due switch via WiFi |
Questo
quarto programma ha una configurazione simile (ma non
uguale) di quello che controlla due switch in locale;
la differenza sostanziale è che invia anche le informazioni
via Wi-Fi alla propria rete. |
Il
funzionamento del programma |
Questo
programma sfrutta i due switch touch ed i tre led presenti
sulla basetta sperimentale. Di seguito si vedrà come
effettuare i collegamenti. Dopo aver caricato il programma e atteso per alcuni secondi, apparirà sul dispaly Oled l'indirizzo IP acquisito dalla scheda e lo stato degli switch; ho immaginato che la posto degli switch a bordo, la scheda sia collegato a due sensori magnetici, che verificano l'apertura o la chiusura di due porte.
|
Lo schema elettrico |
![]() |
Il collegamento elettrico: -BP1 (Touch) -> GPIO13 -BP2 (Touch) -> GPIO15 -LED1 -> GPIO4 -LED2 -> GPIO5 - LED3 -> GPIO0 -BUZZER -> GPIO2 |
![]() Rendering della basetta didattica e sperimentale in scala 1:1 Si noti in basso a sinistra il buzzer sullo zoccolo GPO2 e il collegamento sulla destra tra lo zoccolo "AUX" e "DATA" I pulsanti touch BT1 e BT2 sono parzialmenti nascosti dal buzzer, solo per esigenze di render. |
Le
librerie utilizzate: Nota 1: per quanto possibile, scaricare sempre le librerie più aggiornate. Solo in caso non le trovaste, utilizzare quelle proposte nel sito. Nota 2: la libreria ESP8266WebServer.h viene installata insieme alle schede relative a ESP8266. Clicca qui per informazioni sull'installazione delle librerie |
Arduino.h Wire.h U8g2lib.h ESP8266WebServer.h |
![]() |
In
serire nel programma il nome della propria rete Wi-Fi e la
password. Caricare il programma. |
Prendere nota dell'indirizzo IP che il router ha attibuoto alla propria ESP8266 |
![]() |
Nota
sul caricamento: - si consiglia di inserire il buzzer su GPO2 dopo aver caricato il programma, per evitare un errore nel caricamento. - terminato il caricamento e trascorsi alcuni secondi, appena il nostro ESP8266 si aggancia alla rete Wi-Fi, apparirà sullo schermo Oled l'indirizzo IP del microcontroller, che dovremo poi scrivere sulla barra di indirizzo del browser per vedere le infomazioni da remoto. P.s.: nel caso dopo un tempo ragionevole non apparissero le informazioni sul display, eseguire un reset, premendo per qualche secondo il tasto "RST", alla destra del connettore USB. Le informazioni, sia dell'indirizzo IP che degli stati degli switch si possono vedere anche sul monitor seriale, che deve essere settato su 115200 bps. |
![]() |
In
questa immagine scaricata dal browser, in cui uno switch è
attivato, mentre l'altro è disattivato, simulando una porta
aperta e una chiusa. |
Clicca
qui per vedere il programma Clicca qui per scaricare il programma in formato ".zip" |
Una stazione meteorologica con
BME280 |
Questo
programma trasforma la nostra basetta sperimentale in una
piccola stazione meteorologica, che si comporta però come
una tradizionale, fornendo la temperatura, l'umidità e la
pressione atmosferica. Tutto questo con un solo, minuscolo
componente: un BME280.
|
![]() Le informazioni rilevate da BME280 visualizzate dal display OLED. |
Lo
schema elettrico |
![]() |
Il sensore BME280 va collegato all'alimentazione a 3,3v. Mentre "SCL" sarà collegata a GPIO5 (clock) e "SDA" si connetterà a GPIO4 (data). Gli ultimi pin non saranno usati in questo progetto. Nota: per comodità, l'immagine è di ESP8266 standard. |
![]() La
basetta sperimentale con il sensore BMP280 in scala 1:1.
BMP280 è connesso allo zoccolo I2C2, adatto al protocollo I2C. |
Le
librerie utilizzate: Nota 1: per quanto possibile, scaricare sempre le librerie più aggiornate. Solo in caso non le trovaste, utilizzare quelle proposte nel sito. Clicca qui per informazioni sull'installazione delle librerie |
BME280I2C.h Wire.h U8g2lib.h |
Questo
programma è piuttosto semplice, e non richiede di
configurazioni particolari. Se si sono caricate le librerie necessarie e dopo aver trasferito il programma al microcontroller, darà immediatamente le informazioni richieste. Se si volesse trasmettere le informazioni via Wi-fi alla propria rete, si potrà utilizzare parte di questo programma, sviluppato per ESP8266 "standard", inserendo nello schetch attuale le righe di codice per inviare i dati in rete. Clicca qui per visualizzare il programma. Clicca qui per scaricare il programma in formato ".zip". |
![]() Ed ecco la fotografia in formato 1:1 della BDS con BME280 |
|
Una stazione meteorologica con BME280 e DUE dispaly |
Questo
programma serve a dimostrare una possibilità particolare di
questa libreria: gestire due display, ovvero quello
integrato, più un secondo display che utilizzi il protocollo
I2C. Oltre che una curiosità, questo sketch potrebbe essere utile nel caso si abbia la necessità di visualizzare le stesse informazioni in posti diversi. Al di là delle righe di codice necessario per gestire due display, il programma è uguale al precedente. |
![]() un display SSID1306 |
Lo
schema elettrico |
![]() |
Il sensore BME280 va collegato all'alimentazione a 3,3v. Mentre "SCL" sarà collegata a GPIO5 (clock) e "SDA" si connetterà a GPIO4 (data). Gli ultimi pin non saranno usati in questo progetto. Il display DDS1306 128x64 OLED si connette alle stesse porte di BME280, perchè entrambi seguono il protocollo I2C. Nota: per comodità, l'immagine è di ESP8266 standard. |
![]() La basetta sperimentale con il sensore BMP280 in scala 1:1. BMP280 è connesso allo zoccolo I2C2, adatto al protocollo I2C. Il secondo display, SSID1306 12x64 è connesso allo zoccoloI2C3. |
Le librerie utilizzate: Nota: per quanto possibile, scaricare sempre le librerie più aggiornate. Solo in caso non le trovaste, utilizzare quelle proposte nel sito. Clicca qui per informazioni sull'installazione delle librerie |
BME280I2C.h Wire.h U8g2lib.h |
Questo programma è piuttosto semplice, e non richiede di configurazioni particolari. Se si sono caricate le librerie necessarie e dopo aver trasferito il programma al microcontroller, darà immediatamente le informazioni richieste. Se si volesse trasmettere le informazioni via Wi-fi alla propria rete, si potrà utilizzare parte di questo programma, sviluppato per ESP8266 "standard", inserendo nello schetch attuale le righe di codice per inviare i dati in rete. Clicca qui per visualizzare il programma. Clicca qui per scaricare il programma in formato ".zip". |
|
Controllo
qualità dell'aria + temperatura e umidità con SGP30 e
DHT11 |
L'ultimo
programma che viene presentato per testare la libreria
U8G2.h è piuttosto interessante perchè, oltre a indicare la
temperatura e l'umidità (la presentazione di questi due soli
parametri è piuttosto inflazionata!), mostra quattro
parametri per monitorare la qualità dell'aria. Vengono usati
due sensori: DHT11 e SGP30. Il programma sviluppato è piuttosto semplice, ma aggiungendo qualche riga di codice è possibile visualizzare i dati su due display e anche inviarli su internet e vederli in ogni parte del mondo con Thingspeak. Qui trovi i rimandi ai programmi che ti aiuteranno a modificare il programma per ottenere questi obiettivi. |
![]() La visualizzazione dei parametri |
![]() DHT11 |
I
due sensori necessari: DHT11 per rilevare la
temperatura e l'umidità; SGP30 per misurare: TVOC, ovvero "composti organici volatili"; H2, la presenza di idrogeno; CO2; anidride carbonica; EtOH, Etanolo, o alcol etilico (C2H6O oppure EtOH). Attenzione: SGP30 è venduto con due piedinature diverse. Il modello "1" va inserito sullo zoccolo I2C3; il modello "2" va inserito sullo zoccolo I2C1. |
Tipi
di SGP30
|
Lo
schema elettrico |
![]() |
Il
sensore temperatura/umidità DHT11 va collegato sulla porta
GPIO0; mentre SGP30 segue il protocollo I2C, per cui SCL si
connette su GPIO5 e SDA su GPIO4 |
![]() Il rendering della basetta sperimentale in scala 1:1. DHT11 si connette sullo zoccolo DG1, mentre SGP30 si connette sullo zoccolo I2C2. Vedi nota iniziale. Fare attenzione a connetterlo sui pin corretti. |
Come
sempre, per prima cosa, è necessario essere certi di aver
installato le librerie necessarie. Sulla destra si legge l'elenco. Il loro utilizzo è piuttosto intuitivo: DHT.h serve per gestire DHT11; Wire.h serve a connettere al protocollo I2C; Adafruit_SGP30.h è relativo a SGP30. Nota: per quanto possibile, scaricare sempre le librerie più aggiornate. Solo in caso non le trovaste, utilizzare quelle proposte nel sito. |
DHT.h Wire.h Adafruit_SGP30.h |
![]() |
Queste
linee di programma servono per stabilire il tipo di sensore
che si sta utilizzando: DHT11, DHT21 o DHT22, e inserire i
giusti parametri, altrimenti si leggeranno dei valori
incoerenti. Nota: ho acquistato sia da Amazon che Aliexpress dei sensori come DHT11, ma in realtà erano DHT22! Sostituiti i paramentri, tutto ha funzionato regolarmente. |
![]() L'immagine della BDS in scala 1:1. Si noti che il sensore SGP30 è posto sullo zoccolo I2C1. DHT11 è inserito su DG1. |
Clicca
qui per visualizzare il programma Clicca qui per scaricare il programma in formato ".zip" |