Résolu sur le forum : Borne Wallbox Pulsar Plus 7,4 kW sur abonnement 6 kVA : quel délestage avant accord copro (urgent)Ma panne diagnostiquée — réponse sous 48 h29 €

ESP32 Arduino IDE : installer, configurer et programmer

Arduinomis à jour le 1 mars 2026

L’ESP32 transforme un simple projet Arduino en système connecté complet : Wi-Fi, Bluetooth, capteurs, automatisation, tout tient sur un seul module. Encore faut-il installer correctement l’ESP32 dans l’Arduino IDE, choisir la bonne carte et maîtriser les nouvelles options de compilation.

Entre les différences de cœurs (ESP32 classique, C3, S3, C6), le passage progressif vers ESP-IDF et les changements du core Arduino 3.x, de nombreux développeurs se posent les mêmes questions. La suite de l’article entre dans le détail concret de l’installation, de la configuration avancée et des bonnes pratiques pour programmer l’ESP32 avec l’IDE Arduino sans blocage.

Élément clé Résumé essentiel
Installation Ajout du support ESP32 dans l’Arduino IDE via le gestionnaire de cartes 🧩
Configuration Sélection de la carte ESP32, du port série et des paramètres de compilation ⚙️
Programmation Utilisation des exemples intégrés pour tester rapidement le Wi-Fi, le Bluetooth ou des GPIO 🔌
Objectif Permettre une prise en main rapide de l’ESP32 pour débuter des projets connectés 🌐

ESP32 et Arduino IDE : comprendre l’écosystème avant d’installer

L’ESP32 s’impose dans l’IoT, la domotique et l’automatisation industrielle grâce à un rapport coût / fonctionnalités très intéressant. Wi-Fi, Bluetooth, timers matériels, ADC, PWM, interfaces série multiples : de quoi concevoir des systèmes complets sans microcontrôleur externe. L’Arduino IDE offre une porte d’entrée accessible pour exploiter ce potentiel, tout en conservant une syntaxe proche des cartes Arduino classiques.

Derrière cette simplicité apparente, plusieurs couches logicielles interagissent : Arduino Core ESP32, ESP-IDF (le framework officiel Espressif), bibliothèques tierces, scripts de compilation. Une bonne compréhension de ce socle évite de nombreuses erreurs de configuration, surtout avec l’arrivée du core 3.x basé sur ESP-IDF 5.1.4.

Point de repère : pour un projet ESP32 très simple (quelques GPIO et un capteur), l’IDE Arduino reste confortable. Pour un firmware complexe, temps réel ou très optimisé, ESP-IDF ou PlatformIO prennent le relais. Cet article se concentre sur l’usage avec l’IDE Arduino, tout en signalant les limites et transitions à connaître.

Installer l’ESP32 dans l’Arduino IDE pas à pas

Prérequis : version d’Arduino IDE et environnement

Avant d’ajouter le support ESP32, il faut vérifier la version de l’IDE Arduino. Les versions récentes (1.8.x et 2.x) gèrent correctement la plupart des modules ESP32, y compris les variantes C3 et S3. L’IDE 2.x apporte une interface plus moderne, une meilleure gestion de la recherche et un moniteur série intégré plus agréable.

ArduinoArduino et domotique : automatiser sa maison pour pas cher

Sur Windows, macOS et Linux, l’installation de base reste identique : installation de l’IDE, vérification des droits d’accès USB/série, et, sur Linux, ajout éventuel de l’utilisateur au groupe dialout pour accéder au port série sans privilèges administrateur.

Ajouter l’URL de gestionnaire de cartes ESP32

L’ESP32 n’apparaît pas par défaut dans la liste des cartes Arduino. Le support passe par l’ajout d’une URL de Board Manager. Cette étape configure l’IDE pour télécharger le core ESP32 et ses outils.

