Bases · 6 min de lecture

Qu'est-ce que l'ESP32 ? Caractéristiques, installation dans l'Arduino IDE et premier projet Wi-Fi

Qu'est-ce que l'ESP32 et en quoi diffère-t-il d'un Arduino ? Wi-Fi et Bluetooth, broches sûres, installation dans l'Arduino IDE, premier Blink, connexion Wi-Fi, piloter une LED depuis le téléphone, variantes d'ESP32 et erreurs fréquentes.

L'ESP32 est un microcontrôleur double cœur très bon marché, fabriqué par Espressif, avec Wi-Fi et Bluetooth intégrés. À lui seul, il fait beaucoup de choses dont un Arduino Uno est incapable : rejoindre le réseau de la maison, servir une page web que tu ouvres sur ton téléphone, récupérer l'heure et la météo sur Internet, dialoguer avec le téléphone en Bluetooth. En plus, il se programme dans l'Arduino IDE avec les commandes Arduino que tu connais déjà. C'est aujourd'hui la carte la plus populaire pour débuter dans l'Internet des objets (IoT).

Carte de développement ESP32 DevKit
Carte de développement ESP32 : le processeur, le Wi-Fi et le Bluetooth se trouvent dans le module au capot métallique ; la carte porte aussi une puce USB-série, un régulateur et les boutons EN et BOOT.

Qu'est-ce que l'ESP32 et à quoi sert-il ?

