Lección 35: Uso del sensor de temperatura HTU21D con Arduino
Este proyecto te guía en el uso de un Arduino para leer datos de temperatura y humedad de un sensor HTU21D-F. Este sensor es económico y está ampliamente disponible, lo que lo hace perfecto para una variedad de proyectos. El sensor envía datos mediante I2C, un protocolo de comunicación digital común. Aprender a usar este sensor y I2C abrirá muchas posibilidades para tus proyectos.

Aplicaciones prácticas:
- Construyendo un monitor ambiental para el hogar inteligente
- Creando una estación meteorológica
- Desarrollo de un recinto climatizado para equipos electrónicos sensibles
- Monitoreo de la temperatura y la humedad en un invernadero o terrario
Hardware/Componentes
Necesitará los siguientes componentes:
- Placa Arduino (por ejemplo, Uno, Nano)
- Sensor de temperatura y humedad HTU21D-F (en el video a las 00:22)
- Cables de conexión
- Protoboard (opcional, pero recomendable)
Guía de cableado
El cableado es sencillo. Conecta el sensor al Arduino de la siguiente manera (en el video a las 02:28):
- VCC del sensor al Arduino 3.3V
- GND del sensor al GND del Arduino
- SDA del sensor al A4 del Arduino
- SCL del sensor al Arduino A5

Explicación del código
El código proporcionado utiliza la biblioteca Adafruit HTU21D-F (en el video en 03:03) para interactuar con el sensor. Las partes clave son:
// These are the lines that you can configure:
const int inPin =A0;//can change
const int iteration = 1000; //can change (see video at 00:22)
const float LM35_FACTOR =0.01;// do not change
inPin: Especifica el pin analógico conectado al sensor de temperatura. Puedes cambiarlo para adaptarlo a tu cableado.
iteration: Esta variable controla el número de lecturas tomadas para promediar la temperatura. Incrementarla mejora la precisión pero ralentiza las lecturas (en el video a las 00:22).
ElgetHTU()La función (en el video a las 08:46) te permite obtener la temperatura en Celsius, Fahrenheit o Kelvin, o la humedad, pasando un carácter ('C', 'F', 'K' o 'H') como argumento. Luego el código usa esta función para mostrar los datos en el monitor serie.
float getTemperature(char type) {
// ... (code to read temperature and humidity) ...
if (type == 'F') {
value = averageTemperature * 9 / 5 + 32; // Fahrenheit
} else if (type == 'K') {
value = averageTemperature + 273.15; // Kelvin
} else {
value = averageTemperature; // Celsius
}
return value;
}
Proyecto/Demostración en vivo
El video demuestra la funcionalidad del sensor (en el video en 07:34). El monitor serial muestra las lecturas de temperatura y humedad. El presentador también muestra cómo el código puede desencadenar acciones basadas en umbrales de temperatura (en el video en 06:45).
Capítulos
- [00:00] Introducción
- [00:22] Descripción general del sensor
- [01:22] Revisión de la hoja de datos
- [02:28] Cableado
- [03:03] Instalación de la biblioteca
- [04:05] Explicación del código (Parte 1)
- [08:33] Explicación del código (Parte 2)
- [07:34] Demostración en vivo
Cosas que podrías necesitar
-
Amazonas
Recursos y referencias
-
ExternoBiblioteca Adafruit HTU21D (GitHub)github.com
-
ExternoHoja de datos HTU21D (PDF)cdn-shop.adafruit.com
Archivos📁
Otros archivos
-
Adafruit HTU21DF library (Robojax.com)
robojax_HTU21DF_Adafruit_HTU21DF_Library-master.zip