7 - Sensor de temperatura y humedad DHT11

¡Bienvenidos de nuevo al blog del curso de Arduino de POWAR STEAM! En este capítulo, vamos a explorar el uso del sensor de temperatura y humedad relativa del aire DHT11 con Arduino. Antes de empezar, es importante destacar que existen diferentes tipos de sensores de humedad y temperatura, pero en este tutorial nos centraremos en el sensor DHT11. Aprenderemos cómo conectar el sensor a Arduino, instalar las bibliotecas necesarias, leer y visualizar los valores de temperatura y humedad, y controlar un motor DC con una hélice de ventilador basado en la temperatura medida. ¡Comencemos!

Introducción al sensor de temperatura y humedad relativa del aire: El sensor de temperatura y humedad relativa del aire DHT11 es un dispositivo muy común y ampliamente utilizado para medir la temperatura y humedad en diferentes entornos. Proporciona lecturas precisas y es fácil de utilizar con Arduino. Es importante mencionar que existen otros sensores disponibles en el mercado, como el DHT22, que ofrecen mayor precisión y rango de medición, pero en este tutorial nos enfocaremos en el DHT11.

Lista de Materiales:

Para empezar, necesitaremos los siguientes componentes:

COMPONENTE:IMAGEN:CANTIDAD:

Arduino Uno (o similar)

1

Cable Arduino USB

1

DHT11 (sensor humedad y temperatura relativa)

1

Protoboard

1

Cables de conexión

1

Conexión del sensor de temperatura y humedad a Arduino:

Con estos simples pasos, habrás conectado correctamente el sensor DHT11 al Arduino, y podrás utilizarlo para medir la temperatura y la humedad en tus proyectos.

  1. Conecta el pin VCC del sensor al pin 5V de Arduino.

  2. Conecta el pin GND del sensor al pin GND de Arduino.

  3. Conecta el pin de datos (Data o Sig) del sensor al pin digital 2 de Arduino.

No se requiere una resistencia adicional en este caso, ya que el módulo del sensor DHT11 incluye una resistencia de pull-up interna en el pin de datos. Esta resistencia garantiza la estabilidad de la señal. Según el fabricante, los sensores de humedad pueden varias en el orden de sus patas, o incluso en algunos llamar SIG o S (de signal) a la pata de Data (dat).

Instalación de bibliotecas necesarias:

Antes de poder utilizar el sensor DHT11, necesitaremos instalar una biblioteca en el entorno de desarrollo de Arduino. Una biblioteca es un conjunto de código predefinido que nos permite utilizar funciones específicas sin tener que escribir todo el código desde cero. Sigue estos pasos para instalar la biblioteca necesaria:

  • Abre el IDE de Arduino.

  • Ve a "Sketch" -> "Include Library" -> "Manage Libraries" (en la versión antigua del IDE). O has clic en el botón de bibliotecas en el menú que está a la izquierda.

  • En el campo de búsqueda, escribe "DHT".

  • Aparecerán varias bibliotecas relacionadas con el sensor DHT. Busca "DHT sensor library" de Adafruit y haz clic en "Install".

  • Una vez instalada la biblioteca, cierra el administrador de bibliotecas.

  • Ahora que tenemos todo configurado, vamos a leer los valores de temperatura y humedad del sensor y mostrarlos en el monitor serial.

Aquí tienes un código de ejemplo para hacerlo:

#include <DHT.h>          // Incluye la biblioteca DHT.h

#define DHTPIN 4          // Pin de datos del sensor DHT11
#define DHTTYPE DHT11     // Tipo de sensor DHT11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);    // Inicia puerto serial
  dht.begin();
}

void loop() {
  delay(2000);           // Espera 2 segundos entre lecturas

  float temperature = dht.readTemperature();  // Crea una flotante y asigna la lectura del sensor
  float humidity = dht.readHumidity();        // Crea una flotante y asigna la lectura del sensor

  Serial.print("Temperatura: ");     // Imprime en el puerto serial "Temperatura:"
  Serial.print(temperature);
  Serial.println(" °C");

  Serial.print("Humedad: ");
  Serial.print(humidity);
  Serial.println(" %");
}

Este código inicializa el sensor DHT11, inicia la comunicación con el monitor serial y realiza la lectura de temperatura y humedad cada 2 segundos. Los valores se imprimen en el monitor serial, que puedes abrir haciendo clic en el ícono correspondiente en la barra de herramientas del IDE de Arduino.

Muestra las lecturas del sensor en la pantalla I2C:

El código comienza con la inicialización de ambos dispositivos en setup(), luego en el loop(), lee los valores de temperatura y humedad del sensor DHT11 y los muestra tanto en el puerto serial como en la pantalla LCD. Asegúrate de conectar los dispositivos a los pines correctos como se define en el código y también de que la pantalla LCD esté conectada correctamente al bus I2C.

#include <DHT.h>                   // Incluye la biblioteca DHT.h para el sensor de temperatura y humedad
#include <LiquidCrystal_PCF8574.h> // Incluye la biblioteca para el LCD con interfaz I2C

#define DHTPIN 4                   // Pin de datos del sensor DHT11
#define DHTTYPE DHT11              // Tipo de sensor DHT11
DHT dht(DHTPIN, DHTTYPE);          // Crea una instancia del sensor

// Dirección I2C del LCD. Puede variar dependiendo de tu hardware
LiquidCrystal_PCF8574 lcd(0x27); 

void setup() {
  Serial.begin(9600);              // Inicia puerto serial para el monitor serial
  dht.begin();                     // Inicia el sensor DHT
  lcd.begin(16, 2);                // Inicia el LCD con 16 caracteres y 2 líneas
  lcd.setBacklight(255);           // Enciende el backlight con brillo máximo
  lcd.clear();                     // Limpia la pantalla del LCD
  lcd.print("Temp & Humidity");    // Mensaje de bienvenida
  delay(1000);                     // Espera de 1 segundo
}

void loop() {
  delay(2000);                     // Espera 2 segundos entre lecturas

  // Lee la temperatura y humedad
  float temperature = dht.readTemperature();
  float humidity = dht.readHumidity();

  // Verifica si las lecturas fallaron y salta al siguiente ciclo del loop
  if (isnan(humidity) || isnan(temperature)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  // Imprime los valores al monitor serial
  Serial.print("Temperatura: ");
  Serial.print(temperature);
  Serial.println(" °C");
  Serial.print("Humedad: ");
  Serial.print(humidity);
  Serial.println(" %");

  // Muestra los valores en el LCD
  lcd.clear();                   // Limpia la pantalla del LCD
  lcd.setCursor(0, 0);           // Coloca el cursor en la primera línea
  lcd.print("Temp: ");
  lcd.print(temperature);
  lcd.print((char)223);          // Símbolo de grado
  lcd.print("C");

  lcd.setCursor(0, 1);           // Coloca el cursor en la segunda línea
  lcd.print("Hum: ");
  lcd.print(humidity);
  lcd.print("%");
}

¡Y eso es todo! Ahora tienes los conocimientos necesarios para utilizar el sensor de temperatura y humedad DHT11 con Arduino, leer y visualizar los valores de temperatura y humedad en la pantalla.

¡Diviértete y sigue aprendiendo en el apasionante mundo de Arduino con POWAR STEAM!

Última actualización