L’ESP32 WROOM 30 broches est la carte la plus polyvalente pour un projet connecté : deux cœurs à 240 MHz, le Wi-Fi et le Bluetooth déjà intégrés, et la même simplicité de programmation qu’un Arduino. Elle se programme par un simple câble micro-USB, comme n’importe quelle carte Arduino.
Une seule carte remplace deux montages : le microcontrôleur et le module Wi-Fi. Plus besoin d’ajouter un shield Ethernet, un module ESP8266 ou un module Bluetooth HC-05 pour mettre un projet en ligne : le réseau est déjà sur la carte.
À quoi sert un ESP32 ?
Là où un Arduino Uno s’arrête au montage local, l’ESP32 ouvre la partie connectée : envoyer une mesure sur Internet, piloter un relais depuis un téléphone, servir une page web, ou envoyer un courriel d’alerte. Comme il gère lui-même le Wi-Fi, ces fonctions ne demandent aucun composant supplémentaire.
- Objets connectés — une carte qui publie ses mesures et se commande à distance.
- Passerelle de capteurs — lire un capteur de température, de gaz ou de mouvement et envoyer le résultat.
- Serveur web embarqué — une interface accessible depuis n’importe quel navigateur du réseau.
- Domotique — piloter des relais, un éclairage, un volet, un arrosage.
- Bluetooth — un dialogue direct avec un téléphone, sans réseau Wi-Fi.
- Calcul intensif — les deux cœurs permettent de gérer le réseau sur un cœur et le processus de mesure sur l’autre.
Caractéristiques techniques
| Module | ESP32-WROOM-32 (puces Espressif, blindage métallique et antenne imprimée) |
|---|---|
| Processeur | Double cœur Tensilica Xtensa LX6 — jusqu’à 240 MHz |
| Mémoire | 520 Ko de RAM, 4 Mo de mémoire flash |
| Wi-Fi | 802.11 b/g/n, bande 2,4 GHz — point d’accès ou client |
| Bluetooth | Bluetooth classique et Bluetooth basse consommation (BLE) |
| Entrées/sorties | 30 broches au total, 15 par rangée — pas de 2,54 mm |
| Entrées analogiques | 18 canaux de conversion 12 bits (ADC1 et ADC2) |
| Sorties analogiques | 2 sorties numériques-analogiques 8 bits (GPIO 25 et GPIO 26) |
| Interfaces | 3 UART, 3 SPI, 2 I2C, 2 I2S |
| PWM | 16 canaux matériels, disponibles sur toutes les sorties |
| Touches capacitives | 9 broches sensibles au toucher (GPIO 4, 12, 13, 14, 15, 27, 32, 33) |
| Horloges | 4 temporisateurs 64 bits, RTC, capteur à effet Hall |
| Alimentation | 5 V par le micro-USB ou par la broche VIN — régulateur 3,3 V intégré |
| Niveau logique | 3,3 V — les entrées ne supportent pas 5 V |
| Consommation | Environ 240 mA en émission Wi-Fi, de l’ordre de 10 µA en veille profonde |
| Programmation | Micro-USB — boutons EN (redémarrage) et BOOT (mode téléversement) |
| Dimensions | 2,54 cm de large — les deux rangées se plantent directement sur une plaque d’essai |
Le brochage des deux rangées
La carte porte 15 broches de chaque côté. Repérez les rangées par rapport au port USB : c’est la seule référence stable d’un lot à l’autre.
| Rangée du côté 3V3 | 3V3, EN, VP (GPIO 36), VN (GPIO 39), GPIO 34, GPIO 35, GPIO 32, GPIO 33, GPIO 25, GPIO 26, GPIO 27, GPIO 14, GPIO 12, GND, GPIO 13 |
|---|---|
| Rangée du côté VIN | VIN, GND, GPIO 15, GPIO 2, GPIO 4, GPIO 16, GPIO 17, GPIO 5, GPIO 18, GPIO 19, GPIO 21, RX0, TX0, GPIO 22, GPIO 23 |
Les broches RX0 et TX0 sont celles du port série de programmation. Elles fonctionnent comme des entrées/sorties ordinaires, mais mieux vaut les laisser libres : un composant branché dessus peut gêner le téléversement.
Les cinq pièges du brochage ESP32
L’ESP32 n’est pas un Arduino Uno élargi : certaines broches ont des règles. Les ignorer coûte une soirée de dépannage.
Les broches qui n’acceptent que l’entrée
GPIO 34, GPIO 35, VP (36) et VN (39) ne peuvent pas servir de sortie, et elles n’ont aucune résistance de tirage interne. Elles sont parfaites pour un capteur analogique ou un bouton, jamais pour une LED ou un relais. Un digitalWrite dessus reste sans effet, sans message d’erreur.
L’ADC2 et le Wi-Fi ne cohabitent pas
Parmi les broches analogiques de cette carte, celles rattachées à l’ADC2 — GPIO 25, 26, 27, 14, 13 — cessent de fonctionner dès que le Wi-Fi est actif. Pour lire une valeur analogique dans un projet connecté, utilisez l’ADC1 : GPIO 32, 33, 34, 35, VP et VN. C’est la cause d’un grand nombre de « mon capteur renvoie toujours zéro ».
Les broches de démarrage
GPIO 0, 2, 5, 12 et 15 sont lues par la puce à la mise sous tension pour choisir son mode de démarrage : plus particulièrement le GPIO 12, qui doit être au niveau bas au démarrage. Un composant qui le maintient haut empêche la carte de démarrer, ou l’empêche de se laisser téléverser. Si un montage installé sur ces broches bloque le téléversement, débranchez-le le temps de l’envoi du programme.
Le module clignote au démarrage
Sur la plupart des cartes ESP32, une petite LED soudée sur la carte est reliée au GPIO 2. Elle s’allume par à-coups au démarrage : ce n’est pas une erreur, c’est la puce qui émet sa trame de diagnostic.
Rien ne fonctionne en 5 V
L’ESP32 fonctionne en 3,3 V et ses entrées ne sont pas tolérantes au 5 V. Un capteur alimenté en 5 V doit voir sa sortie abaissée, ou bien être alimenté directement en 3,3 V quand il le supporte. La broche 3V3 de la carte peut fournir jusqu’à 600 mA, de quoi alimenter plusieurs modules.
Préparer l’IDE Arduino pour l’ESP32
Le matériel ESP32 ne fait pas partie du paquet Arduino de base. Trois étapes, à faire une seule fois :
- Ajouter l’adresse du paquet — dans Fichier, Préférences, champ « URL de gestionnaire de cartes supplémentaires » :
https://espressif.github.io/arduino-esp32/package_esp32_index.json. - Installer le paquet — dans Outils, Gestionnaire de cartes, chercher « esp32 » par Espressif Systems, puis installer.
- Choisir la carte — dans Outils, Type de carte, sélectionner « ESP32 Dev Module ».
Il faut aussi le pilote du convertisseur USB-série monté sur la carte (CP210x ou CH340 selon le lot) : sans lui, aucun port n’apparaît dans l’IDE. Enfin, si la carte n’est pas détectée automatiquement, maintenez BOOT, appuyez une fois sur EN, relâchez EN, puis relâchez BOOT : la carte attend alors le téléversement.
Mini-projet : une station météo Wi-Fi
La carte lit un capteur de température et d’humidité, se connecte au réseau, et affiche la mesure sur une page web consultable depuis un téléphone. Aucun écran, aucun fil supplémentaire : le navigateur fait l’affichage.
Ce qu’il faut
| La carte | L’ESP32 WROOM 30 broches — celui de cette page |
|---|---|
| Le capteur | Capteur DHT22 température et humidité (aussi vendu sous la référence AM2302) |
| Le tirage | Résistance 1/4 W 10 kΩ — une seule, pour stabiliser la ligne de données |
| Le support | Plaque d’essai 400 points |
| Les liaisons | 10 × fil mâle-femelle |
Pourquoi des fils mâle-femelle ? Le capteur se termine par trois broches mâles et la plaque d’essai n’accepte que des broches mâles : l’extrémité femelle se clipse sur le capteur, l’extrémité mâle se pique dans la plaque.
Le câblage
Capteur VCC | → carte 3V3 |
|---|---|
Capteur DATA | → carte GPIO 4 |
Capteur GND | → carte GND |
| Résistance 10 kΩ | entre DATA et 3V3 — le tirage qui maintient la ligne stable |
Le DHT22 fonctionne de 3,3 à 5 V, donc la sortie 3,3 V de la carte lui convient parfaitement. Le GPIO 4 est un bon choix : il est libre de toute fonction au démarrage.
Le programme
À copier dans l’IDE Arduino, en remplaçant le nom du réseau et le mot de passe par les vôtres, puis à téléverser :
/*
* Station meteo Wi-Fi - carte ESP32 WROOM 30 broches
* Capteur DHT22 sur GPIO 4, page web servie par la carte elle-meme
*
* Composants, brochage et fiche complete : www.marocproduits.com
*/
#include "WiFi.h"
#include "WebServer.h"
#include "DHT.h"
const char* RESEAU = "VOTRE_WIFI";
const char* MOT_DE_PASSE = "VOTRE_MOT_DE_PASSE";
const byte PIN_DHT = 4; // broche DATA du capteur
DHT capteur(PIN_DHT, 22); // 22 = type DHT22
WebServer serveur(80);
// 10 est le code ASCII du retour a la ligne : on l'ecrit ainsi
// pour ne laisser aucun caractere d'echappement dans le programme.
const char RETOUR_LIGNE = char(10);
String mesure() {
float humidite = capteur.readHumidity();
float temperature = capteur.readTemperature();
String texte = "Station meteo ESP32";
texte += RETOUR_LIGNE;
texte += RETOUR_LIGNE;
texte += "Temperature : ";
if (isnan(temperature)) {
texte += "lecture impossible";
} else {
texte += String(temperature, 1);
texte += " degres";
}
texte += RETOUR_LIGNE;
texte += RETOUR_LIGNE;
texte += "Humidite : ";
if (isnan(humidite)) {
texte += "lecture impossible";
} else {
texte += String(humidite, 1);
texte += " pour cent";
}
return texte;
}
void page() {
serveur.send(200, "text/plain; charset=utf-8", mesure());
}
void setup() {
Serial.begin(115200);
capteur.begin();
WiFi.begin(RESEAU, MOT_DE_PASSE);
Serial.print("Connexion au reseau");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Adresse de la page : ");
Serial.println(WiFi.localIP());
serveur.on("/", page);
serveur.begin();
}
void loop() {
serveur.handleClient();
delay(100); // laisse la carte repondre aux visites
}Comment ça marche
Le programme tient en deux parties : une fonction qui fabrique le texte de la page, et la boucle qui la distribue aux visiteurs.
WiFi.begin()lance la connexion. Lewhilequi suit attend que le réseau réponde et affiche des points sur le moniteur série : c’est ce qui permet de savoir si le mot de passe est correct.WiFi.localIP()donne l’adresse de la carte sur le réseau. Recopiez-la dans le navigateur d’un téléphone connecté au même réseau : la mesure s’affiche.serveur.on("/", page)associe l’adresse racine à la fonction qui répond, etserveur.handleClient()regarde à chaque passage si quelqu’un demande la page.- Le DHT22 ne se relit pas plus vite que toutes les deux secondes : demander la page plusieurs fois de suite renvoie donc la même mesure. C’est normal, et ce n’est pas une panne.
isnan()teste si la lecture a échoué. Un capteur débranché affiche « lecture impossible » au lieu de sortir une valeur inventée.
Variante : la même mesure sur un afficheur
Pour une station qui tient debout sans téléphone, remplacez le serveur web par un afficheur : un afficheur LCD 16×02 I2C se raccorde sur GPIO 21 (SDA) et GPIO 22 (SCL), avec l’alimentation sur 3V3 et GND. L’I2C de l’ESP32 accepte ces deux broches par défaut ; la température s’écrit alors sur la première ligne, l’humidité sur la seconde.
Et pour agir plutôt que mesurer, un module relais 5 V commandé depuis la page web transforme la station en véritable interrupteur à distance. Le module se raccorde à VIN (5 V), GND, et sa broche IN sur un GPIO libre comme GPIO 5 ou GPIO 18.
Un dernier usage qui ne demande aucun composant : la carte peut se mettre en veille profonde et se réveiller sur une minuterie. Alimentée par deux piles, elle tient alors plusieurs mois là où un montage permanent tiendrait deux jours.
Questions fréquentes
ESP32 ou ESP8266 : que choisir ?
L’ESP8266 en carte NodeMCU est parfait pour une seule mesure envoyée sur le réseau, et demande moins de matière à apprendre. L’ESP32 prend l’avantage dès qu’il faut deux cœurs, du Bluetooth, plusieurs entrées analogiques fiables en Wi-Fi, ou davantage de broches.
La carte remplace-t-elle un Arduino Uno ?
Pour un projet connecté, oui, et sans discussion : elle fait tout ce que fait un Uno, en 3,3 V. Pour repartir d’un projet Arduino déjà écrit, gardez plutôt l’Uno R3 : la plupart des programmes Arduino compilent tels quels sur ESP32, à condition de remplacer les bibliothèques propres à l’AVR.
Pourquoi la carte n’apparaît-elle pas dans l’IDE ?
Trois causes dans l’ordre : le pilote du convertisseur USB-série n’est pas installé, le câble micro-USB est un câble de charge sans liaison de données, ou le paquet « esp32 » n’est pas installé dans le gestionnaire de cartes. Un câble de charge est la cause la plus fréquente, et la plus longue à trouver.
Comment alimenter la carte sur batterie ?
Par la broche VIN, qui accepte du 5 V régulé, ou par le micro-USB avec une alimentation 5 V. N’injectez jamais 5 V sur la broche 3V3 : elle est reliée directement à la puce et à tous les modules du montage.
Peut-on commander un appareil du secteur ?
Oui, avec un module relais alimenté en 5 V, et en gardant le circuit de puissance séparé du circuit de commande. Coupez le disjoncteur avant toute intervention sur le 230 V, et enfermez les bornes dans un boîtier isolant. Un module 2 relais couvre deux circuits sur la même carte.
Le Bluetooth de la carte remplace-t-il un module HC-05 ?
Oui. Le module Bluetooth est déjà sur la carte, donc un montage qui utilisait un HC-05 avec un Arduino Uno se simplifie : plus de module, plus de fils, et le même dialogue avec un téléphone.
À combiner avec
La version 38 broches du même module expose six broches de plus, dont GPIO 6 à 11 ; elle est préférable quand le montage utilise beaucoup d’entrées/sorties. Pour un objet autonome, une sonde de température DS18B20 se raccorde en trois fils et supporte de longs câbles. Et pour la domotique, les modules relais se pilotent directement depuis les sorties de la carte, sans électronique intermédiaire.














Avis
Il n’y a pas encore d’avis.