Fiche esp32 : capteur température/humidité, potentiomètre et Wi-Fi

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émentESP32
DHT22 VCC3.3 V
DHT22 GNDGND
DHT22 DATAGPIO 4
Potentiomètre extrémité 13.3 V
Potentiomètre extrémité 2GND
Potentiomètre curseurGPIO 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émentRôle
Script .inoprogramme principal ESP32
Bibliothèque WiFi.hconnexion Wi-Fi
Bibliothèque DHT.hlecture température/humidité
Moniteur sérieaffichage et diagnostic
Carte ESP32 dans Arduino IDEenvironnement 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.

Retour en haut