DHT11

El sensor DHT11 es una herramienta sencilla y económica para medir la temperatura y la humedad relativa en tus proyectos con Arduino. Este sensor digital es ideal para aplicaciones básicas de monitoreo ambiental gracias a su fácil integración y comunicación mediante un único pin de datos. Internamente, utiliza un termistor para medir la temperatura y un sensor capacitivo para detectar la humedad, proporcionando valores en un rango de 0 a 50 °C para temperatura y del 20% al 90% para humedad relativa.

El DHT11 es perfecto para proyectos como estaciones meteorológicas, automatización del hogar o monitoreo de condiciones en invernaderos. Aunque su precisión es limitada en comparación con otros sensores más avanzados, su simplicidad lo convierte en una excelente opción para principiantes que quieran aprender a trabajar con sensores y datos ambientales en sus proyectos Arduino.

Para usarlo, instala la librería “DHT sensor library” desde el administrador de bibliotecas de Arduino IDE.

Pinout:

Sensor Arduino
S (Señal) Pin digital
Sin rótulo (Voltaje) 5V
- (Tierra) GND

Código de ejemplo


        #include <DHT.h>
        // Configuración del sensor
        #define DHTPIN 5     // Pin digital donde está conectado el pin S del DHT11
        #define DHTTYPE DHT11 // Tipo de sensor (DHT11)

        // Crear un objeto del sensor DHT
        DHT dht(DHTPIN, DHTTYPE);

        void setup() {
        Serial.begin(9600);
        Serial.println("Iniciando DHT11...");

        dht.begin(); // Inicializar el sensor
        }

        void loop() {
        // Leer la temperatura y humedad
        float humidity = dht.readHumidity();
        float temperature = dht.readTemperature();

        // Verificar si hubo un error en la lectura
        if (isnan(humidity) || isnan(temperature)) {
            Serial.println("Error al leer del sensor DHT11");
            return;
        }

        // Imprimir los valores leídos
        Serial.print("Humedad: ");
        Serial.print(humidity);
        Serial.print(" %\t");
        Serial.print("Temperatura: ");
        Serial.print(temperature);
        Serial.println(" *C");

        delay(2000); // Esperar 2 segundos entre lecturas
        }