À proprement parler, « ESP32 » est le nom de la puce sous le capot métallique. La carte que tu tiens est une carte de développement portant cette puce (comme l'ESP32 DevKit ou la NodeMCU-32S) : elle comprend un convertisseur USB-série pour dialoguer avec l'ordinateur, un régulateur qui abaisse le 5 V à 3,3 V, et les boutons de redémarrage (EN) et de programmation (BOOT). Voici quelques possibilités offertes par l'ESP32 :

  • Station météo Wi-Fi : afficher la température et l'humidité sur une page ouverte depuis ton téléphone.
  • Pilotage depuis le téléphone : commander une lampe, une prise ou une porte avec un bouton sur une page web.
  • Récupérer des données sur Internet : afficher l'heure exacte (NTP), la météo ou les taux de change sur un écran.
  • Envoyer des notifications : te prévenir par Telegram ou e-mail quand un mouvement est détecté.
  • Appareils Bluetooth : fabriquer une télécommande qui s'appaire au téléphone, ou un appareil que l'ordinateur voit comme un clavier.
  • Capteurs qui tiennent des mois sur pile : ne sortir du sommeil profond que pour mesurer.

ESP32 ou Arduino Uno : la comparaison

CaractéristiqueArduino Uno R3ESP32 (WROOM-32)
ProcesseurATmega328P, 8 bits, 16 MHzXtensa LX6, double cœur, 32 bits, 240 MHz
RAM2 Ko520 Ko
Mémoire programme (flash)32 KoGénéralement 4 Mo
Sans filAucunWi-Fi + Bluetooth (Classic et BLE)
Tension de fonctionnement5 V3,3 V
GPIO utilisables20Environ 34 (certaines en entrée seule)
Entrées analogiques (ADC)6 canaux, 10 bits18 canaux, 12 bits
Sorties analogiques (DAC)Aucune2 canaux, 8 bits

À la lecture de ce tableau, l'ESP32 semble meilleur en tout, mais l'Uno a aussi ses atouts : fonctionnant en 5 V, il est directement compatible avec la plupart des capteurs et modules anciens, ses broches sont plus robustes et il réserve moins de surprises aux débutants. Si tu n'as pas besoin de sans-fil, l'Uno reste un excellent point de départ ; pour choisir, jette un œil à Quel Arduino acheter ?

Les broches de l'ESP32 : lesquelles utiliser sans risque ?

Les broches de l'ESP32 ne sont pas toutes « équivalentes » comme sur un Arduino. Certaines sont reliées à la mémoire flash, d'autres ne fonctionnent qu'en entrée, et le niveau de certaines influence le démarrage de la carte. Tu trouveras le brochage complet de ta carte dans l'outil Brochage ; en voici un résumé :

BrochesStatutRemarque
GPIO 6–11À ne pas utiliserReliées à la flash interne ; les utiliser fait planter la carte
GPIO 34–39Entrée seulePas de sortie possible, pas de résistance de tirage interne
GPIO 0, 2, 12, 15Avec prudenceLeur niveau au démarrage compte
GPIO 1 et 3Avec prudenceTX et RX de la liaison série USB
Broches ADC2 (0, 2, 4, 12–15, 25–27)Pas de lecture analogique avec le Wi-Fi actifPour l'analogique, utilise l'ADC1 (GPIO 32–39)
GPIO 4, 5, 13, 14, 16–19, 21–23, 25–27, 32, 33SûresEntrées et sorties d'usage général
Les broches de l'ESP32 fonctionnent en 3,3 V et ne tolèrent pas le 5 V. Ne branche pas directement un capteur à sortie 5 V (comme la broche ECHO du HC-SR04) ; intercale un Pont diviseur ou un convertisseur de niveau. Tirer jusqu'à environ 20 mA d'une broche est sans danger.

Installer l'ESP32 dans l'Arduino IDE

  1. Dans l'Arduino IDE, ouvre Fichier > Préférences et ajoute https://espressif.github.io/arduino-esp32/package_esp32_index.json dans le champ « URL de gestionnaire de cartes supplémentaires ».
  2. Dans le gestionnaire de cartes, cherche esp32 et installe le paquet d'Espressif Systems.
  3. Choisis ESP32 Dev Module dans Outils > Type de carte.
  4. Branche l'ESP32 avec un câble USB et choisis le bon port dans Outils > Port. Si aucun port n'apparaît, installe le pilote de la puce USB-série de ta carte (CP2102 ou CH340).
  5. Si « Connecting... » reste longtemps affiché pendant le téléversement, maintiens le bouton BOOT de la carte enfoncé et relâche-le dès que le transfert commence.

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

La plupart des cartes ESP32 DevKit ont une LED bleue reliée au GPIO 2. Le code ci-dessous la fait clignoter toutes les demi-secondes ; comme tu le vois, les commandes sont exactement celles de l'Arduino :

Arduino (C++)
1const int LED_PIN = 2;   // çoğu DevKit'te dahili mavi LED / onboard blue LED on most DevKits
2
3void setup() {
4  pinMode(LED_PIN, OUTPUT);
5}
6
7void loop() {
8  digitalWrite(LED_PIN, HIGH);
9  delay(500);
10  digitalWrite(LED_PIN, LOW);
11  delay(500);
12}

Se connecter au Wi-Fi

La vraie force de l'ESP32, c'est le Wi-Fi. Le code ci-dessous rejoint le réseau de la maison et affiche dans le moniteur série l'adresse IP que la box attribue à l'ESP32. Remplace le nom du réseau et le mot de passe par les tiens et ouvre le moniteur série à 115200 bauds :

Arduino (C++)
1#include <WiFi.h>
2
3const char* ssid = "AgAdi";        // Wi-Fi adın / your Wi-Fi name
4const char* password = "Sifre123"; // Wi-Fi şifren / your Wi-Fi password
5
6void setup() {
7  Serial.begin(115200);
8  WiFi.begin(ssid, password);
9  Serial.print("Bağlanıyor / connecting");
10  while (WiFi.status() != WL_CONNECTED) {
11    delay(500);
12    Serial.print(".");
13  }
14  Serial.println();
15  Serial.print("IP adresi / IP address: ");
16  Serial.println(WiFi.localIP());
17}
18
19void loop() {
20}
L'ESP32 ne peut se connecter qu'aux réseaux Wi-Fi 2,4 GHz ; il ne voit pas les réseaux 5 GHz. Si ta box diffuse les deux bandes sous le même nom et que tu as des problèmes de connexion, donner un nom distinct à la bande 2,4 GHz aide souvent.

Piloter une LED depuis le téléphone : un serveur web simple

Transformons maintenant l'ESP32 en petit serveur web. Après le téléversement, ouvre l'adresse IP affichée dans le moniteur série dans le navigateur d'un téléphone connecté au même Wi-Fi : les deux boutons de la page allument et éteignent la LED de la carte. En branchant un relais à la place de la LED, tu pilotes une vraie lampe de la même façon ; vois Qu'est-ce qu'un module relais ?

Arduino (C++)
1#include <WiFi.h>
2#include <WebServer.h>
3
4const char* ssid = "AgAdi";
5const char* password = "Sifre123";
6const int LED_PIN = 2;
7
8WebServer server(80);
9
10void handleRoot() {
11  server.send(200, "text/html",
12    "<meta name='viewport' content='width=device-width'>"
13    "<h1>ESP32</h1>"
14    "<a href='/on'><button>LED AÇ / ON</button></a> "
15    "<a href='/off'><button>LED KAPAT / OFF</button></a>");
16}
17
18void setup() {
19  pinMode(LED_PIN, OUTPUT);
20  Serial.begin(115200);
21  WiFi.begin(ssid, password);
22  while (WiFi.status() != WL_CONNECTED) delay(500);
23  Serial.println(WiFi.localIP());   // bu adresi telefonda aç / open this address on your phone
24
25  server.on("/", handleRoot);
26  server.on("/on",  []() { digitalWrite(LED_PIN, HIGH); handleRoot(); });
27  server.on("/off", []() { digitalWrite(LED_PIN, LOW);  handleRoot(); });
28  server.begin();
29}
30
31void loop() {
32  server.handleClient();
33}

Les variantes de l'ESP32 : laquelle acheter ?

ModèlePoint fortQuand le choisir ?
ESP32 (WROOM-32 DevKit)Wi-Fi, Bluetooth Classic et BLE, double cœurPremière carte polyvalente
ESP32-S3USB natif, plus de RAM, instructions pour l'IAProjets caméra, audio, clavier et souris USB
ESP32-C3Un cœur RISC-V, Wi-Fi et BLE, petit et bon marchéCapteurs IoT simples
ESP32-CAMCaméra et emplacement microSDTransmission d'images, caméra de surveillance
ESP8266 (NodeMCU, Wemos D1)Plus ancien, un cœur, Wi-Fi seulProjets Wi-Fi très simples

Alimentation et fonctionnement sur batterie

Quand il active le Wi-Fi, l'ESP32 peut brièvement consommer jusqu'à 250 mA. Si un port USB faible ou un câble fin ne supporte pas ce pic, la carte redémarre avec le message « Brownout detector was triggered ». Utilise un bon câble et un bloc 5 V d'au moins 1 A ; au besoin, ajoute un condensateur de 100 à 470 µF entre 3V3 et GND. Pour les projets sur batterie, le sommeil profond de l'ESP32 réduit la consommation de la puce à quelques microampères ; mais le régulateur et la LED des cartes de développement continuent à consommer quelques mA, d'où l'intérêt d'un module nu ou d'une carte basse consommation pour une longue autonomie.

L'ESP32 avec MicroPython

L'ESP32 ne se programme pas seulement en langage Arduino, mais aussi en MicroPython. Une fois MicroPython installé sur la carte avec Thonny, quelques lignes suffisent pour se connecter au Wi-Fi :

MicroPython
1import network, time
2from machine import Pin
3
4led = Pin(2, Pin.OUT)
5wlan = network.WLAN(network.STA_IF)
6wlan.active(True)
7wlan.connect("AgAdi", "Sifre123")     # Wi-Fi adı ve şifresi / Wi-Fi name and password
8
9while not wlan.isconnected():
10    time.sleep(0.5)
11print("IP:", wlan.ifconfig()[0])
12
13while True:
14    led.value(not led.value())        # LED'i yakıp söndür / toggle the LED
15    time.sleep(0.5)

Idées de projets avec l'ESP32

  • Station météo Wi-Fi : suis depuis ton téléphone la température et l'humidité mesurées par un DHT11.
  • Prise intelligente : allume une lampe via un relais depuis une page web ou un assistant vocal.
  • Alarme de mouvement : envoie une notification Telegram quand un capteur PIR détecte quelqu'un.
  • Horloge Internet : récupère l'heure sur un serveur NTP et affiche-la sur un LCD ou un afficheur 7 segments.
  • Télécommande Bluetooth : pilote une voiture robot avec une application sur ton téléphone.
  • Capteur économe : un appareil qui se réveille toutes les 10 minutes, envoie une mesure et se rendort.

Erreurs fréquentes et solutions

  • Aucun port n'apparaît : le câble est peut-être un câble de charge seulement, ou le pilote USB-série manque ; utilise un câble de données et installe le pilote CP2102 ou CH340.
  • « Failed to connect... Timed out waiting for packet header » : maintiens BOOT enfoncé au début du téléversement.
  • La carte redémarre sans cesse : alimentation insuffisante (brownout) ; utilise un meilleur câble, un meilleur bloc et un condensateur.
  • Pas de connexion au Wi-Fi : le réseau est peut-être en 5 GHz, ou il y a une erreur de majuscules dans le nom ou le mot de passe.
  • Utiliser les GPIO 6–11 : ces broches sont reliées à la flash ; les utiliser fait planter la carte.
  • Les valeurs analogiques déraillent au démarrage du Wi-Fi : le capteur est sur une broche ADC2 ; déplace-le sur une broche ADC1 entre GPIO 32 et 39.

L'ESP32 est le moyen le plus simple d'emmener sur Internet ce que tu as appris avec Arduino. Pour réviser les bases d'Arduino, lis Qu'est-ce qu'Arduino ? ; dans l'application BlueGrays, tu trouveras des dizaines de projets ESP32 – LED, serveur web, WebSocket, horloge NTP, météo, alarme Telegram – avec schémas et code.

Questions fréquentes

L'ESP32 est-il un Arduino ?

Non. L'ESP32 est un microcontrôleur distinct fabriqué par Espressif, alors qu'Arduino désigne un écosystème de cartes et de logiciels. Grâce au paquet fourni par Espressif, l'ESP32 se programme cependant dans l'Arduino IDE avec les commandes Arduino : la plupart des codes Arduino fonctionnent sur l'ESP32 avec de petites modifications.

L'ESP32 fonctionne-t-il en 5 V ?

La carte de développement peut être alimentée en 5 V par l'USB ou la broche VIN ; son régulateur abaisse cette tension à 3,3 V. Les broches GPIO fonctionnent en revanche en 3,3 V et ne tolèrent pas le 5 V : n'y branche jamais directement de signaux 5 V.

Faut-il acheter un ESP32 ou un Arduino Uno ?

Pour les projets qui ont besoin du Wi-Fi, du Bluetooth ou d'Internet, prends un ESP32. Si tu débutes en électronique et veux travailler sans souci avec des capteurs et modules 5 V en suivant les tutoriels à la lettre, l'Arduino Uno te réservera moins de surprises.

L'ESP32 se connecte-t-il au Wi-Fi 5 GHz ?

L'ESP32 classique, l'ESP32-S3 et l'ESP32-C3 ne gèrent que le Wi-Fi 2,4 GHz et ne voient pas les réseaux 5 GHz. Vérifie que la bande 2,4 GHz de ta box est activée.

Quelle est la différence entre l'ESP32 et l'ESP8266 ?

L'ESP8266 est une puce plus ancienne, à un seul cœur, qui ne gère que le Wi-Fi et n'a qu'une entrée analogique. L'ESP32 est double cœur, plus rapide, gère aussi le Bluetooth et offre beaucoup plus de broches, de canaux ADC et de mémoire. Pour les nouveaux projets, on préfère l'ESP32.

Peut-on utiliser l'ESP32 sans Internet ?

Oui. L'ESP32 peut créer son propre réseau Wi-Fi (mode point d'accès), plusieurs ESP32 peuvent communiquer sans box grâce à ESP-NOW, et il se connecte à un téléphone en Bluetooth. Tu peux aussi l'utiliser comme un Arduino puissant sans aucune de ses fonctions sans fil.

