Código de búsqueda

Cómo usar el sensor de humedad y temperatura HTU21DF con Arduino (Código básico)

Cómo usar el sensor de humedad y temperatura HTU21DF con Arduino (Código básico)

En este tutorial, aprenderemos a usar el sensor de temperatura y humedad relativa HTU21DF con un Arduino. Este sensor es conocido por su precisión y bajo consumo de energía, lo que lo hace ideal para diversas aplicaciones. Al final de este tutorial, podrás leer los valores de temperatura y humedad y mostrarlos en el Monitor Serial de Arduino. Para una aclaración adicional, asegúrate de revisar el video en (en el video a :00).

Hardware Explicado

El sensor HTU21DF es un sensor digital de humedad y temperatura que se comunica utilizando el protocolo I2C. Puede medir temperaturas que varían de -40°C a +125°C y la humedad relativa del 0% al 100%. El sensor funciona con un voltaje de alimentación de 3.3V, lo que lo hace adecuado para aplicaciones alimentadas por batería.

Dos pines son esenciales para la comunicación: SDA (línea de datos) y SCL (línea de reloj). El sensor también tiene un modo de bajo consumo, consumiendo solo 0.04 µA cuando está inactivo y aproximadamente 400 µA durante las mediciones. Esta característica lo hace particularmente útil en proyectos sensibles a la energía.

Detalles de la hoja de datos

FabricanteTE Connectivity (anteriormente MEAS)
Número de parteHTU21DF
Voltaje de lógica/IO3.3 V
Tensión de alimentación1.5 - 3.6 V
Consumo de corriente en reposo0.04 µA
Medición del consumo actual400 µA
Rango de temperatura-40 a +125 °C
Rango de humedad0 a 100 %
Resolución0.04 % (humedad), 0.01 °C (temperatura)
PaqueteLGA de 6 pines

  • Asegúrate de realizar las conexiones adecuadas para evitar daños.
  • Mantenga la fuente de alimentación dentro de los límites de voltaje especificados (1.5 a 3.6 V).
  • Utiliza resistencias de pull-up en las líneas SDA y SCL si es necesario.
  • Ten cuidado con la polaridad invertida al conectar la alimentación.
  • Permita que el sensor tenga tiempo para estabilizarse después de encenderlo.

Instrucciones de cableado

Para conectar el sensor HTU21DF al Arduino, sigue estos pasos:

Primero, conecta el pin izquierdo del sensor a la fuente de 3.3V del Arduino. El segundo pin, que normalmente está marcado en rojo, debe conectarse a la tierra (GND). A continuación, conecta el pin SDA del sensor al pin.A4en el Arduino, y conecta el pin SCL al pinA5Esta configuración permitirá que el Arduino se comunique con el sensor utilizando el protocolo I2C.

Asegúrate de que todas las conexiones estén seguras para evitar problemas de comunicación. Si estás utilizando una placa de pruebas, verifica nuevamente el cableado para mantener conexiones adecuadas. En el video, se discuten métodos de cableado alternativos (en el video a :30).

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

A continuación se presenta una breve descripción del código utilizado para interactuar con el sensor HTU21DF. Primero, se incluyen las bibliotecas necesarias:

#include 
#include "Adafruit_HTU21DF.h"

Este código inicializa la comunicación I2C y crea una instancia del sensor HTU21DF comohtu.

A continuación, configuramos la comunicación en serie en elsetup()función:

void setup() {
  Serial.begin(9600);
  if (!htu.begin()) {
    Serial.println("Couldn't find sensor!");
    while (1);
  }
}

Aquí, se inicializa el sensor y, si no logra conectarse, se imprime un mensaje y el programa se detiene.

En elloop()función, leemos los valores de temperatura y humedad:

void loop() {
    float temp = htu.readTemperature();
    float rel_hum = htu.readHumidity();
    Serial.print("Temp: "); Serial.print(temp); Serial.print(" C");
    Serial.print("\t\t");
    Serial.print("Humidity: "); Serial.print(rel_hum); Serial.println(" %");
    delay(500);
}

La temperatura se almacena en la variabletemp, y la humedad relativa se almacena enrel_humEstos valores se imprimen en el Monitor Serial cada 500 milisegundos, lo que te permite observar cambios en tiempo real.

Para el código completo, por favor consulta el programa completo cargado debajo del artículo.

Demostración / Qué Esperar

Una vez que todo esté conectado y se haya cargado el código, abre el Monitor Serial para ver las lecturas de temperatura y humedad. Deberías ver los valores actualizarse cada medio segundo. Si aplicas calor al sensor usando una pistola de calor, notarás que las lecturas de temperatura aumentan mientras que las lecturas de humedad disminuyen (en el video a las 05:00).

Ten en cuenta que si la temperatura supera el límite máximo de 125 °C, las lecturas pueden volverse inexactas o reiniciarse. Es esencial mantener el sensor dentro de su rango de operación especificado para garantizar mediciones precisas.

Marcas de tiempo del video

  • 00:00- Introducción
  • 01:30- Instrucciones de cableado
  • 05:00- Demostración

Imágenes

thumb_robojax_HTU21DF_types-1756423961-8524
thumb_robojax_HTU21DF_types-1756423961-8524
210-Arduino code using HTU21D-F Humidity & Temperature Sensor (basic-2)
Idioma: C++
/***************************************************
  This is an example for the HTU21D-F Humidity & Temperature Sensor

  Designed specifically to work with the HTU21D-F sensor from Adafruit
  ----> https://www.adafruit.com/products/1899

  This module uses I2C to communicate; 2 pins are required to
  interface
 ****************************************************/

#include <Wire.h>
#include "Adafruit_HTU21DF.h"

// Connect Vin to 3-5VDC
// Connect GND to ground
// Connect SCL to I2C clock pin (A5 on UNO)
// Connect SDA to I2C data pin (A4 on UNO)

Adafruit_HTU21DF htu = Adafruit_HTU21DF();

void setup() {
  Serial.begin(9600);
  Serial.println("HTU21D-F test");

  if (!htu.begin()) {
    Serial.println("Couldn't find sensor!");
    while (1);
  }
}

void loop() {
    float temp = htu.readTemperature();
    float rel_hum = htu.readHumidity();
    Serial.print("Temp: "); Serial.print(temp); Serial.print(" C");
    Serial.print("\t\t");
    Serial.print("Humidity: "); Serial.print(rel_hum); Serial.println(" %");
    delay(500);
}

Cosas que podrías necesitar

Recursos y referencias

Archivos📁

Hoja de datos (pdf)