Ethical DIY

Progetti hardware & software etici


Menu orizzontale con sottomenu CSS















Versione di ESP32

NodeMCU ESP32 (standard)

ESP32 - Cam (con telecamera)

ESP32 CYD (con display)



La basetta sperimentale (BDS)

La basetta sperimentale (BDS)  per ESP32x

Download dei file necessari

Assemblare la basetta sperimentale

Il settaggio della basetta

La  piedinatura di ESP32 e la gestione delle porte (GPIOx)

Le cinque  configurazioni della basetta sperimentale (BDS)

Elenco dei sensori/attuatori testati per ogni slot di collegamento

Programmi di test per la basetta
didattica e sperimentale




Informazioni di base:

- Come installare la IDE di Arduino
- Configurazione della IDE 
- Caricamento dei programmi
- Il problema dei permessi sulle porte seriali con Linux
- Come caricare le librerie necessarie

I sensori/attuatori compatibili con ESP32





Programmi per ESP32x

Programmi di test per la BDS
Programmi con display LVGL
Stazioni meteorologiche
Programmi vari
Programmi con Telegram
Programmi con ThingSpeak
Programmi con il DB Firebase
Programmi con MQTT (Mosquitto)









 















ESP32
Programmi con display LVGL

<b>Javascript HTML:it - Demo Slideshow con effetto fade</b>
ESP32S_DSP ESP32 ESP32 ESP32_Dsp ESP32 ESP32 ESP32 ESP32_LGVL
   
In questa pagina verranno illustrati alcuni programmi che utilizzano un video LVGL
da 2.8". Questo display, specialmente nella versione "touch", che costa poco di più della versione base, è molto versatile e si può trovare sul Web anche a meno di 10 €.

Questo display, specialmente nella versione touch, ha ben 13 pin; nella nostra BDS esiste uno zoccolo apposito, quindi non ci sarà alcun problema di connessione.

I programmi che usano poche periferiche, possono essere utilizzati anche con un  ESP32 con display LVGL integrato, perchè  le porte disponibili sono poche. Ma nel caso che si usino sensori con protocollo I2C,
si possono scrivere anche programmi piuttosto complessi che daranno molte soddisfazioni.

In questa sessione verrà espressamente indicato il caso in cui i programmi presentati non siano adeguati per
ESP32 con display LVGL integrato.

Il display verrà inserito sullo zoccolo "Display LVGL".
Sono raccolti alcuni programmi che ho trovato interessanti e divertenti, per la maggior parte presi dal sito "randomnerdstutorials", scritti e documentati perfettamente, una garanzia di ottimo funzionamento.
Per alcuni di essi ho apportato piccole modifiche, ma credo di essere più a mio agio nella progettazione delle schede, piuttosto che come programmatore...









Programmi per ESP con display LVGL





Ed ecco alcuni programmi che utilizzano il display LVCD touchscreen da 2.8":










Istruzioni (sintetiche) per la configurazione





La gestione delle librerie

Il display LVGL darà molte soddisfazioni, però è necessario configurarlo correttamente. In questo modo funzionerà immediatamente e senza problemi. Ecco i passi necessari:
  • E' necessaria la libreria LVGL (Light and Versatile Graphic Library). Puoi scaricare la libreria LVGL versione 9.2.2 by kisvegavor direttamente dalla IDE di arduino, oppure  clicca qui per scaricare la libreria dalla repository di Github. Se vuoi accedere alla documentazione e agli esempi, clicca qui.
  • Poi installa la libreria  TFT_eSPI. Puoi scaricare la libreria aggiornata dalla IDE di Arduino.
  • Con lo stesso metodo della libreria precedente, scarica anche XPT2046_Touchscreen.

Clicca qui per informazioni sull'installazione delle librerie dalla IDE di Arduino.

Nel caso tu abbia problemi nello scaricare le librerie, le puoi sempre trovare qui, sebbene non siano le più aggiornate:
TFT_eSPI.h
lvgl.h
XPT2046_Touchscreen.h







