Blog
Librerie ESP32: installare, usare, riparare
Installare una libreria è la metà facile; la difficile è il mismatch di versione che rompe il build dopo. Dove vivono, come sceglierne una funzionante e cosa fare se l’esempio non compila.
Come installare una libreria ESP32 in Arduino?
Gestore librerie (Sketch → Includi libreria → Gestisci librerie), cerca, installa — la maggior parte delle librerie ESP32 è lì. La via manuale: scarica lo ZIP, Sketch → Includi libreria → Aggiungi libreria .ZIP. Un tranello: il Gestore librerie elenca tutto per ogni scheda, quindi filtra per tag ESP32 o controlla che il repo dica arduino-esp32. La FAQ sull’Arduino IDE copre il layout delle cartelle.
Come usare la libreria per GIF animate su ESP32?
AnimatedGIF di Larry Bank è quella giusta — abbinala a TFT_eSPI e riproduce GIF sugli schermi SPI comuni. Le GIF si decodificano in fotogrammi grezzi, quindi la RAM conta: un fotogramma 320×240 è circa 150KB, ed è per questo che l’animazione fatica sui chip da 2MB e canta sulle schede con PSRAM. Sul mio ILI9341 240×320 girava a circa 15 FPS, abbastanza fluido per un’animazione in loop. La pagina dei progetti di esempio ha un setup funzionante.
La libreria Hardware Serial è nell’ESP32?
Sì — HardwareSerial è integrata nel core, nessuna installazione necessaria. Serial, Serial1 e Serial2 esistono sull’ESP32 classico; su C3 e S3 la disponibilità di Serial1 e Serial2 dipende dal numero di UART del chip. ‘Harware serial’ è un refuso di ricerca; la stessa libreria integrata in ogni caso.
Perché la mia libreria compila su una scheda ma non su un’altra?
Config specifica della scheda — pin nei #define, presenza di PSRAM, dimensione della flash. Molte librerie ESP32 danno per scontato un WROOM-32 con 4MB di flash e hardcodano pin che le schede S3 instradano diversamente. Leggi il README della libreria per la tabella delle schede; se elenca schede, la tua deve esserci.
Libreria installata ma non trovata?
Riavvia l’IDE, poi controlla la cartella sketchbook: File → Preferenze la mostra, e le librerie utente stanno in <sketchbook>/libraries. Due fallimenti comuni: lo ZIP estratto in una cartella annidata (Arduino vuole il .h un livello sotto), oppure l’IDE ha in cache una copia corrotta — cancella e reinstalla. La knowledge base ha il percorso con gli screenshot.
L’aggiornamento del core ha rotto la mia libreria — e adesso?
Il salto da arduino-esp32 2.x a 3.x ha rinominato le API; le librerie fissate sui nomi vecchi falliscono con errori confusi. Soluzioni, in ordine: aggiorna la libreria, leggi il suo changelog, oppure blocca nel Gestore Schede la versione del core che la libreria nomina.
Librerie integrate vs di terze parti — qual è la differenza?
Integrata significa che la spedisce il core — WiFi.h, HardwareSerial, SPI, Wire. Di terze parti significa un repo esterno — sensori, display, servizi. Le integrate si aggiornano col core; le di terze parti col loro calendario, ed è esattamente per questo che bloccare le versioni conta.
Due librerie definiscono la stessa funzione — conflitto?
Sì, e il linker ne sceglie una in silenzio oppure dà errore. Il C++ non ti ferma; il risultato è un lancio di moneta su quale viene chiamata. Trova il duplicato dal messaggio di errore, poi disinstalla una delle due librerie o usa il suo namespace se ce l’ha. Ci sono incappato una volta con due librerie DHT; la soluzione è stata cancellare quella che non usavo mai.
Come capire di quale libreria ha bisogno uno sketch?
Leggi le righe #include, poi cerca ogni nome nel Gestore librerie — Adafruit BMP280, U8g2, quel che è. Il README o l’header dell’esempio di solito nomina il fork preferito dall’autore, e conta per le librerie rinominate. La libreria con problemi che vengono davvero chiusi è quella che funziona.
Posso scrivere la mia libreria ESP32?
Sì — una cartella con .h, .cpp e library.properties dentro <sketchbook>/libraries è una libreria. Esponi l’API che usi, tieni le specificità hardware nella config dell’header, e una libreria ESP32 è solo una libreria Arduino che fa #ifdef sugli header ESP32.
I progetti di questo argomento girano direttamente nel simulatore gratuito di sensbench: circuito pre-cablato, firmware incluso, senza account né installazione.