Procédure standard :

  • Ouvrir Fichier > Préférences (ou Arduino IDE > Préférences sur macOS).
  • Repérer le champ URL de gestionnaire de cartes supplémentaires.
  • Ajouter l’URL officielle ESP32, fournie par Espressif (suivre la documentation officielle, l’URL évolue avec les versions du core).
  • Valider, puis redémarrer éventuellement l’IDE.

Une seule URL suffit pour récupérer l’ensemble des cartes supportées (ESP32, ESP32-S2, ESP32-S3, ESP32-C2, ESP32-C3, ESP32-C6, ESP32-H2, ESP32-P4, etc.).

Installer le « Arduino Core ESP32 »

Une fois l’URL ajoutée, l’installation se termine depuis le Gestionnaire de cartes :

  • Menu Outils > Type de carte > Gestionnaire de cartes….
  • Rechercher esp32 dans le champ de filtre.
  • Sélectionner le package fourni par Espressif.
  • Cliquer sur Installer et patienter pendant le téléchargement des outils (compilateur, esptool, etc.).

L’IDE ajoute alors une série de nouvelles cartes : « ESP32 Dev Module », « ESP32 Wrover Module », « ESP32C3 Dev Module », « ESP32S3 Dev Module », etc. Le choix de la carte correcte influence directement la configuration du flash, de la PSRAM et des broches par défaut.

Conseil pratique : conserver une copie locale du numéro de version du core ESP32 utilisé sur chaque projet. Lorsqu’un firmware fonctionne en production, figer la version du core évite les surprises lors de futures mises à jour.

Choisir la bonne carte ESP32 dans l’IDE Arduino

Le menu Outils > Type de carte regroupe plusieurs variantes ESP32. Un mauvais choix entraîne des problèmes de boot, des erreurs de flash ou une PSRAM inactive. Le lien entre module physique et type de carte logique joue un rôle central dans la stabilité du projet.

Correspondance modules physiques / types de cartes

Chaque fabricant de carte (DOIT, Wemos, LilyGO, etc.) utilise souvent le même module Espressif (WROOM, WROVER, C3, S3…). L’IDE référence plutôt le module que la carte commerciale. Comprendre cette correspondance évite beaucoup d’essais-erreurs.

Type de carte Arduino IDE Module ESP32 typique Usage courant
ESP32 Dev Module ESP32-WROOM-32 Projets génériques Wi-Fi / BT, domotique, automatisation
ESP32 Wrover Module ESP32-WROVER avec PSRAM Affichages graphiques, buffers audio, projets mémoire gourmande
ESP32C3 Dev Module ESP32-C3 Objets connectés basse consommation, BLE + Wi-Fi 4
ESP32S3 Dev Module ESP32-S3 Vision, traitement vectoriel, USB natif
ESP32C6 Dev Module ESP32-C6 Projets Wi-Fi 6, Thread, nouvelles générations IoT

L’ESP32-S3 par exemple, avec ses deux cœurs Xtensa LX7 à 240 MHz et ses instructions vectorielles, prend l’avantage sur les traitements de signal, l’affichage et les projets de calcul. L’ESP32-C3, basé sur un cœur RISC-V 160 MHz, attire pour les projets compacts avec budget énergétique serré.

Configurer la mémoire flash et la PSRAM

Après le choix de la carte, le menu Outils propose plusieurs options liées à la mémoire :

  • Flash Size (taille de la mémoire SPI flash, souvent 4 MB ou 8 MB).
  • Partition Scheme (répartition entre programme, SPIFFS, LittleFS, NVS).
  • PSRAM (présente sur certaines cartes WROVER ou S3, à activer explicitement).

Pour un firmware IoT avec page web embarquée, fichiers JSON et logs, un schéma avec une partition SPIFFS ou LittleFS généreuse simplifie la gestion des ressources. Pour un projet axé calcul ou machine learning, la PSRAM active permet de charger des modèles plus volumineux.

Astuce déploiement : en phase de prototypage, utiliser un schéma de partition large pour le système de fichiers. Au moment du passage en production, réduire l’espace inutilisé et documenter soigneusement le schéma retenu pour éviter les régressions lors de mises à jour OTA.