La preparazione del file di configurazione (Windows/GNU Linux)

  • Clicca qui per scaricare la cartella compressa (zip) che contiene il file User_Setup.h.
    Se non si è scelto diveramente, essa è stata scaricata nella cartella di sistema "Scaricati" o "Downloads". Scompattare la cartella e recuperare il file User_Setup.h.
  • Aprire la IDE di Arduino, cliccare sulla linguetta "File", poi "Impostazioni" o "preferencies", dipende dalla lingua impostata. Apparirà una finestra simile:
    impostaz
    Prendere nota di questo percorso. Su Windows sarebbe qualcosa di simile: "C:\Users|ricx\....".
    Perciò, nel mio caso, la cartella
    dove sono salvate le librerie è: "/home/ricx/Arduino/libraries/".
  • Aprire la cartella "libraries. Al suo interno dovresti trovare:

    lib1
    Il percorso sarà simile a questo: /home/ricx/Arduino/libraries/TFT_eSPI/ . Aprire la libreria TFT_eSPI.
    Al suo interno troverai il file originale "User_setup.h":
    lib2
    Recuperare il file User_setup.h e sostituirlo a quello originale, presente nella cartella di TFT_eSPI.

  • Ora è necessario scaricare la cartella compressa contenente il file lv_conf.h. Clicca qui per scaricarla.
    Se non si è scelto diveramente, essa è stata scaricata nella cartella di sistema "Scaricati" o "Downloads". Scompattare la cartella e recuperare il file lv_conf.h.
    Spostare il file lv_conf.h nella cartella
    "/home/ricx/Arduino/libraries/". Attenzione: non spostare all'interno alla cartella della libreria lvgl !

  • lv_c
      
    Nota importante: se verranno usati altri file User_Setup.h e lv_conf.h scaricati da Internet, è probabile che non funzionino.
    Nel caso che si aggiornino le librerie, è necessario ripeterela procedura, e inserire i file nella posizione corretta.


    La procedura appare piuttosto lunga e complessa, ma può essere eseguita in pochi minuti

    Le informazioni sono state reperite dal sito "randomnerdstutorials". A questo link puoi trovare le informazioni complete (in inglese): https://randomnerdtutorials.com/lvgl-esp32-tft-touchscreen-display-ili9341-arduino/




La corrispondenza dei pin tra il display e ESP32:


Display LGVL
T_IRQ
T_OUT
T_DIN
T_CS
T_CLK
SDO (MISO)
LED
SCK
SDI (MOSI)
D/C
RESET
CS
GND

ESP32
GPIO 36

GPIO 39
GPIO 32
GPIO 33
GPIO 25
GPIO 12
GPIO 21
GPIO 14
GPIO 13
GPIO   2
EN/RESET
GPIO 15
GND
Questa tabella è stata fornita solo per comletezza.
Usando la basetta didattica e sperimentale (BDS),
è stato predisposto uno zoccolo (Dispaly LVGL)
su cui connettere il display che rispetta esattamente
la sequenza, corretta,  per cui non è necessario preoccuparsene.

slot
Evidenziato lo zoccolo per il display





 
   

Un completo programma per GPS





Per questo programma è sufficiente inserire il sensore GPS NEO-6MV2 sullo zoccolo GPS1 (quello più esterno); mentre NEO-7 deve essere connesso sullo zoccol GPS2 (quello più interno).
Questo programma mostra oltre la latiudine, longitudine e altezza sul livello del mare, anche la velocitàdel soggetto, il satellite a cui si è collegati, la data e l'ora attuale.

part



Attenzione: bisogna dotare il sensore GPS di un'antenna.  Poichè i muri di casa rendono debole il segnale, è necessario porre sempre la BDS vicino a una finestra o comunque in contatto con l'esterno. Il sensore impiega da 2 a 5 minuti per agganciare i satelliti. Quindi armarsi di pazienza e non pensare che il vostro sensore sia difettoso.
Se si spegne il circuito e lo si riaccende dopo poco, la ricerca è molto più veloce.
Sia NEO6MV2 che NEO7M lampeggiano quando sono connessi. Dopo pochissimi secondi si vedranno le informazioni sul display.







