Guide Complet

Le guide ultime du débutant pour l'ESP32

L'ESP32 est l'un des microcontrôleurs les plus populaires dans le monde du bricolage électronique, de l'IoT et des projets DIY. Que vous souhaitiez réaliser des projets de maison connectée, des capteurs sans fil ou des robots connectés, l'ESP32 est souvent le premier (et le meilleur) choix.

1

Qu'est-ce que l'ESP32 ?

Il s'agit d'un microcontrôleur économique et basse consommation doté du Wi-Fi et du Bluetooth intégrés, développé par Espressif Systems. Contrairement aux cartes Arduino traditionnelles qui nécessitent des modules supplémentaires pour la communication sans fil, l'ESP32 intègre toutes les fonctionnalités nécessaires, ce qui le rend idéal pour les projets IoT (Internet des objets).

Pourquoi l'ESP32 se distingue :

Voici 6 caractéristiques clés qui permettent à l'ESP32 de se démarquer :

Processeur puissant

Double cœur 32 bits (jusqu'à 240 MHz), permettant le multitâche fluide.

📶

Connectivité sans fil

Wi-Fi intégré (802.11 b/g/n) et Bluetooth (BLE 4.2+) parfaits pour l'IoT.

🎛️

Options d'E/S riches

Plus de 34 broches GPIO, SPI, I2C, UART, PWM, ADC et DAC intégrés.

Basse consommation

Plusieurs modes de veille optimisés pour les projets sur batterie.

⏱️

Périphériques matériels

Minuteurs, interruptions matérielles pour un contrôle précis.

🔐

Sécurité intégrée

Prise en charge du chiffrement matériel et du démarrage sécurisé.

Variantes populaires de l'ESP32 :

Il existe de nombreuses cartes ESP32, les plus populaires sont :

VariantePrincipales différencesIdéal pour
ESP32 Dev Kit V1Classique, largement disponibleProjets généraux pour débutants
ESP32-S3Instructions USB OTG et IA augmentéesIoT avancé, reconnaissance vocale
ESP32-C3Noyau RISC-V, coût inférieur optimiséPrincipes de base du Wi-Fi et du BLE
Lolin32 ESP32Écran OLED intégré à la carteProjets d'affichage rapides
ESP32-CAMCaméra intégrée, lecteur microSDDiffusion vidéo, photographie

👉Si vous souhaitez suivre mes projets, je vous recommande vivement de vous procurer un kit de démarrage ESP32 complet.

🚀Cela vous fera gagner du temps, de l'argent et vous évitera bien des frustrations, tout en vous permettant d'apprendre l'IoT beaucoup plus rapidement.

2

Programmation de l'ESP32 (IDE Arduino)

Maintenant que vous savez ce qu'est un ESP32 et pourquoi vous devez l'apprendre aujourd'hui, nous allons commencer à programmer cette carte puissante et créer des projets intéressants. L'IDE Arduino reste le choix le plus convivial pour les débutants, tandis que VS Code avec PlatformIO est préféré pour le développement avancé.

Étapes de configuration

Premier code : La LED clignote

Téléversons un programme de test simple pour vérifier que notre carte ESP32 fonctionne.

Blink.ino
// La fonction setup() s'exécute une seule fois lors de la mise sous tension ou de la réinitialisation de la carte.
void setup() { 
  // Initialise la broche numérique LED_BUILTIN en sortie.
  pinMode(LED_BUILTIN, OUTPUT); 
} 

// La fonction loop() s'exécute en boucle indéfiniment.
void loop() { 
  digitalWrite(LED_BUILTIN, HIGH); // Allume la LED (HIGH correspond au niveau de tension).
  delay(1000);                   // Attends une seconde.
  digitalWrite(LED_BUILTIN, LOW);  // Éteint la LED en passant la tension à LOW.
  delay(1000);                   // Attends une seconde.
}
🔄

Si le téléchargement échoue, maintenez enfoncé le bouton BOOT de l'ESP32 pendant le téléchargement (lorsque "Connecting..." apparaît).

🚨 Problèmes courants des débutants

Échec du téléchargement
  • Maintenez le bouton BOOT enfoncé
  • Vérifiez la carte et le port corrects
ESP32 non détecté
  • Essayez un autre câble USB
  • Installer les pilotes (CP2102 / CH340)
La LED ne clignote pas
  • Broche GPIO incorrecte
  • La LED externe nécessite une résistance
3

Contrôle des LED Wi-Fi (Serveur Web du point d'accès)

L'une des fonctionnalités les plus intéressantes de l'ESP32 est sa capacité à créer un serveur web que vous pouvez contrôler directement depuis votre navigateur, sans aucune application requise. Dans cet exemple, nous allons allumer et éteindre la LED intégrée via Wi-Fi.

📋Code Arduino complet : AP Web Server
#include <WiFi.h>
#include <WiFiClient.h>
#include <WiFiAP.h>

#define LED_BUILTIN 2   // Pin GPIO de la LED

// Vos identifiants réseau AP
const char *ssid = "ESP32-AP";
const char *password = "12345678";

WiFiServer server(80);

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(115200);
  Serial.println();
  Serial.println("Configuring access point...");

  if (!WiFi.softAP(ssid, password)) {
    log_e("Soft AP creation failed.");
    while(1);
  }
  
  IPAddress myIP = WiFi.softAPIP();
  Serial.print("AP IP address: ");
  Serial.println(myIP);
  server.begin();
  Serial.println("Server started");
}

void loop() {
  WiFiClient client = server.available();   // Écoute les clients entrants

  if (client) { // Si un client se connecte
    Serial.println("New Client.");
    String currentLine = ""; // Contient les données client
    
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
        
        if (c == '\n') {
          if (currentLine.length() == 0) {
            // En-têtes HTTP de réponse
            client.println("HTTP/1.1 200 OK");
            client.println("Content-type:text/html");
            client.println();

            // Corps de la page HTML simple
            client.print("Click <a href=\"/H\">here</a> to turn ON the LED.<br>");
            client.print("Click <a href=\"/L\">here</a> to turn OFF the LED.<br>");
            client.println();
            break;
          } else {
            currentLine = "";
          }
        } else if (c != '\r') {
          currentLine += c;
        }

        // Traitement des requêtes URL
        if (currentLine.endsWith("GET /H")) {
          digitalWrite(LED_BUILTIN, HIGH); // Allume la LED
        }
        if (currentLine.endsWith("GET /L")) {
          digitalWrite(LED_BUILTIN, LOW); // Éteint la LED
        }
      }
    }
    client.stop();
    Serial.println("Client Disconnected.");
  }
}

