Blog
Bibliothèques ESP32 : installer, utiliser, réparer
Installer une bibliothèque, c’est la moitié facile — la moitié dure, c’est l’incompatibilité de version qui casse la compilation suivante. Où vivent les bibliothèques, comment en choisir une qui fonctionne, et quoi faire quand l’exemple ne compile pas.
Comment installer une bibliothèque ESP32 dans Arduino ?
Le Gestionnaire de bibliothèques (Croquis → Inclure une bibliothèque → Gérer les bibliothèques), cherchez, installez — la plupart des bibliothèques ESP32 y sont en pratique. La voie manuelle : téléchargez le ZIP, Croquis → Inclure une bibliothèque → Ajouter la bibliothèque .ZIP. Un piège : le Gestionnaire liste tout pour toutes les cartes, donc filtrez par tags ESP32 ou vérifiez que le dépôt dit arduino-esp32. La FAQ sur l’IDE Arduino couvre la structure des dossiers.
Comment utiliser une bibliothèque de GIF animés sur ESP32 ?
AnimatedGIF de Larry Bank est la référence — associez-la à TFT_eSPI et elle joue des GIF sur les écrans SPI courants. Les GIF se décodent en images brutes, donc la RAM compte : une image 320×240 fait environ 150 Ko, ce qui explique que l’animation galère sur les puces 2 Mo et chante sur les cartes PSRAM. Sur mon ILI9341 240×320, elle tournait à environ 15 FPS, assez fluide pour une animation en boucle. La page des projets d’exemple contient une configuration qui fonctionne.
La bibliothèque série matérielle est-elle dans l’ESP32 ?
Oui — HardwareSerial est intégré au core, aucune installation nécessaire. Serial, Serial1 et Serial2 existent sur l’ESP32 classique ; sur le C3 et le S3, la disponibilité de Serial1 et Serial2 dépend du nombre d’UART de la puce. « Harware serial » est une faute de frappe de recherche ; même bibliothèque intégrée dans les deux cas.
Pourquoi ma bibliothèque compile sur une carte mais pas sur une autre ?
Configuration propre à la carte — broches en #define, présence de PSRAM, taille du flash. Beaucoup de bibliothèques ESP32 supposent un WROOM-32 avec 4 Mo de flash et codent en dur des broches que les cartes S3 routent différemment. Lisez le README de la bibliothèque pour le tableau des cartes ; s’il liste des cartes, la vôtre doit y figurer.
Bibliothèque installée mais introuvable ?
Redémarrez l’IDE, puis vérifiez le dossier des croquis : Fichier → Préférences le montre, et les bibliothèques utilisateur vivent dans <sketchbook>/libraries. Deux échecs courants : le ZIP extrait dans un dossier imbriqué (Arduino veut le .h à un seul niveau de profondeur), ou l’IDE a mis en cache une copie corrompue — supprimez et réinstallez. La base de connaissances contient la procédure illustrée.
La mise à jour du core a cassé ma bibliothèque — et maintenant ?
Le saut arduino-esp32 2.x vers 3.x a renommé des API ; les bibliothèques épinglées aux anciens noms échouent avec des erreurs déroutantes. Correctifs, dans l’ordre : mettez à jour la bibliothèque, lisez son changelog, ou épinglez le core dans le Gestionnaire de cartes à la version que la bibliothèque nomme.
Bibliothèques intégrées contre tierces — quelle différence ?
Intégrée signifie que le core la livre — WiFi.h, HardwareSerial, SPI, Wire. Tiers signifie un dépôt externe — capteurs, écrans, services. Les intégrées se mettent à jour avec le core ; les tierces à leur propre rythme, ce qui est exactement pourquoi épingler compte.
Deux bibliothèques définissent la même fonction — conflit ?
Oui, et le lieur en choisit une en silence ou échoue. Le C++ ne vous arrête pas ; le résultat, c’est pile ou face sur laquelle sera appelée. Trouvez le doublon depuis le message d’erreur, puis désinstallez une bibliothèque ou utilisez son espace de noms s’il en a un. Ça m’est arrivé avec deux bibliothèques DHT une fois ; le correctif, c’était de supprimer celle dont je ne me servais jamais.
Comment savoir de quelle bibliothèque un croquis a besoin ?
Lisez les lignes #include, puis cherchez chaque nom dans le Gestionnaire de bibliothèques — Adafruit BMP280, U8g2, peu importe. Le README ou l’en-tête de l’exemple nomme en général le fork préféré de l’auteur, ce qui compte pour les bibliothèques renommées. La bibliothèque dont les problèmes se règlent vraiment est celle qui fonctionne.
Puis-je écrire ma propre bibliothèque ESP32 ?
Oui — un dossier avec .h, .cpp et library.properties dans <sketchbook>/libraries est une bibliothèque. Exportez l’API que vous utilisez, gardez les détails matériels dans la config d’en-tête, et une bibliothèque ESP32 n’est qu’une bibliothèque Arduino qui fait des #ifdef sur les en-têtes ESP32.
Les projets de ce sujet s’exécutent directement dans le simulateur gratuit de sensbench : circuit pré-câblé, firmware inclus, sans compte ni installation.