Pour les étudiants en BTS CIEL ou SIO, l’ESP32 permet de créer rapidement des objets connectés.
Cette fiche présente un script simple avec :
- connexion Wi-Fi
- lecture température et humidité avec un capteur DHT22
- lecture analogique d’un potentiomètre
- affichage des valeurs dans le moniteur série
Script ESP32 complet
// =========================================================
// LIBRAIRIES
// =========================================================
#include <WiFi.h>
#include "DHT.h"
// =========================================================
// PARAMETRES WIFI
// =========================================================
const char* ssid = "NOM_DU_WIFI";
const char* password = "MOT_DE_PASSE_WIFI";
// =========================================================
// PARAMETRES CAPTEURS
// =========================================================
#define DHTPIN 4
#define DHTTYPE DHT22
#define POT_PIN 34
DHT dht(DHTPIN, DHTTYPE);
// =========================================================
// INITIALISATION
// =========================================================
void setup() {
Serial.begin(115200);
dht.begin();
Serial.println("Demarrage ESP32");
WiFi.begin(ssid, password);
Serial.print("Connexion au Wi-Fi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println("Wi-Fi connecte");
Serial.print("Adresse IP : ");
Serial.println(WiFi.localIP());
}
// =========================================================
// BOUCLE PRINCIPALE
// =========================================================
void loop() {
float temperature = dht.readTemperature();
float humidite = dht.readHumidity();
int valeurPot = analogRead(POT_PIN);
if (isnan(temperature) || isnan(humidite)) {
Serial.println("Erreur de lecture du capteur DHT22");
delay(2000);
return;
}
Serial.println("=================================");
Serial.print("Temperature : ");
Serial.print(temperature);
Serial.println(" °C");
Serial.print("Humidite : ");
Serial.print(humidite);
Serial.println(" %");
Serial.print("Potentiometre : ");
Serial.print(valeurPot);
Serial.println(" / 4095");
delay(2000);
}
Explication détaillée
Matériel utilisé
- ESP32
- capteur DHT22
- potentiomètre
- résistance 10 kΩ si nécessaire pour le DHT22
- breadboard et fils Dupont
Câblage proposé
| Élément | ESP32 |
|---|---|
| DHT22 VCC | 3.3 V |
| DHT22 GND | GND |
| DHT22 DATA | GPIO 4 |
| Potentiomètre extrémité 1 | 3.3 V |
| Potentiomètre extrémité 2 | GND |
| Potentiomètre curseur | GPIO 34 |
Le GPIO 34 est adapté à une lecture analogique sur ESP32.
Wi-Fi
La fonction suivante lance la connexion :
WiFi.begin(ssid, password);
Tant que la connexion n’est pas établie, l’ESP32 attend dans la boucle :
while (WiFi.status() != WL_CONNECTED)
Lecture du DHT22
Le capteur fournit :
- température en degrés Celsius
- humidité en pourcentage
float temperature = dht.readTemperature();
float humidite = dht.readHumidity();
Lecture du potentiomètre
L’ESP32 lit une valeur analogique entre 0 et 4095 :
int valeurPot = analogRead(POT_PIN);
Cette valeur dépend de la position du potentiomètre.
Tests
Dans le moniteur série Arduino IDE :
- vitesse : 115200 bauds
- vérifier l’adresse IP Wi-Fi
- tourner le potentiomètre
- souffler doucement près du DHT22 pour voir varier l’humidité
Bonnes pratiques
- ne pas alimenter les entrées ESP32 en 5 V
- utiliser un GPIO compatible analogique pour le potentiomètre
- vérifier le type du capteur : DHT11 ou DHT22
- éviter les lectures trop rapides du DHT22
- ne jamais publier les identifiants Wi-Fi dans un dépôt public
Récapitulatif des fichiers importants
| Fichier / élément | Rôle |
|---|---|
Script .ino | programme principal ESP32 |
Bibliothèque WiFi.h | connexion Wi-Fi |
Bibliothèque DHT.h | lecture température/humidité |
| Moniteur série | affichage et diagnostic |
| Carte ESP32 dans Arduino IDE | environnement de compilation |
Conclusion
Ce script constitue une première base d’objet connecté avec ESP32.
Il permet de lire des grandeurs physiques, de se connecter au Wi-Fi et de préparer une évolution vers MQTT, API HTTP ou tableau de bord.