🚀 Test du Serveur Web

  1. Téléversez le code via l'IDE Arduino.
  2. Ouvrez le moniteur série (baud : 115200).
  3. Recherchez l'adresse IP du point d'accès (généralement 192.168.4.1).
  4. Sur votre téléphone, connectez-vous au Wi-Fi "ESP32-AP" (Mdp: 12345678).
  5. Ouvrez Chrome et tapez l'adresse http://192.168.4.1.
  6. Cliquez sur les liens pour allumer/éteindre la LED ! 🎉
🚫

Aucun routeur ni connexion internet requis

🔒

Entièrement local et 100% sécurisé

Idéal pour le contrôle mobile et temps de réponse rapide

🧠 Aperçu du fonctionnement en coulisses

WiFi.softAP(ssid, pass)Permet à l'ESP32 de créer son propre réseau Wi-Fi
WiFiServer server(80)Lance un serveur web qui écoute les requêtes HTTP (Port 80)
server.available()Vérifie si le navigateur d'un utilisateur est connecté
currentLine.endsWith("GET /H")Vérifie l'URL demandée pour exécuter une action
client.println()Renvoie le texte et la structure HTML (page web) au navigateur

💡 Ce projet illustre la véritable puissance de l'IoT : le contrôle à distance d'appareils physiques via une interface simple. Une fois maîtrisé, vous pourrez contrôler des relais, des moteurs et lire des capteurs !

4

Conclusion ✍️

L'ESP32 ouvre la voie à des projets IoT performants à moindre coût. Munissez-vous d'une carte, installez l'IDE et lancez-vous : votre premier appareil connecté est à portée de main !

Une fois ce concept assimilé, de nombreuses possibilités s'offrent à vous : interrupteurs intelligents, pages de configuration, tableaux de bord web complets et systèmes domotiques. L'ESP32 vous offre la liberté d'expérimenter, d'apprendre et de créer des projets connectés performants avec un minimum de matériel.

💡 Idées de projets futurs

🌐
Serveur Web Wi-Fi avancé

Hébergez une page HTML/CSS/JS complète pour contrôler de multiples GPIO.

☁️
Centre de capteurs

Enregistre la température (DHT11/22) et l'humidité dans le cloud (ThingSpeak).

🏠
Domotique MQTT

Contrôlez l'éclairage via le protocole MQTT et intégrez-le à Home Assistant.