Programmer un ESP32 : premiers pas en embarqué
L’ESP32 est l’une des meilleures portes d’entrée vers l’électronique programmable. Ce petit microcontrôleur intègre le Wi-Fi et le Bluetooth, coûte peu, et se programme avec des outils gratuits et accessibles. En quelques lignes de code, on fait clignoter une LED, on lit un capteur ou on envoie des données sur Internet. Ce guide vous accompagne pour programmer un ESP32 de zéro : choix des outils, premier programme, connexion Wi-Fi et lecture d’un capteur.
Transparence : certains liens vers du matériel peuvent être des liens affiliés. Ils n’entraînent aucun surcoût pour vous et n’influencent pas nos recommandations. Nous citons du matériel courant sans partenaire imposé.
Qu’est-ce qu’un ESP32 ?
Un ESP32 est un microcontrôleur : une puce qui exécute votre programme et pilote des composants électroniques (LED, capteurs, moteurs). Ce qui le distingue d’une carte plus basique, c’est sa connectivité Wi-Fi et Bluetooth intégrée, qui en fait un choix naturel pour les projets connectés (l’« Internet des objets »).
On le trouve sous forme de cartes de développement munies d’un port USB, prêtes à brancher. Pour débuter, une carte ESP32 générique, un câble USB et éventuellement une petite LED avec une résistance suffisent. Beaucoup de cartes possèdent déjà une LED intégrée, ce qui permet de commencer sans rien câbler.
Choisir son environnement : Arduino IDE ou PlatformIO
Deux outils dominent, tous deux gratuits.
- Arduino IDE : simple, idéal pour débuter. Interface épurée, installation rapide, parfait pour un premier contact.
- PlatformIO : une extension de l’éditeur VS Code, plus puissante et confortable pour les projets qui grandissent (gestion des bibliothèques, autocomplétion avancée).
Pour vos tout premiers pas, l’Arduino IDE est recommandé. Vous pourrez passer à PlatformIO plus tard sans rien réapprendre : le code reste identique.
Configurer l’Arduino IDE pour l’ESP32
L’ESP32 n’est pas reconnu par défaut. Il faut ajouter son « support » :
- Ouvrez Fichier → Préférences.
- Dans « URL de gestionnaire de cartes supplémentaires », collez l’URL fournie par Espressif pour les cartes ESP32.
- Allez dans Outils → Type de carte → Gestionnaire de cartes, cherchez « esp32 » et installez le paquet.
- Sélectionnez votre modèle de carte dans Outils → Type de carte, puis le bon port dans Outils → Port.
Cette configuration ne se fait qu’une fois.
Premier programme : faire clignoter une LED
Le « Blink » est le « Bonjour le monde » de l’embarqué. Il vérifie que toute votre chaîne — code, carte, câble — fonctionne.
#define LED_PIN 2 // LED intégrée sur de nombreuses cartes ESP32
void setup() {
pinMode(LED_PIN, OUTPUT); // configure la broche en sortie
}
void loop() {
digitalWrite(LED_PIN, HIGH); // allume
delay(500); // attend 500 ms
digitalWrite(LED_PIN, LOW); // éteint
delay(500);
}
Deux fonctions structurent tout programme Arduino : setup(), exécutée une fois au démarrage, et loop(), répétée en boucle indéfiniment. Cliquez sur Téléverser : après compilation, la LED clignote. Félicitations, votre ESP32 exécute votre code.
Se connecter au Wi-Fi
C’est ici que l’ESP32 révèle son intérêt. Quelques lignes suffisent pour rejoindre un réseau.
#include <WiFi.h>
const char* ssid = "NOM_DU_RESEAU";
const char* motdepasse = "MOT_DE_PASSE";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, motdepasse);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connecté ! IP : ");
Serial.println(WiFi.localIP());
}
void loop() {}
Ouvrez le Moniteur série (icône loupe) réglé sur 115200 bauds : vous verrez l’ESP32 se connecter et afficher son adresse IP. À partir de là, il peut interroger une API, envoyer des mesures vers un service en ligne, ou héberger sa propre page web.
Lire un capteur
Un projet embarqué typique lit son environnement. Prenons une simple lecture analogique, par exemple une photorésistance (capteur de luminosité) branchée sur une broche adaptée.
#define CAPTEUR_PIN 34 // broche analogique
void setup() {
Serial.begin(115200);
}
void loop() {
int valeur = analogRead(CAPTEUR_PIN); // lit une valeur analogique
Serial.print("Luminosité : ");
Serial.println(valeur);
delay(1000);
}
analogRead renvoie un nombre proportionnel à la tension mesurée. En observant le moniteur série pendant que vous couvrez le capteur, la valeur change en direct. C’est le principe de base de tout capteur : transformer une grandeur physique en nombre exploitable par votre code.
Aller plus loin
Une fois ces briques maîtrisées — clignotement, Wi-Fi, lecture de capteur — vous avez tout pour combiner. Quelques idées de projets progressifs :
- Une station météo qui publie température et humidité sur une page web.
- Un détecteur de mouvement qui envoie une notification.
- Un ruban de LED piloté depuis votre téléphone.
Le C++ étant le langage de l’écosystème Arduino, renforcer ses bases aide énormément dès que les projets se complexifient. Et pour manipuler vos outils de développement plus efficacement, un environnement Linux ou WSL est un vrai atout.