dht11.ino
El sensor de iniciación por excelencia en NodeMCU: una trama de 1 hilo cada 2 s, decodificada por la librería Adafruit. El sketch traduce los números a un veredicto binario legible en el monitor serie.
Hardware necesario
Un módulo ESP-12E (ESP8266EX, Wi-Fi 2,4 GHz) montado en una placa NodeMCU / Wemos D1 mini, alimentada por micro-USB. 1 DHT11 (módulo de 3 pines) + resistencia de 10 kΩ si va suelto.
Cableado
VDD 3,3 V o 5 V (módulos), DATA en D2 con pull-up de 10 kΩ a VDD, GND. D2 = GPIO4, pin seguro en el arranque.
Funcionamiento
readTemperature dispara la transacción completa (start + 40 bits); el DHT11 está limitado a 0,5 Hz, de ahí el guardián millis(). Los NaN cubren tramas perdidas, frecuentes con cables largos. En el Arduino IDE, instale el paquete « esp8266 », elija « NodeMCU 1.0 (ESP-12E Module) » y suba (mantenga GPIO0 a LOW si falla). El ADC A0 lee 0-1 V (divisor NodeMCU: 0-3,3 V).
Para ir más lejos
Publique los valores por Wi-Fi (sketch servidor web) o muéstrelos en un OLED SSD1306 compartido 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");
}