Medidor de temperatura y humedad con Arduino, DHT11 y pantalla LCD (materiales y código)

Arduino ile sıcaklık ve nem ölçer projesi kapak görseli

Bu yazıyı Türkçe okuyun · Read in English

¿Qué hace este proyecto?

Construimos una pequeña estación meteorológica que mide la temperatura y la humedad de la habitación y las muestra en una pantalla LCD de 16×2. El sensor DHT11 toma una lectura cada dos segundos; los valores aparecen en la pantalla y en el Monitor Serie del ordenador.

  • Edad: a partir de 11 años
  • Nivel: Intermedio
  • Tiempo: unos 45 minutos
  • Qué aprenderás: instalar bibliotecas, leer un sensor digital, escribir texto en una pantalla LCD I2C

Lista de materiales

MaterialCant.
Arduino Uno (o compatible)1
Sensor de temperatura y humedad DHT11 (módulo de 3 pines)1
Pantalla LCD de 16×2 (con módulo I2C)1
Protoboard1
Cables puente macho-macho y macho-hembra~10
Cable USB1

Conexiones

Esquema de conexiones del medidor de temperatura y humedad con Arduino, DHT11 y pantalla LCD
ComponentePin del componentePin de Arduino
DHT11VCC (+)5V
DHT11DATA (OUT)D2
DHT11GND (–)GND
LCD I2CVCC5V
LCD I2CGNDGND
LCD I2CSDAA4
LCD I2CSCLA5

Bibliotecas necesarias

En el Arduino IDE, abre Herramientas → Administrar bibliotecas, busca e instala estas dos bibliotecas:

  • DHT sensor library (Adafruit): cuando te lo pregunte, instala también la biblioteca “Adafruit Unified Sensor”.
  • LiquidCrystal I2C (Frank de Brabander)

Código

// Medidor de temperatura y humedad con Arduino - ozandamci.com

#include <DHT.h>
#include <LiquidCrystal_I2C.h>

#define DHTPIN 2
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2); // si la pantalla no funciona, prueba con 0x3F

void setup() {
  Serial.begin(9600);
  dht.begin();
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Iniciando...");
  delay(2000);
}

void loop() {
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();

  lcd.clear();

  if (isnan(humidity) || isnan(temperature)) {
    lcd.setCursor(0, 0);
    lcd.print("Error de sensor");
    Serial.println("No se pudo leer el DHT11");
  } else {
    lcd.setCursor(0, 0);
    lcd.print("Temp: ");
    lcd.print(temperature, 1);
    lcd.print((char)223); // símbolo de grado
    lcd.print("C");

    lcd.setCursor(0, 1);
    lcd.print("Humedad: ");
    lcd.print(humidity, 0);
    lcd.print("%");

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

  delay(2000); // el DHT11 solo admite una lectura cada 2 segundos como máximo
}

Paso a paso

  1. Instala las bibliotecas. Añade al Arduino IDE las dos bibliotecas indicadas arriba.
  2. Conecta el DHT11. Conecta el pin + del módulo a 5V, el pin – a GND y el pin OUT/DATA a D2.
  3. Conecta la pantalla LCD. En el módulo I2C de la parte trasera de la pantalla, conecta VCC a 5V, GND a GND, SDA a A4 y SCL a A5. Puedes compartir 5V y GND con las líneas de alimentación de la protoboard.
  4. Sube el código. Elige tu placa y tu puerto y haz clic en Subir.
  5. Ajusta el contraste. Si la pantalla se ilumina pero no se ve ningún texto, gira el potenciómetro azul del módulo I2C con un destornillador pequeño.
  6. Pruébalo. Echa el aliento suavemente sobre el sensor; deberías ver cómo sube el valor de la humedad.

Solución de problemas

  • La pantalla solo muestra bloques o no muestra nada: Cambia 0x27 por 0x3F en el código y vuelve a intentarlo. Si sigue sin funcionar, revisa los cables SDA y SCL.
  • Aparece “Error de sensor”: Comprueba que el pin DATA del DHT11 está conectado a D2. Si usas un sensor suelto de 4 pines, necesitas una resistencia de 10 kΩ entre DATA y 5V.
  • Algunos caracteres se ven raros: Las pantallas LCD de caracteres solo admiten letras latinas básicas, así que evita las tildes, la ñ y otros caracteres especiales en tus textos.

Pruébalo tú mismo

  • Añade un LED rojo y un pitido de aviso que se activen cuando la temperatura supere los 28 °C.
  • Muestra también en la pantalla la temperatura más alta y la más baja.

Vídeo

La narración está en turco. Hay subtítulos en español: pulsa CC en el vídeo.

Birisi “Medidor de temperatura y humedad con Arduino, DHT11 y pantalla LCD (materiales y código)” üzerinde düşündü

Bir Cevap Yazın