Mostrando la temperatura de un HTU21D en un LCD

Mostrando la temperatura de un HTU21D en un LCD

En este tutorial, aprenderemos cómo mostrar las lecturas de temperatura del sensor de temperatura y humedad HTU21D en un LCD. El resultado será una configuración funcional donde la temperatura se podrá ver en grados Celsius, Fahrenheit y Kelvin, junto con la humedad relativa mostrada en la misma pantalla. Este proyecto te dará experiencia práctica con la comunicación I2C y el manejo básico de datos de sensores. Para una guía visual detallada, asegúrate de ver el video (en el video a las 00:00).

HTU21D module

Hardware Explicado

Los componentes principales para este proyecto incluyen el sensor HTU21D y la pantalla LCD. El HTU21D es un sensor digital de humedad y temperatura que se comunica a través del protocolo I2C. Proporciona mediciones precisas de temperatura en grados Celsius o Fahrenheit y humedad relativa como un porcentaje. El sensor opera típicamente a un voltaje de 3.3V, pero también puede funcionar con sistemas de 5V. La pantalla LCD que utilizaremos es una LCD de 16x2 con una interfaz I2C. Este tipo de pantalla requiere solo dos cables para la comunicación de datos, lo que facilita la conexión con microcontroladores como Arduino. La interfaz I2C permite conectar múltiples dispositivos en el mismo bus, simplificando el cableado y reduciendo el número de pines utilizados.

Detalles de la hoja de datos

FabricanteAdafruit
Número de parteHTU21D-F
Voltaje de lógica/IO3.3 V (típ.)
Voltaje de suministro1.5 V a 3.6 V
Corriente de salida0.5 mA (típ.)
Corriente de pico1.5 mA (máx.)
Rango de temperatura-40 a 125 °C
Rango de humedad0 a 100 %HR
PaqueteDFN-6
Notas / variantesNone

  • Asegúrese de que los niveles de voltaje sean correctos para evitar daños al sensor.
  • Utiliza resistencias pull-up en las líneas SDA y SCL si es necesario.
  • Verifique la dirección I2C con un escáner para asegurar una configuración correcta.
  • Maneja la salida del sensor con cuidado para evitar errores de lectura.
  • Mantenga el sensor alejado de fuentes de calor al tomar mediciones.

Instrucciones de cableado

Arduino wiring for HTU21DF light intesity sensor with LCD
Arduino wiring for HTU21DF light intesity sensor with LCD

Para conectar el sensor HTU21D al Arduino, conecta el pin VCC del sensor a la salida de 3.3V del Arduino. A continuación, conecta el pin GND del sensor a la tierra del Arduino. El pin SDA, que se utiliza para la transmisión de datos, debe conectarse al pin A4 del Arduino. De manera similar, conecta el pin SCL, que se utiliza para la señal de reloj, al pin A5 del Arduino. Asegúrate de que tu LCD esté conectado correctamente también; la dirección I2C para el LCD en esta configuración es típicamente 0x3F. Si estás utilizando un tipo diferente de LCD o una dirección I2C diferente, asegúrate de ajustar el código en consecuencia. Después de cablear, asegúrate de comprobar si hay conexiones sueltas antes de encender el Arduino.

Ejemplos de código y guía paso a paso

En el código, comenzamos incluyendo las bibliotecas necesarias para el sensor HTU21D y el LCD:

#include 
#include "Adafruit_HTU21DF.h"
#include 

Esto configura el entorno para usar tanto el sensor como la pantalla. La biblioteca `Adafruit_HTU21DF` maneja la funcionalidad del sensor, mientras que la biblioteca `LiquidCrystal_I2C` gestiona el LCD. A continuación, creamos una instancia tanto para el sensor como para el LCD:

Adafruit_HTU21DF htu = Adafruit_HTU21DF();
LiquidCrystal_I2C lcd(0x3F, 16, 2);

Aquí,htues el objeto para el sensor HTU21D, ylcdes el objeto para la pantalla LCD. La dirección I2C para la LCD está configurada en 0x3F, que puede que necesites verificar según tu configuración.setup()función, inicializamos el LCD y comprobamos si el sensor está en funcionamiento:

void setup() {
  lcd.begin();  
  lcd.backlight();
  if (!htu.begin()) {
      lcd.print("Sensor missing"); 
      while (1);
  }
  lcd.print("HTU21D Ready");
}

Este código inicializa la LCD y verifica la presencia del sensor. Si no se detecta el sensor, mostrará "Sensor faltante" y detendrá el programa.loop()función, continuamente leemos los valores de temperatura y humedad y los mostramos:

void loop() {
   lcd.clear();
   lcdDisplay(0, 0, "Celsius: ", 10, 0, getHTU('C'), 'd');  
   lcdDisplay(0, 1, "Humidity: ", 10, 1, getHTU('H'), '%');  
   delay(5000);
}

En este fragmento, borramos el LCD, luego llamamos allcdDisplay()función para mostrar la temperatura en grados Celsius y la humedad. LagetHTU()la función recupera la temperatura o la humedad según el carácter pasado.

Demostración / Qué Esperar

Cuando la configuración esté completa y el código se haya subido al Arduino, el LCD debería mostrar la temperatura actual en Celsius y la humedad relativa. Si todo está conectado correctamente, verás que los valores se actualizan cada pocos segundos. Ten cuidado con trampas comunes, como conexiones invertidas o direcciones I2C incorrectas, que pueden llevar a fallos en la comunicación del sensor (en el video a las 05:00).

Marcas de tiempo de video

  • 00:00- Introducción
  • 01:30- Instrucciones de cableado
  • 03:15- Explicación del código
  • 04:50- Demostración
  • 05:40- Conclusión

Imágenes

LCD1602 o LCD2004 con sensor de humedad y temperatura HTU21DF con Arduino
LCD1602 o LCD2004 con sensor de humedad y temperatura HTU21DF con Arduino
Arduino wiring for HTU21DF light intesity sensor with LCD
Arduino wiring for HTU21DF light intesity sensor with LCD
HTU21D module
HTU21D module
HTU21D module-back
HTU21D module-back
213-Display Temperature from HTU21DF on LCD1602-I2C or LCD2004
Idioma: C++
¡Copiado!

Cosas que podrías necesitar

Recursos y referencias

Archivos📁

Hoja de datos (pdf)