Mostrando la temperatura de un HTU21D como un gráfico de barras en un LCD

Mostrando la temperatura de un HTU21D como un gráfico de barras en un LCD

En este tutorial, aprenderemos a mostrar lecturas de temperatura de un sensor de temperatura y humedad HTU21D en una pantalla LCD en forma de gráfico de barras. Las lecturas incluirán valores en Celsius, Fahrenheit, Kelvin y humedad relativa, proporcionando una visión completa de las condiciones ambientales. Este proyecto te ayudará a entender cómo cablear los componentes correctamente e implementar el código necesario para que todo funcione sin problemas.

HTU21D module

Para aquellos que quieren una guía visual, asegúrense de ver el video asociado con este tutorial (en el video a las 00:00).

Hardware Explicado

Los componentes principales de este proyecto incluyen el sensor HTU21D y la pantalla LCD 1602. El HTU21D es un sensor digital de humedad y temperatura que se comunica a través de I2C. Proporciona lecturas precisas de temperatura y humedad, que pueden ser fácilmente accedidas a través de su biblioteca. La pantalla LCD 1602, por otro lado, muestra las lecturas en un formato legible para humanos, lo que permite evaluaciones rápidas de las condiciones ambientales.

El HTU21D utiliza una interfaz I2C sencilla, lo que facilita la conexión y comunicación con microcontroladores como Arduino. La pantalla LCD 1602 también utiliza I2C, lo que simplifica el cableado al reducir el número de pines necesarios para conectarse al Arduino. Esto permite una configuración más ordenada mientras se proporciona una salida visual clara.

Detalles de la hoja de datos

FabricanteAdafruit
Número de parteHTU21D
Voltaje de lógica/IO3.3 V (típ.)
Tensión de suministro1.5 - 3.6 V
Rango de temperatura-40 a 125 °C
Rango de humedad0 a 100 %HR
Resolución0.01 °C / 0.04 %HR
ComunicaciónI2C
PaqueteConector LGA de 4 pines

  • Utiliza 3.3 V para alimentar el HTU21D; conectarlo a 5 V puede dañarlo.
  • Asegúrese de utilizar resistencias de pull-up adecuadas en las líneas I2C (SDA y SCL).
  • Mantenga el sensor alejado de fuentes de calor durante las pruebas.
  • Verifica la dirección I2C correcta utilizando un boceto del escáner I2C.
  • Asegúrese de que el LCD esté correctamente inicializado con la dirección correcta.

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 y la pantalla LCD 1602, sigue estos pasos de cerca:

Primero, conecta el sensor HTU21D. Conecta el primer pin (VCC) al pin de 3.3 V en el Arduino. El segundo pin (GND) debe conectarse a la tierra (GND) del Arduino. El tercer pin (SDA) se conecta al pin A4 del Arduino, y el cuarto pin (SCL) se conecta al pin A5. Asegúrate de usar los colores de cable correctos para claridad, usando rojo para VCC, negro para GND, naranja para SDA y amarillo para SCL.

A continuación, para la pantalla LCD 1602, conecta el pin VCC al pin de 5 V en el Arduino y el pin GND a tierra. El pin SDA del LCD debe conectarse al mismo pin A4 utilizado para el HTU21D, y el pin SCL debe conectarse al pin A5. Esta configuración permite que tanto el sensor como la pantalla se comuniquen a través del protocolo I2C.

Ejemplos de Código y Guía Paso a Paso

En el código, el primer paso es incluir las bibliotecas necesarias para el sensor y el LCD. La línea#include es esencial para la comunicación I2C, mientras que#include "Adafruit_HTU21DF.h"inicializa el sensor HTU21D. La siguiente línea crea una instancia de la clase HTU21D:

Adafruit_HTU21DF htu = Adafruit_HTU21DF();

Esta línea configura el sensor para su uso en el programa, lo que nos permite llamar a sus métodos más tarde para leer los valores de temperatura y humedad.

Dentro delsetup()en la función, inicializamos el monitor serial y la pantalla LCD. Las siguientes líneas verifican si el sensor está funcionando correctamente:

if (htu.begin()) {
    lcd.print("HTU21DF Bargraph");  
} else {
    lcd.print("missing HTU21DF"); 
    while(1); // Pause forever.
}

Si el sensor no se inicializa, el programa mostrará un mensaje de error y detendrá la ejecución. Esto es crucial para la depuración y garantiza que el sensor esté conectado correctamente.

En elloop()función, se toman y se muestran lecturas de temperatura. La líneafloat T = getHTU('H');recupera la temperatura o la humedad según el parámetro pasado. El valor recuperado se muestra en el LCD:

lcd.setCursor (0,1); 
lcd.print(T); // print  
lcd.print((char)223); // prints degree symbol
lcd.print("C"); //

Este código posiciona el cursor en la segunda línea del LCD y imprime el valor de la temperatura junto con el símbolo de grado. El uso de(char)223es un truco útil para mostrar el símbolo de grado en el LCD.

Demostración / Qué Esperar

Una vez que todo esté configurado y el código esté cargado, deberías ver las lecturas de temperatura mostradas en el LCD como un gráfico de barras. Las lecturas se actualizarán continuamente, reflejando la temperatura y la humedad actuales. Si soplas aire caliente sobre el sensor, verás que la temperatura aumenta rápidamente, confirmando que el sistema funciona como se esperaba. Ten cuidado con la polaridad invertida o el cableado incorrecto, ya que esto puede provocar fallos o daños (en el video a las 02:30).

Tiempos del video

  • 00:00- Introducción
  • 01:30- Explicación del cableado
  • 02:30- Recorrido del Código
  • 04:00- Demostración
  • 05:30- Conclusión

Imágenes

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
214-Arduino code using HTU21D-F Humidity & Temperature on LCD bargraph
Idioma: C++
¡Copiado!

Archivos📁

Hoja de datos (pdf)