dht11.ino
Le capteur d'initiation par excellence sur NodeMCU : une trame 1 fil toutes les 2 s, décodée par la bibliothèque Adafruit. Le sketch traduit les chiffres en un verdict binaire lisible sur le moniteur série.
Matériel requis
Un module ESP-12E (ESP8266EX, Wi-Fi 2,4 GHz) monté sur une carte NodeMCU / Wemos D1 mini, alimentée par micro-USB. 1 DHT11 (module 3 broches) + résistance 10 kΩ si boîtier nu.
Branchement
VDD 3,3 V ou 5 V (modules), DATA sur D2 avec pull-up 10 kΩ vers VDD, GND. D2 = GPIO4, broche sûre au boot.
Fonctionnement
readTemperature déclenche la transaction complète (start + 40 bits) ; le DHT11 est limité à 0,5 Hz, d'où le garde-fou millis(). Les NaN couvrent les trames perdues, fréquentes sur les fils longs. Dans l'Arduino IDE, installez le paquet « esp8266 », choisissez « NodeMCU 1.0 (ESP-12E Module) » puis Téléverser (GPIO0 à LOW si le flash échoue). L'ADC A0 lit 0-1 V (diviseur NodeMCU : 0-3,3 V).
Pour aller plus loin
Publiez les valeurs en Wi-Fi (sketch serveur web) ou affichez-les sur un OLED SSD1306 partagé en I2C.
dht11.ino
// DHT11 sur D2 (GPIO4) — bibliotheque DHT sensor library (Adafruit).
#include <DHT.h>
#define DHTPIN D2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
unsigned long precedent = 0;
void setup() {
Serial.begin(115200);
dht.begin();
Serial.println("DHT11 pret (lecture toutes les 2 s)");
}
void loop() {
if (millis() - precedent < 2000) return;
precedent = millis();
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Echec : verifier cabling et alim 3,3-5 V");
return;
}
// Indice de confort tres approximatif, pour donner du sens au chiffre
Serial.printf("T=%.1f C HR=%.0f %% (confort : %s)\n", t, h,
(t >= 18 && t <= 26 && h >= 30 && h <= 70) ? "correct" : "aerer");
}