Installer les pilotes USB / série pour ESP32

De nombreuses cartes ESP32 utilisent des convertisseurs USB-série comme CP2102, CH340 ou FT232. Sans pilote correct, le port série n’apparaît pas dans l’IDE Arduino. Cette étape conditionne le succès du téléversement.

Sur Windows, les pilotes CP210x et CH340 doivent souvent être installés manuellement depuis les sites des fabricants. Sur macOS récents, la gestion des pilotes reste plus stricte, avec éventuelle autorisation dans les préférences système. Sous Linux, la plupart des convertisseurs sont reconnus nativement, mais l’utilisateur doit appartenir au groupe gérant les périphériques série.

« Après l’installation du driver CP2102 sur Windows 11, le port COM de ma carte ESP32 est apparu instantanément dans l’IDE Arduino. Avant cela, le téléversement échouait systématiquement sans message d’erreur explicite. »

Programmer l’ESP32 avec l’IDE Arduino : de la base au Wi-Fi

Premier sketch : faire clignoter la LED intégrée

Le classique Blink reste un excellent test de configuration. Il valide la chaîne complète : compilation, liaison, flash et exécution. La seule adaptation concerne la broche de la LED intégrée, souvent GPIO2 ou GPIO13 selon les cartes.

Exemple minimal :

const int LED_PIN = 2; // Adapter selon la carte

void setup() {
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_PIN, HIGH);
  delay(500);
  digitalWrite(LED_PIN, LOW);
  delay(500);
}

Après sélection de la carte, du port série et téléversement, la LED donne un retour visuel rapide sur l’état du firmware. En cas d’échec, le message de log dans le bas de l’IDE indique souvent une erreur de port, de vitesse ou de bootloader.

Connexion Wi-Fi avec ESP32

La connectivité Wi-Fi reste l’argument majeur de l’ESP32. L’API Arduino sur ESP32 fournit une classe WiFi proche de celle utilisée sur les cartes ESP8266 et certaines cartes Arduino avec shield Wi-Fi. L’activation du Wi-Fi transforme immédiatement un projet local en système connecté.

Exemple de connexion simple à un réseau :

#include <WiFi.h>

const char* ssid     = "Votre_SSID";
const char* password = "Votre_MotDePasse";

void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("\nConnecté au Wi-Fi");
  Serial.print("Adresse IP : ");
  Serial.println(WiFi.localIP());
}

void loop() {
}

Une fois connecté, l’ESP32 accède facilement à des services HTTP, MQTT ou WebSocket. Pour un tour d’horizon plus large de la programmation réseau avec microcontrôleurs, un guide général sur Arduino et le Wi-Fi offre une base utile : Arduino WiFi et IoT.

Programmer l’ESP32 comme serveur web

Beaucoup de projets domotiques reposent sur un serveur web embarqué dans l’ESP32. Celui-ci fournit une interface de configuration, des pages de monitoring ou un panneau de contrôle pour l’éclairage et les automatismes. L’API Arduino simplifie la mise en place d’un serveur HTTP minimal.

Exemple avec WebServer (synchrones) :

#include <WiFi.h>
#include <WebServer.h>

const char* ssid     = "Votre_SSID";
const char* password = "Votre_MotDePasse";

WebServer server(80);

void handleRoot() {
  server.send(200, "text/plain", "ESP32 en ligne");
}

void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("\nWi-Fi OK");

  server.on("/", handleRoot);
  server.begin();
}

void loop() {
  server.handleClient();
}

Pour des interfaces plus réactives ou des charges réseau plus denses, les serveurs asynchrones (ESPAsyncWebServer) améliorent la réactivité. Toutefois, avec le core 3.1.0, des incompatibilités existent pour ESPAsyncWebServer.h, ce qui oblige à rester sur la branche 3.0.0 ou 2.x tant que les bibliothèques ne sont pas adaptées.