gps_orizz
L'immagine della basetta didattica e sperimentale (BDS) leggermente rimpicciolita
con il sensore GPS NEO6MV2 (con l'antenna)connesso sullo zoccolo GPS1.



Lo schema elettrico

neo

Come si può intuire, lo schema elettrico è piuttosto complesso.
Ma utilizzando la BDS, tutto diventa molto facile e veloce.
P.s.: sul'immagine del dosplay appare un'alimentazione a 4v, ma si userà +3,3v.



Il piedino "RX" del sensore NEO6MV2 è connesso su GPIO18; il pin "TX" è connesso a GPIO17.



Alcune considerazioni sul programma



Gli zoccoli GPS1/GPS2 sono connessi ai Jumper J7 (trasmissione TX) e J8 (ricezione RX), in grado di selezionare la porta di trasmissione tra GPIO17 e GPIO35 e la porta di ricezione tra GPIO18 e GPIO27, che possono essere selezionate indipendentemente l'una dall'altra. Questa scelta è stata fatta per evitare il più possibile dei conflitti, in particolare con l'uso di GPIO27, che spesso viene utilizzato anche per le periferiche che usano il protocollo I2C per SDA (trasmissione dati).

j78
Le linee di programma in cui sono inserite le GPIO relative alla trasmissione dei dati.
Le "//"  indicano che ciò che segue sono commenti. Di seguito appaiono le alternative alle porte utilizzate.



image

Sulla parte sinistra del video appare un'immagine, denominata "gps_image.h". Deve essere presente nella stessa cartella in cui è contenuto il programma. Nel file del programma ".zip" sono contenute intrambe.



Questo programma, che è molto interessante, non richiede di per sè particolari personalizzazioni, se non quello delle porte di connessione e dell'immagine.
Lo studio dello sketch permette di iniziare a comprendere la tencica, non del tutto immediata, della gestione delle scritte sullo schermo. La mia gratitudine va come sempre ai curatori del sito "randomnerdtutorials", per la qualità dei loro programmi e delle spiegazioni. Il programma che ho utilizzato per la BDS si trova a questo link: https://randomnerdtutorials.com/esp32-tft-lvgl-gps-data/





Le librerie necessarie:

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.

Attenzione: per usare il display LVGL da 2.8" non è sufficiente caricare le librerie necessarie, ma è richiesta anche una piccola configurazione. Clicca qui per visualizzare la pagina con le info.

TFT_eSPI.h

lvgl.h

TinyGPS++.h



Clicca qui per visualizzare il programma
Clicca qui per scaricare il programma e l'immagine in formato "zip"

Nota: nel programma è stato inserito GPIO17 come TX e GPIO18 come RX.











Un rilevatore di temperatura con il sensore DS18B20




Questo programma mostra sul display LVGL l'indicazione grafica su di un arco di cerchio (curva Gauge) della temperatura rilevata dal sensore Dallas 18B20.
Il sensore può essere acquistato su schedina (KY-001 oppure HW-506, completo di resistenza e di led indicatore della rilevazione della temperatura; oppure si può utilizzare in componente singolo. In questo caso è necessario inserire una resistenza da 27 KOhm tra il positivo dell'alimentazione e il segnale.
Questo sensore ha una particolarità: poichè possiede un suo indirizzo interno, se ne possono collegare alcuni in parallelo, attestandoli sulla stessa porta di ESP32.

18b20
il sensore 18B20



temp
La BDS, in scala 1:1.
Il sensore 18B20 (su scheda) è connesso sullo zoccolo "DA4".

Se la temperatura è inferiore o uguale a 10° C, la scritta appare in blu;
se è compresa tra 10 e 28°C, la scritta appare in verde;
se è uguale o superiore a 29°, appare in rosso.



Lo schema elettrico

001

Il sensore su scheda è stato connesso sullo zoccolo DA4, e il piedino di segnale si collega al GPIO27 di ESP32.

La corrispondenza dei pin:

DS18B20
S(ignal)

ESP32       
GPIO 27       

Per la corrispondenza dei pin
tra Display LVGL e ESP32
vedi in capitolo dedicato
          







Le librerie necessarie:

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

Attenzione: per usare il display LVGL da 2.8" non è sufficiente caricare le librerie necessarie, ma è richiesta anche una piccola configurazione. Clicca qui per visualizzare la pagina con le info.

lvgl.h
TFT_eSPI.h
lvgl.h
OneWire.h
DallasTemperature.h




Il programma non richiede configurazioni particolari, se non:
  • il limite minimo e massimo della temperatura rilevata:
    minimo: -20° C;
    massimo: +40° C.
    Naturalmente questi parametri, che influiscono sulla scala, possono essere variati a piacere, considerando che il sensore lavora in una gamma compresa tra -55° e +125°C
    mmx
  • la temperatura limite per cui le scritte cambiano colore.rgb
    In queste righe di codice si vede chiaramente i parametri inseriti per cambiare i colori. Naturalmente anche questi parametri possono essere variati.
    Diventa molto facile inserire alcune righe di codice per gestire un paio di relè; uno per esempio che attivi automaticamente una caldaia o una stufa se la temperatura scende sotto il minimo; un secondo che accenda un condizionatore se viene superato il massimo.
Studiando il programma, si può imparare come creare e gestire una curva Gauge per le proprie applicazioni.





Clicca qui per visualizzare il programma
Clicca qui per scaricare il programma in formato ".zip"

Ho utilizzato il programma scaricandolo da "
randomnerdtutorials ", che ringrazio come sempre. Ecco il link:
https://randomnerdtutorials.com/esp32-lvgl-ds18b20-tempreature-tft-display/











Un termostato automatico con DS18B20




Questo sketch non è che un piccolo perfezionamento di quello precedente. Sono state solo aggiunte alcune righe per gestire, in modo del tutto autonomo, due relè; uno che si attiva se la temperatura scende sotto un minimo e può quindi attivare un riscaldamento, quale una caldaia a gas, una stufa a pellet ouna stufa elettrica; un secondo relè che si attiva se la temperatura supera un massimo, accendendo un condizionatore o un ventilatore.
Il sensore utilizzato è sempre un Dallas DS18B20 (KY-001 o HW506). I relè utilizzati sono i KY-019 su schedina, ma possono essere utilizzati altri relè che funzionino a 5v (spesso funzionano anche a +3,3v).

Attenzione: progetti che richiedano di collegare apparecchi alla rete elettrica sono potenzialmente pericolosi. Affidarsi sempre a personale qualificati e non lasciare attivi i circuiti senza una supervisione umana.

rele
Un relè KY-019



temp_c
Immagine leggermente rimpicciolita della BDS.
Si notino nei riquadri verdi i due relè
e nel riquadro blu il sensore DS18B20.



Il relè sulla sinistra della foto, posto sullo zoccolo DA3 (GPIO18) si attiva se la temperatura è sotto la soglia minima; il relè a destra, alloggiato sullo zoccolo BZ1 (GPIO26) si attiva se la temperatura supera la soglia massima. Il sensore di temperatura DS18B20 è inserito sullo zoccolo DA4 (GPIO27), come per il programma precedente.





cold
Temperatura fredda: colore azzurro. Si attiva il relè su DA3 (GPIO18)

okTemperatura ottimale.: colore verde. Nessun relè attivato.

hotTemperatura calda: colore rosso.
Si attiva il relè su BZ1 (GPIO27)



Lo schema elettrico



2
Lo schema elettrico è piuttosto intricato. Utilizzando la BDS si evitano problemi ed errori.







La corrispondenza dei pin:

DS18B20
S(ignal)

Relè 1                                   
S(ignal)
Relè 1
S(ignal)

ESP32
GPIO 27


GPIO 18                    

GPIO 26

Per la corrispondenza dei pin
tra Display LVGL e ESP32,
vedi in capitolo dedicato.







Considerazioni sul programma



Il programma è molto simile al precedente. sono solo state apportate alcune piccole, ma sostanziali modifiche, quali l'inserimento di due relè, con le relative righe di configurazione:



2r

il sensore DS18B20 è sempre connesso sul GPIO27 (DA4); un primo relè che si attiva se c'è freddo, connesso su GPIO18 ((DA3); un secondo relè collegato su GPIO26 (BZ1), attivato se c'è troppo caldo.



Le due linee seguenti servono per impostare la temperatura minima (attualmente uguale o minore a 18°) e quella massima, uguale o maggiore a 28°.
Naturalmente questi parametri possono essere tranquillamente variati.

mm



Le linee seguenti servono per attivare i relè:

ctr_tmp
Le righe seguenti esprimono il seguente concetto:
  • se la temperatura è inferiore al minimo (min_temp), si attiva il relè per attivare il riscaldamento (relayC);
  • se la temperatura è comresa tra il minimo (min_temp) e il massimo (max_temp) della temperatura, non fare nulla: sia relayC e relayH son spenti (LOW);
  • altrimenti (se la temperatura è maggiore a quella massima), attivare il relè per il raffreddamento (relayH).

Nota: alcuni relè commerciali funzionano con logica inversa rispetto ai relè KY-019. in questo caso è sufficiente sostituire in queste righe HIGH con LOW.





Le librerie necessarie:

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

Attenzione: per usare il display LVGL da 2.8" non è sufficiente caricare le librerie necessarie, ma è richiesta anche una piccola configurazione. Clicca qui per visualizzare la pagina con le info.

lvgl.h
TFT_eSPI.h
lvgl.h
OneWire.h
DallasTemperature.h



Clicca qui per visualizzare il programma
Clicca qui per scaricare il programma in formato ".zip"

Ho utilizzato il programma scaricandolo e poi modificandolo da "
randomnerdtutorials ", che ringrazio come sempre. Ecco il link: https://randomnerdtutorials.com/esp32-lvgl-ds18b20-tempreature-tft-display/








Grafico della temperatura con BME280




bme280
BME280


Questo programma usa un sensore molto usato: un BME280, che misura la temperatura, la pressione e l'umidità. In questo caso viene presa il considerazione solo la temperatura, che viene rappresentata sottoforma di grafico, con un effetto molto piacevole.

grafico



graf
La BDS, in scala 1:1.
Il sensore BME280 è posto sullo zoccolo I2C2

Nota: il sensore BME280 segue il protocollo I2C, e connete "SDA" sul GPIO27, mentre SCL su GPIO22.
Affinchè quest sia rispettato, è necessario ceh il jumper  "SDA", evidenziato dal rettangolo verde, sia posto su "P27".
Attenzione: il connettore I2C2
ha sei pin, mentre il sensore BME280 ne ha solo quattro. Porre cura nel posizionarlo correttamente.



Lo schema elettrico



280_5




La corrispondenza dei pin:

BME280
SDA
SCL


ESP32
GPIO27
GPIO22


Per la corrispondenza dei pin
tra Display LVGL e ESP32,
vedi in capitolo dedicato.
Nota: il sensore BME280 segue il protocollo I2C, e connete "SDA" sul GPIO27, mentre SCL su GPIO22.
Affinchè quest sia rispettato, è necessario che il jumper  "SDA", evidenziato dal rettangolo verde, sia posto su "P27".

Attenzione
: il connettore I2C2
ha sei pin, mentre il sensore BME280 ne ha solo quattro. Porre cura nel posizionarlo correttamente.



Considerazioni sul programma.



Questo programma non richiede particolari configurazioni. l'unico aspetto importante è relativo al protocollo I2C: SDA si connette su GPIO27, mentre SCL si collega a GPIO22, come evidenziato anche nella tabella precedente.

i2c



Le librerie necessarie:

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

Attenzione: per usare il display LVGL da 2.8" non è sufficiente caricare le librerie necessarie, ma è richiesta anche una piccola configurazione. Clicca qui per visualizzare la pagina con le info.

lvgl.h
TFT_eSPI.h
XPT2046_Touchscreen.h
Wire.h
Adafruit_Sensor.h
Adafruit_BME280.h



Clicca qui per visualizzare il programma
Clicca qui per scaricare il programma in formato ".zip"



Puoi trovare le informazioni complete sul programma sul sito "randomnerdstutorials" alla pagina https://randomnerdtutorials.com/esp32-tft-lvgl-line-chart/








Una stazione meteorologica con BME280




ky018
KY-018 sensore
di luminosità

Il secondo programma con BME280 ha una configu-razione simile al precedente, con l'aggiunta di un sensore di luminosità KY-018.
Sul display troveremo molte informazioni: temperatura, umidità, pressione, luminosità, data e ora, indirizzo IP di ESP32.
Premendo il pulsante verde con due freccie, si ottiene l'aggiornamento dei dati; scorrendo sulla barra laterale, si vedono le ulteriori informazioni.

data




data280
La BDS, in scala 1:1.
Il sensore BME280 è posto sullo zoccolo I2C2 (riquadro blu),
mentre il sensore di luminosità KY-018 è inserito nel riquadro arancio.


Nota: il sensore BME280 segue il protocollo I2C, e connete "SDA" sul GPIO27, mentre SCL su GPIO22.
Affinchè quest sia rispettato, è necessario che il jumper  "SDA", evidenziato dal rettangolo verde, sia posto su "P27".

Attenzione
: il connettore I2C2
ha sei pin, mentre il sensore BME280 ne ha solo quattro. Porre cura nel posizionarlo correttamente.
Il sensore di luminosità KY-018 è inserito sullo zoccolo DA2; il pin di dati è connesso su GPIO35, per mantenere la compatibilità anche con ESP32 con il display LVGL integrato.



Lo schema elettrico



5



La corrispondenza dei pin: 

BME280
SDA
SCL

KY-018
S(ignal)


ESP32
GPIO27
GPIO22


GPIO35

Per la corrispondenza dei pin
tra Display LVGL e ESP32,
vedi in capitolo dedicato.







Considerazioni sul programma.



Poichè alcune informazioni verranno reperite sul web, è necessario connettersi alla propria rete Wi-Fi


ssid



time

E inserire il fuso orario dell'Italia (Roma)



Le librerie necessarie:

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

Attenzione: per usare il display LVGL da 2.8" non è sufficiente caricare le librerie necessarie, ma è richiesta anche una piccola configurazione. Clicca qui per visualizzare la pagina con le info.

lvgl.h
TFT_eSPI.h
XPT2046_Touchscreen.h
Wire.h
Adafruit_Sensor.h
Adafruit_BME280.h
ArduinoJson.h
HTTPClient.h




Clicca qui per visualizzare il programma
Clicca qui per scaricare il programma in formato ".zip"





Puoi trovare le informazioni complete del programma sul sito "randomnerdstutorials" alla pagina
https://randomnerdtutorials.com/esp32-tft-lvgl-display-bme280-data-table/










Un orologio digitale controllato via Web




Il programma che verrà illustrato adesso è un semplice ma preciso orologio digitale che richiede la connessione a Internet, perché si connette ad un sistema che fornisce l'ora e la data esatta in tutto il mondo.

Questo sketch, al di là del display LVGL, non richiede componenti aggiuntivi.

clock



clock
La BDS in formato 1:1 con il display LVGL che mostra data e ora esatta

Lo schema elettrico
sc_clock
Oltre al display LVGL, non sono necessari componenti accessori.

Per la corrispondenza dei pin tra Display LVGL e ESP32, vedi in capitolo dedicato.







Considerazioni sul programma



Il programma richiede poche personalizzazioni.
Poichè alcune informazioni verranno reperite sul web, è necessario connettersi alla propria rete Wi-Fi


ssid




time

E inserire il fuso orario dell'Italia (Roma)



Le librerie necessarie:

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

Attenzione: per usare il display LVGL da 2.8" non è sufficiente caricare le librerie necessarie, ma è richiesta anche una piccola configurazione. Clicca qui per visualizzare la pagina con le info.

lvgl.h
TFT_eSPI.h
WiFi.h
ArduinoJson.h
HTTPClient.h



Clicca qui per visualizzare il programma
Clicca qui per scaricare il programma in formato ".zip"

Puoi trovare le informazioni complete del programma sul sito "randomnerdstutorials",
alla pagina https://randomnerdtutorials.com/esp32-tft-lvgl-digital-clock/








Previsioni del tempo





Tutti noi siamo condizionati dal tempo atmosferico. Questo programma, connettendosi a Open_meteo, che fornisce accurate un'accurata situazione del tempo. Per cui è necessario effettuare un collegamento a Internet.
Sullo schermo apparirà sinteticamente la sitazione attuale del tempo, anche rappresentata graficamente con un'immagine, la temperatura, l'umidità, la data dell'ultimo aggiornamento e il logo di riferimento.

Questo sketch, al di là del display LVGL, non richiede componenti aggiuntivi.

tempo
La situazione meteorologica



t1
La BDS in scala 1:1.
In questa stagione, purtroppo a Piacenza il tempo è spesso nuvoloso...



Lo schema elettrico

sc_clock
Oltre al display LVGL, non sono necessari componenti accessori.
Per la corrispondenza dei pin tra Display LVGL e ESP32, vedi in capitolo dedicato.







Considerazioni sul programma




Il programma richiede alcune  personalizzazioni.
Poichè alcune informazioni verranno reperite sul web, è necessario connettersi alla propria rete Wi-Fi


ssid



data
         
Per ottenere una situazione accurata, è necessario inserire la latitudine e la longitudine del proprio luogo di residenza, il nome della località e
il fuso orario dell'Italia (Roma)



Le librerie necessarie:

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

Attenzione: per usare il display LVGL da 2.8" non è sufficiente caricare le librerie necessarie, ma è richiesta anche una piccola configurazione. Clicca qui per visualizzare la pagina con le info.

                                
lvgl.h
TFT_eSPI.h
WiFi.h
ArduinoJson.h
HTTPClient.h



Attenzione: per visualizzare l'immagine relativa alla situazione meteorologica, è necessario salvare nella stessa cartella del programma il file-immagine "weather_images.h. Clicca qui per scaricarlo in formato "zip".
Comunque, se si scarica il programma in formato zip (vedi sotto), l'immagine è già salvata nel file compresso.





Clicca qui per visualizzare il programma
Clicca qui per scaricare il programma in formato ".zip"

Puoi trovare le informazioni complete del programma sul sito "randomnerdstutorials",
alla pagina https://randomnerdtutorials.com/esp32-tft-lvgl-weather-station/










Come caricare un'immagine





Questo programma è molto carino: permette di caricare un'immagine sul display, in modo da impreziosire i propri programmi, dotandoli di uno sfondo personalizzato.

Verrà insegnato anche come modificare l'immagine affinchè il microcontroller la possa caricare e visualizzare sul display.

L'immagine può avere una dimensione massima di 240 x 320 (H x L) pixels.

tux
il simpatico pinguino Tux, mascotte
di GNU/Linux



tuxo
La BSD in scala 1:1




Lo schema elettrico

sc_clock
Oltre al display LVGL, non sono necessari componenti accessori.
Per la corrispondenza dei pin tra Display LVGL e ESP32, vedi in capitolo dedicato.







Considerazioni sul programma



Il programma non richiede personalizzazioni particolari. E sufficiente che nella stessa cartella del proramma sia contenuta anche l'immagine, dal nome "image.h".





Le librerie necessarie:

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

Attenzione: per usare il display LVGL da 2.8" non è sufficiente caricare le librerie necessarie, ma è richiesta anche una piccola configurazione. Clicca qui per visualizzare la pagina con le info.


lvgl.h
TFT_eSPI.h







Come creare l'immagine da caricare sul display



Prima di tutto è necessario selezionare un'immagine (preferibilmente in formato "jpg") dalle dimensioni massime di 240 x 320 (H x L) pixels.

Andare sul sito Web del convertitore di immagini LGVL: lvgl.io/tools/imageconverter
Selezionare le seguentiopzioni sulla pagina di conversione appena aperta:
- Version: LVGL v9
- Color format: ARGB8888

Selezionare l'immagine da convertire e cliccare su "Convert button"

paperino
converter
Le operazioni da compiere sul programma di conversione.

L'immagine verrà salvata con l'estensione ".c"; per esempio, "paperino.jpg" verra salvata dopo la conversione come "paperino.c".
Aprire l'immagine e salvare in memoria tutta la stringa di dati compresa tra le due graffe "{ }". Non preoccuparsi se i dati sembrano tantissimi!
 
image
Esempio dei dati da copiare



Scarica questa "image.h", aprila e sostituisci all'interno tutti i dati presenti tra le parentesi graffe "{ }" con i dati che hai precedentemente salvato dalla conversione della tua immagine, per esempio "paperino.c"
In fondo ai dati troverai le dimensioni dell'immagine precedente; sostituisci la larghezza e l'altezza in pixel, salva e il gioco è fatto!

datah
Ora non ti resta che salvare la tua "image.h" nella cartella in cui è stato salvato il programma. Lancialo e dopo pochi secondi, se hai fatto tutte le operazioni correttamente, vedrai apparire l'immagine sul tuo display.





Nota: nella cartella zippata, oltre al programma troverai già un immagine "image.h". Se lanci il programma immediatamente, sullo schermo apparirà il pinguino Tux. Ma nella stessa cartella troverai altre immagini di test:
"image_paperino.h"; "image_fiona.h", "image_bear.h" e anche "image_tux.h". E sufficiente cancellare o rinominare l'attuale image.h" e rinominare quella che si desidera, per esempio "image_paperino.h" in "image.h", lanciare il programma e sul display apparirà un festante paperino!
Nella sottocartella "image" troverai sia ile immagini in formato ".jpg", che appena convertite in ".c", sia salvataggio che per eventuali ulteriori test.





Clicca qui per visualizzare il programma
Clicca qui per scaricare il programma in formato ".zip". All'interno della cartella troverai anche alcune immagini di test. 





Puoi trovare le informazioni complete del programma sul sito "randomnerdstutorials",
alla pagina https://randomnerdtutorials.com/esp32-tft-display-image-lvgl-arduino/
Come sempre ai curatori di randomnerdtutorials va tutta la mia gratitudine.




Per contatti: info@ethicaldiy.org