Voir tous les projets
Clignotement LED avec ESP32
#103Débutant

Clignotement LED avec ESP32

Enseigne l'utilisation de base des sorties GPIO avec l'ESP32. Nous obtenons un effet de clignotement en allumant et éteignant une LED à partir de la broche numérique. Version ESP32 du projet blink classique sur Arduino UNO ; le schéma des broches et la syntaxe restent les mêmes, la différence se situe uniquement au niveau des numéros de broches.

4.7(36)
92
Connexion Wi-Fi STA ESP32 (avec écran LCD)
#127Avancé
Premium

Connexion Wi-Fi STA ESP32 (avec écran LCD)

Dans ce projet, nous connectons l'ESP32 au réseau Wi-Fi domestique en mode Station (STA) de manière sécurisée et tolérante aux pannes. Nous isolons SSID/mot de passe dans un fichier `secrets.h` pour empêcher leur fuite sur Git, mettons en place une reconnexion automatique, et affichons le niveau RSSI et l'adresse IP sur un écran LCD I2C. La LED intégrée sert d'indicateur d'état.

4.4(21)
33
Serveur Web asynchrone ESP32 (avec affichage de l'adresse IP sur l'écran LCD)
#129Avancé
Premium

Serveur Web asynchrone ESP32 (avec affichage de l'adresse IP sur l'écran LCD)