Limite à prendre en compte : avant d’adopter une version récente du core ESP32 dans l’IDE Arduino, vérifier la compatibilité de toutes les bibliothèques utilisées, en particulier les serveurs web asynchrones et les stacks BLE avancées. Un projet fonctionnel peut cesser de compiler après une simple mise à jour.

ESP32, Arduino Core 3.x et ESP-IDF : ce qui change en profondeur

Les dernières versions du core Arduino ESP32 reposent sur ESP-IDF 5.1.4. Parallèlement, des frameworks comme ESPHome basculent progressivement d’un backend Arduino vers ESP-IDF pour les variantes ESP32, ESP32-S2, ESP32-S3 et ESP32-C3. Les ESP32-C6, H2 et P4 utilisaient déjà ESP-IDF par défaut.

Ce mouvement général reflète une tendance du marché : % de réduction de la taille binaire, exécution plus performante, support matériel plus riche, corrections plus rapides. Dans l’IDE Arduino, ces évolutions apparaissent sous la forme de changements d’API entre les cores 2.x et 3.x.

Changements majeurs d’API entre Arduino Core 2.x et 3.x

Plusieurs modules de bas niveau voient leur API révisée. Lors de la migration d’un projet existant vers le core 3.x, une comparaison attentive des appels est nécessaire.

  • ADC (convertisseur analogique-numérique) : suppression de fonctions comme analogSetClockDiv, adcAttachPin, analogSetVRefPin. Le réglage du timing et de la référence se fait désormais via l’API ESP-IDF ou de nouveaux wrappers.
  • BLE : passage de types std::string vers String, uint16_t vers BLEUUID, et BLEScan::getResults renvoie maintenant un BLEScanResults*. La gestion des UUID devient plus typée.
  • LEDC (PWM matériel) : ledcWrite passe de 3 à 2 arguments, les canaux sont assignés automatiquement, ledcSetup et ledcAttachPin disparaissent dans leur forme initiale.
  • WiFi : renommage de plusieurs événements, ce qui impacte les callbacks de gestion de connexion, déconnexion et IP.
  • I2S : API intégralement repensée, davantage alignée sur ESP-IDF, avec configuration plus explicite des flux audio.
  • RMT : refonte de rmtInit, rmtWrite, rmtRead et suppression de différentes fonctions devenues obsolètes.
  • Timers matériels : timerBegin réduit à un paramètre, timerAttachInterrupt à deux paramètres, retrait de timerGetConfig, timerSetConfig, timerSetDivider.
  • UART : nouveaux pins par défaut (UART1 sur GPIO26/27, UART2 sur GPIO4/25), possibilité de détacher UART0 de la console série, obligation d’appeler setPins avant begin pour certains usages.

Ces ajustements donnent un socle plus homogène avec ESP-IDF, au prix d’une adaptation des anciens projets. Les nouveaux développements gagnent en cohérence, notamment sur ESP32-S3, ESP32-C3 et ESP32-C6.

ESPHome 2026.1.0 : bascule vers ESP-IDF pour ESP32

ESPHome, très utilisé en domotique avec Home Assistant, illustre fortement ce changement de paradigme. À partir de la version 2026.1.0, les variantes ESP32, ESP32-S2, ESP32-S3 et ESP32-C3 passent d’un backend Arduino à un backend ESP-IDF. Les variantes déjà sous ESP-IDF (ESP32-C6, ESP32-H2, ESP32-P4) poursuivent dans cette direction.

Les effets concrets :

  • Réduction de la taille du firmware, parfois jusqu’à 40 % de binaire en moins selon les fonctionnalités activées.
  • Performances améliorées pour les tâches réseau, la gestion des capteurs et la réactivité des automatismes.
  • Support matériel plus à jour pour les nouvelles puces ESP32 et fonctionnalités avancées.

Pour un développeur habitué à l’IDE Arduino, cette évolution montre la trajectoire globale de l’écosystème ESP32. L’IDE Arduino reste toutefois pleinement pertinent pour un cycle prototypage-essai rapide, avant une éventuelle migration vers des outils plus spécialisés.

