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.

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 cherSur 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.
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.
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.
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::stringversString,uint16_tversBLEUUID, etBLEScan::getResultsrenvoie maintenant unBLEScanResults*. La gestion des UUID devient plus typée. - LEDC (PWM matériel) :
ledcWritepasse de 3 à 2 arguments, les canaux sont assignés automatiquement,ledcSetupetledcAttachPindisparaissent 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,rmtReadet suppression de différentes fonctions devenues obsolètes. - Timers matériels :
timerBeginréduit à un paramètre,timerAttachInterruptà deux paramètres, retrait detimerGetConfig,timerSetConfig,timerSetDivider. - UART : nouveaux pins par défaut (UART1 sur GPIO26/27, UART2 sur GPIO4/25), possibilité de détacher
UART0de la console série, obligation d’appelersetPinsavantbeginpour 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 à éviterPlatformIO, 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. »
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.
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.






