dht11.ino

ESP8266 (módulo ESP-12E) · Archivo : dht11.ino · Lenguaje : Arduino · Uso : Relever température et humidité avec un DHT11

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");
}

← Volver a la ficha