Performance des principales variantes ESP32 dans l’IDE Arduino

Le choix de la puce ESP32 influence les performances, la consommation et la capacité mémoire. Même dans l’IDE Arduino, ces différences restent visibles lors de tâches lourdes comme le chiffrement, la vidéo ou le traitement de flux capteurs.

ESP32 classique, ESP32-S3, ESP32-C3, ESP32-C6 : panorama

Quelques repères chiffrés aident à dimensionner un projet :

  • ESP32-S3 : 2 cœurs Xtensa LX7 à 240 MHz, environ 1300 CoreMark, instructions vectorielles utiles pour le traitement de signal ou la vision.
  • ESP32-C3 : cœur RISC-V monocœur à 160 MHz, environ 483 CoreMark, 400 KB de SRAM, Wi-Fi 4 et BLE 5.0, adapté aux nœuds IoT sobres.
  • ESP32-C6 : architecture RISC-V double cœur (160 MHz et 20 MHz) pour équilibrer tâches principales et co-processeur, environ 496 CoreMark, compatibilité Wi-Fi 6 et Thread.
  • ESP32 classique : deux cœurs Xtensa, performances intermédiaires, large base installée, support logiciel mature.

Tous ces modules fonctionnent en Wi-Fi 2,4 GHz 802.11b/g/n, avec, pour les séries récentes (C5, C6, C61), la compatibilité Wi-Fi 6. La montée en puissance d’ESP32-S3 sur les projets vision et USB, et d’ESP32-C3/C6 sur les nœuds basse consommation, transparaît dans les choix des fabricants et intégrateurs.

Utilisations typiques avec Arduino IDE

Les scénarios suivants reviennent souvent dans les projets élaborés avec Arduino IDE et ESP32 :

  • Automatisation industrielle légère : supervision de machines, collecte de données via MODBUS, remontée des états sur un tableau de bord web.
  • Agriculture connectée : pilotage d’irrigation, ventilation, chauffage, relevés de température et d’humidité (DHT22, DS18B20) avec envoi vers des plateformes cloud.
  • Chambres froides et climatisation : monitoring continu des températures, alertes par MQTT ou email en cas de dérive.
  • Domotique : gestion d’éclairage, volets roulants, serrures connectées, couplées à Home Assistant ou Node-RED.
  • Surveillance environnementale : capteurs de qualité de l’air, affichage sur écrans e-paper, envoi périodique via Wi-Fi ou Bluetooth Low Energy.

Pour un débutant complet sur Arduino qui souhaite comprendre la logique générale des sketches, des broches et des bibliothèques, un guide général constitue une base solide avant de se spécialiser sur l’ESP32 : guide complet pour débuter avec Arduino.

Programmer l’ESP32 au-delà de l’IDE Arduino : quand passer à ESP-IDF ou PlatformIO

L’IDE Arduino offre une entrée accessible, mais certains projets tirent profit d’outils plus modulaires ou plus proches du matériel. L’extension Visual Studio Code et PlatformIO, ou ESP-IDF avec son propre environnement, ouvrent d’autres perspectives.

ArduinoPiloter un relais 230 V avec Arduino en sécurité : 5 erreurs à éviter

PlatformIO, par exemple, gère plusieurs versions du core Arduino ESP32. Actuellement, le core 3.0.0 n’y est pas encore validé comme référence, et la branche 2.x reste recommandée pour garantir compatibilité et stabilité. Cette gestion fine des environnements par projet simplifie les migrations progressives.

« Pour un projet domotique en production, je garde l’IDE Arduino pour les tests rapides sur table, mais j’utilise PlatformIO pour le firmware final afin de verrouiller précisément la chaîne de compilation et les versions de bibliothèques. »

Conseil d’architecture : pour un développeur déjà à l’aise avec l’IDE Arduino et curieux de structures plus avancées, un premier pas consiste à reproduire un projet ESP32 existant sous VS Code + PlatformIO, puis, seulement ensuite, explorer ESP-IDF directement.