Dans ce projet, nous transformons l'ESP32 en un **serveur web asynchrone** que vous pouvez contrôler depuis votre téléphone ou votre ordinateur connecté au même réseau Wi-Fi. Grâce à la bibliothèque ESPAsyncWebServer, le serveur peut traiter plusieurs requêtes simultanément (contrairement au classique `WebServer.h` qui se bloque sur une seule requête). Depuis votre navigateur, vous pourrez vous connecter à l'adresse IP de l'ESP32 en ajoutant `/control` à l'URL, puis allumer et éteindre la LED co

4.8(16)
26
Compteur ESP32 WebSocket (2 boutons + écran LCD + affichage Web en temps réel)
#130Avancé
Premium

Compteur ESP32 WebSocket (2 boutons + écran LCD + affichage Web en temps réel)

Dans ce projet, l'ESP32 utilise la prise en charge WebSocket d'ESPAsyncWebServer pour transmettre en temps réel les valeurs de température et d'humidité lues par le capteur DHT11 à tous les navigateurs connectés. Au lieu d'un polling HTTP standard, la communication bidirectionnelle s'effectue via une seule connexion TCP persistante, ce qui réduit le temps de latence à quelques millisecondes. Côté navigateur, un graphique linéaire en temps réel est tracé à l'aide de Chart.js et de JavaScript pur

