Este tutorial es parte de: Sensor digital de humedad relativa y temperatura HTU21D
Vídeos relacionados con el sensor digital de humedad relativa y temperatura HTU21D. Encontrará enlaces a otros vídeos debajo de este artículo.
Lección 35-1: Uso del sensor de temperatura HTU21D
En este tutorial, exploraremos cómo utilizar el sensor de temperatura y humedad HTU21D con un Arduino. El HTU21D es un sensor compacto que se comunica a través de I2C, lo que facilita su conexión con microcontroladores. Al final de esta lección, podrás leer los valores de temperatura y humedad y mostrarlos a través del monitor serial de Arduino.

Para este proyecto, utilizaremos la biblioteca Adafruit diseñada específicamente para el sensor HTU21D. La biblioteca simplifica el proceso de lectura de datos del sensor, lo que nos permite centrarnos en integrar el sensor en nuestros proyectos. Puedes esperar ver las lecturas de temperatura del sensor en Celsius, Fahrenheit y Kelvin, así como el porcentaje de humedad relativa (en el video a las 03:15).
Hardware Explicado
El componente principal de este proyecto es el sensor de temperatura y humedad HTU21D. Este sensor opera con un voltaje de alimentación de 1.5 a 3.6 voltios y consume muy poca energía, lo que lo hace ideal para dispositivos que funcionan con batería. Se comunica con el Arduino usando el protocolo I2C, requiriendo solo dos líneas de datos: SDA para los datos y SCL para el reloj.
Para alimentar el sensor, lo conectaremos a una fuente de 3.3V o 5V, dependiendo del módulo específico que estés utilizando. La versión de Adafruit incluye un regulador de voltaje, lo que permite que funcione sin problemas con ambos niveles de voltaje. Esta flexibilidad lo convierte en una excelente opción para diversas aplicaciones.
Detalles de la hoja de datos
| Fabricante | TE Connectivity |
|---|---|
| Número de parte | HTU21D-F |
| Voltaje de lógica/entrada-salida | 1.5 - 3.6 V |
| Tensión de alimentación | 3.3 V (típ.) |
| Consumo actual (en reposo) | 0.02 µA |
| Consumo actual (medición) | 450 µA (típ.) |
| Rango de temperatura | -40 a +125 °C |
| Resolución de humedad | 0.04 % |
| Paquete | DFN de 6 pines |
- Asegúrese de niveles de voltaje adecuados para evitar dañar el sensor.
- Utiliza resistencias de pull-up en las líneas I2C si no están incluidas en el módulo.
- Mantén los cables cortos para minimizar la interferencia con la comunicación I2C.
- Considera el disipador de calor si se utiliza en entornos de alta temperatura.
- Verifique la orientación del sensor para asegurar conexiones de pines correctas.
Instrucciones de cableado

Para conectar el sensor HTU21D a tu Arduino, comienza conectando el pin VCC del sensor al pin de alimentación de 3.3V en el Arduino. Luego, conecta el pin GND del sensor al pin de tierra (GND) en el Arduino. A continuación, conecta el pin SDA del sensor al pin analógico A4 del Arduino, que sirve como la línea de datos I2C. Finalmente, conecta el pin SCL del sensor al pin analógico A5, que actúa como la línea de reloj I2C. Asegúrate de que tus conexiones estén seguras para evitar lecturas intermitentes.
Para mayor claridad, si estás utilizando una placa diferente, asegúrate de identificar los pines correctos para SDA y SCL, ya que pueden variar. Esta configuración de cableado permitirá que el Arduino se comunique eficazmente con el sensor HTU21D (en el video a las 05:00).
Ejemplos de Código y Guía paso a paso
A continuación se muestra un extracto de la función de configuración que inicializa la comunicación serial y verifica si se encuentra el sensor:
void setup() {
Serial.begin(9600);
if (!htu.begin()) {
Serial.println("Couldn't find sensor!");
while (1);
}
}Este código inicia la comunicación serie a una velocidad de 9600 baudios e intenta inicializar el sensor HTU21D. Si no se detecta el sensor, imprimirá un mensaje de error y detendrá la ejecución.
El bucle principal del programa lee continuamente los valores de temperatura y humedad:
void loop() {
Serial.print(getHTU('C'));
Serial.println("C");
Serial.print("Humidity:");
Serial.print(getHTU('H'));
Serial.println("%");
delay(1000);
}En este bucle, llamamos a la función.getHTUcon 'C' para obtener la temperatura en Celsius y 'H' para obtener la humedad. Los resultados se imprimen en el monitor serial cada segundo. Esto permite la observación en tiempo real de las lecturas del sensor.
Además, tenemos una funcióngetHTUque devuelve la temperatura o la humedad basándose en una entrada de carácter:
float getHTU(char type) {
float temp = htu.readTemperature();
float rel_hum = htu.readHumidity();
return (type == 'H') ? rel_hum : temp;
}Esta función lee la temperatura y la humedad del sensor y devuelve el valor apropiado según el tipo especificado. Este enfoque modular mantiene el código limpio y fácil de mantener.
Demostración / Qué Esperar
Tras la configuración y ejecución exitosa del código, deberías ver los valores de temperatura y humedad impresos en el monitor serial. Si aplicas calor al sensor, las lecturas de temperatura deberían aumentar en consecuencia, mientras que la humedad puede disminuir. Si la temperatura excede el rango máximo del sensor, puede mostrar resultados inesperados, como cero (en el video a las 12:00).
Marcas de tiempo en el video
- 00:00- Introducción
- 03:15- Visión general del sensor
- 05:00- Instrucciones de cableado
- 10:00- Recorrido del código
- 12:00- Demostración
Este tutorial es parte de: Sensor digital de humedad relativa y temperatura HTU21D
- Lección 35-2: Uso del sensor de temperatura HTU21D - Código personalizado
- Lección 35: Uso del sensor de temperatura HTU21D con Arduino
- Lección 36: Uso del sensor de temperatura HTU21D con un LCD Curso paso a paso de Arduino
- Uso de dos sensores de humedad y temperatura HTU21DF más con Arduino
- Mostrando la temperatura de un HTU21D en un LCD
- Mostrando la temperatura de un HTU21D como un gráfico de barras en un LCD
- Cómo usar el sensor de humedad y temperatura HTU21DF con Arduino (Código básico)
- Cómo utilizar el sensor de humedad y temperatura HTU21DF con Arduino (código personalizado)
Cosas que podrías necesitar
-
Amazonas
-
eBayCompra HTU21D en eBayebay.us
-
AliExpressCompra HTU21D o SHT21 en AliExpresss.click.aliexpress.com
Recursos y referencias
-
ExternoDiferencia entre HTU21DF y HTU21D (imagen)robojax.com
Archivos📁
Hoja de datos (pdf)
-
HTU21D_temerature_humidity_datasheet
HTU21D_temerature_humidity_datasheet.pdf0.96 MB -
HTU31D HTU31V Temperature and Himidity Sensors Datasheet
HTU31_Sensors_Datasheet.pdf0.67 MB