ESP32, Arduino et dynamique du marché IoT

Au-delà des aspects techniques, l’ESP32 s’inscrit dans une dynamique économique forte. Le marché des modules ESP32 et environnements IoT associés se situe autour de 1,2 milliard USD en 2022, environ 2,1 milliards USD en 2023, avec une projection à 2,8 milliards USD en 2030 et 4,6 milliards USD en 2032. Le taux de croissance annuel composé sur 2024–2030 avoisine 11,5 %, dans un contexte de croissance de la production électronique mondiale de l’ordre de 10,3 % en 2026.

Plus de 100 millions d’unités ESP32 déjà en circulation donnent un poids considérable à l’écosystème Arduino + ESP32 : bibliothèques nombreuses, retours d’expérience, tutoriels, intégrations avec des plateformes comme Home Assistant, Node-RED ou les clouds publics. Cette masse critique renforce la pérennité des choix technologiques pour un projet embarqué.

Relier ESP32 Arduino IDE avec d’autres microcontrôleurs et ressources

La transition depuis un Arduino Uno ou Nano vers un ESP32 modifie la manière de penser un projet : gestion de la connectivité, multitâche, sécurité réseau. Pourtant, la syntaxe Arduino reste très proche, ce qui facilite une migration progressive.

Pour préparer cette évolution, un tour d’horizon des concepts Arduino, du câblage de base et des premiers sketches reste utile. Un article dédié aux débuts avec Arduino répond à ces besoins initiaux : débuter avec Arduino : guide complet. Pour approfondir la programmation Wi-Fi et IoT sur microcontrôleurs, l’article Arduino WiFi & IoT structure bien les notions de base avant d’entrer dans des projets plus lourds avec ESP32.

À retenir : l’IDE Arduino et l’ESP32 forment un duo efficace pour aborder l’IoT de manière pragmatique. En maîtrisant l’installation du core, le choix précis de la carte, les options de mémoire et les évolutions liées à ESP-IDF, un développeur construit une base solide pour des projets connectés fiables et évolutifs.

Aller plus loin avec ESP8266 et autres plateformes

Nombre de développeurs arrivent à l’ESP32 après une première expérience avec l’ESP8266. Les deux familles partagent une logique proche dans l’IDE Arduino : ajout d’URL dans le gestionnaire de cartes, configuration Wi-Fi similaire, même approche pour le serveur web et les mises à jour OTA.

Pour mieux relier ces expériences, un tutoriel dédié au paramétrage de l’ESP8266 avec l’IDE Arduino permet de comparer les deux approches, de réutiliser des portions de code et de comprendre les évolutions logicielles : ESP8266 avec Arduino IDE. Cette passerelle facilite la montée en puissance vers l’ESP32 et accompagne la compréhension des changements récents du core ESP32.

Donnez votre avis

Soyez le 1er à noter cet article


Partagez cet article maintenant !


Ça ne règle pas votre cas ?

Décrivez la panne sur le forum, avec une photo si vous pouvez : les membres qui ont eu la même répondent, et le sujet reste pour les suivants.

Avatar photoAvatar photoAvatar photoAvatar photoAvatar photoRejoindre les 54 membres — gratuit, 44 pannes résolues

Dans le même tiroir

Scène réaliste d’un établi électronique avec un Arduino Uno, une LED clignotante et une main ajustant les fils dans un environnement de bricolage naturel et détaillé.
Arduino

Arduino LED blink : premier programme

Programmer un Arduino avec un simple clignotement de LED ouvre très vite la porte à l’électronique et aux systèmes embarqués.…

Portrait de Inès DameronInès Dameron · 13 Fév 2026
La lettre du club

Une lettre par mois, accrochée au panneau

Les sujets du forum résolus dans le mois, un guide, un chiffre qu’on peut vérifier chez soi. Rien d’autre, jamais plus souvent — et on se désabonne d’un clic.

Ce qu’il y a dedans

Votre adresse

Une lettre par mois. Désabonnement en un clic.