4.5(14)
23
ESP32 HTTPClient + API météo (avec écran LCD)
#133Avancé
Premium

ESP32 HTTPClient + API météo (avec écran LCD)

Dans ce projet, nous effectuons un appel REST à l'API météo (wttr.in) via Internet à l'aide de l'ESP32 et de la bibliothèque `HTTPClient.h`. À l’aide d’ArduinoJson v7, nous analysons la réponse JSON renvoyée et affichons les informations relatives à la ville, à la température, à l’humidité, à la météo et au vent sur un écran LCD I2C, en turc et en anglais. wttr.in est gratuit et ne nécessite pas de clé API : il suffit de saisir le nom d’une ville pour obtenir les conditions météo en temps réel d

4.7(13)
20
ESP32 : heure réelle depuis Internet via NTP
#128Avancé
Premium

ESP32 : heure réelle depuis Internet via NTP

L'ESP32 se connecte au Wi-Fi et récupère l'heure réelle avec une précision de la milliseconde depuis des serveurs NTP (Network Time Protocol). Grâce à `configTzTime()`, le fuseau horaire de la Turquie (TRT, UTC+3) est appliqué automatiquement et le passage DST est géré via la chaîne POSIX TZ. L'heure est affichée sur le moniteur série et sur un écran LCD I2C en option. Synchronisée une fois au démarrage, puis le RTC interne continue de compter.

4.5(13)
21
Éclairage automatique avec le capteur de mouvement PIR ESP32
#121Intermédiaire
Premium

Éclairage automatique avec le capteur de mouvement PIR ESP32

Dans ce projet, nous allons détecter toute personne entrant dans la pièce à l'aide du capteur de mouvement PIR HC-SR501 et allumer automatiquement la LED. Lorsqu'un mouvement sera détecté, la LED restera allumée pendant un certain temps et nous gérerons le temps à l'aide de la fonction `millis()` et d'un compteur, sans avoir recours à `delay()`. Nous obtiendrons ainsi un système d'éclairage à détecteur de mouvement qui ne bloque pas l'ESP32 et permet d'effectuer d'autres tâches. Dans la vie de t

4.4(24)
38
Système d'Alarme de Mouvement ESP32 (PIR + Buzzer + LED + Telegram)
#145Avancé
Premium

Système d'Alarme de Mouvement ESP32 (PIR + Buzzer + LED + Telegram)

Un système d'alarme de sécurité intelligent qui active le buzzer et la LED lorsque le capteur PIR détecte un mouvement, tout en envoyant une notification instantanée au propriétaire via Telegram. Il intègre un cooldown de 30 secondes pour éviter les fausses alarmes. Idéal pour la sécurité domestique, la surveillance de garage, d'entrepôts ou de bureaux. Avec l'ESP32-CAM, des notifications photo sont possibles ; avec l'ESP32 DevKit V1 classique, des notifications texte sont envoyées.

0.0(0)
8

Découvre en quoi l'ESP32 diffère de l'Arduino, quelles broches utiliser sans risque, comment l'installer dans l'Arduino IDE et réaliser ton premier projet Wi-Fi qui allume une LED depuis ton téléphone.

Qu'est-ce que l'ESP32 ? Caractéristiques, installation dans l'Arduino IDE et premier projet Wi-Fi | BlueGrays