Interfaz del sensor de temperatura y humedad HTU21D con Arduino

¿Quieres aprender a utilizar el sensor de temperatura y humedad HTU21D con Arduino? En este artículo te explicaremos cómo integrar este sensor en tus proyectos electrónicos, permitiéndote obtener lecturas precisas de temperatura y humedad. Sigue leyendo para descubrir cómo puedes sacar el máximo provecho de la interfaz de este sensor y crear proyectos innovadores. ¡Vamos a empezar!

¿Quiere registrar el clima en su invernadero, construir un sistema de control de humidores o realizar un seguimiento de los datos de temperatura y humedad para un proyecto de estación meteorológica? ¡El sensor de temperatura y humedad HTU21D podría ser la elección correcta para usted!

Este sensor está calibrado de fábrica y no requiere ningún componente externo para funcionar. Entonces, con solo unas pocas conexiones y algo de código Arduino, puedes comenzar a medir la humedad relativa y la temperatura de inmediato.

Descripción general del hardware

El módulo cuenta con un sensor digital de temperatura y humedad de alta precisión, rentable y fácil de usar de MEAS Suiza: HTU21D.

Interfaz del sensor de temperatura y humedad HTU21D con Arduino

El pequeño tamaño del módulo permite instalarlo en casi cualquier cosa, como termostatos, higrostatos, estaciones meteorológicas interiores y dispositivos similares para monitorear y controlar la temperatura/humedad.

El sensor HTU21D es capaz de medir la humedad en todo el rango de 0 a 100 % de HR con una precisión típica de ±2 % en el rango de 5 % a 95 % de HR.

El rango de temperatura máximo del HTU21D es de -40 a 125 °C. La precisión típica es de ±0,3°C en el rango de 0 a 70°C.

En modo normal para medición de humedad y temperatura, el sensor tiene una resolución de 0,7% RH y 0,040 °C con tiempos de conversión de 2 ms y 11 ms, respectivamente. Para requisitos más exigentes, el sensor permite un aumento de la resolución a expensas de un mayor tiempo de conversión. En el modo de máxima resolución, el HTU21D puede proporcionar 0,04 % de humedad relativa con un tiempo de conversión de 14 ms y 0,01 °C con un tiempo de conversión de 44 ms.

Advertencia:

El sensor HTU21D cuenta con una pequeña ventana que expone la película del sensor de polímero responsable de medir la temperatura y la humedad. Se recomienda evitar el contacto con líquidos, polvo u otros contaminantes ya que esto puede afectar la precisión del sensor.

Algunas placas de conexión incluyen la HTU21D-F (versión filtrada), que está equipada con un filtro hidrofóbico de PTFE (una pequeña cubierta blanca en el IC). Este filtro bloquea los contaminantes pero permite el paso del vapor de agua, protegiendo su sensor de daños por agua y garantizando lecturas precisas del sensor.

Requisitos de energía

El módulo cuenta con un regulador de voltaje de 3,3 V preciso y un traductor de nivel de voltaje, por lo que puede usarlo fácilmente con su microcontrolador favorito de 3,3 V o 5 V.

Interfaz del sensor de temperatura y humedad HTU21D con Arduino

El HTU21D consume menos de 0,5 mA durante las mediciones y menos de 0,14 µA en modo de suspensión. Este bajo consumo energético permite su implementación en dispositivos que funcionan con baterías como teléfonos móviles, wearables o relojes inteligentes.

interfaz I2C

El HTU21D es un sensor I2C, lo que significa que utiliza las dos líneas de reloj/datos I2C disponibles en la mayoría de los microcontroladores y puede compartir estos pines con otros sensores I2C siempre que no haya colisión de direcciones.

El sensor tiene una dirección I2C fija y está configurado en 0x40MALEFICIO. Se requiere un multiplexor/mux para comunicarse con múltiples sensores HTU21D a través de un solo bus.

Especificaciones técnicas

Aquí están las especificaciones completas:

Fuente de alimentación 3,3 V a 5,5 V
Consumo de corriente ~0,5 mA (durante las mediciones)
~0,14 µA (en modo de suspensión)
Periodo mínimo de muestreo 50 ms
Rango de humedad 0 a 100% de humedad relativa
Precisión de la humedad ±2% en el rango de 5% a 95% de humedad relativa
Rango de temperatura -40 ˚C a +125 ˚C
Precisión de temperatura ±0,3˚C a 25°C

Consulte la siguiente hoja de datos para obtener más detalles.

Asignación de pines del módulo HTU21D

Ahora veamos el pinout.

Interfaz del sensor de temperatura y humedad HTU21D con Arduino

VCC es el pin de alimentación. Puedes conectarlo a la salida de 3,3V o 5V de tu Arduino.

Tierra es la base común del poder y la lógica.

SCL También es el pin del reloj I2C, conéctelo a la línea de reloj I2C de su microcontrolador.

ASD También es el pin de datos I2C, conéctelo a la línea de datos I2C de su microcontrolador.

Cableado de un módulo HTU21D a un Arduino

¡Cablear el sensor de humedad HTU21D es fácil!

Sólo es necesario conectar cuatro pines para utilizar el sensor. Una para VCC, otra para GND y dos líneas de datos para comunicación I2C.

Conecte el pin SCL al pin de reloj I2C y el pin SDA al pin de datos I2C de su Arduino. Tenga en cuenta que cada placa Arduino tiene diferentes pines I2C que deben conectarse en consecuencia. En las placas Arduino con diseño R3, SDA (línea de datos) y SCL (línea de reloj) se encuentran en los encabezados cerca del pin AREF. También se les conoce como A5 (SCL) y A4 (SDA).

La siguiente figura muestra el cableado.

Interfaz del sensor de temperatura y humedad HTU21D con Arduino

Instalación de biblioteca

Para que su sensor funcione, debe instalarlo Adafruit HTU21DF. Está disponible en el administrador de la biblioteca Arduino.

Para instalar la biblioteca, navegue hasta Bosquejo > Incluir biblioteca > Administrar bibliotecas… Espere a que el administrador de la biblioteca descargue el índice de la biblioteca y actualice la lista de bibliotecas instaladas.

Interfaz del sensor de temperatura y humedad HTU21D con Arduino

Filtra tu búsqueda escribiendo “HTU21D' e instalar la biblioteca.

Interfaz del sensor de temperatura y humedad HTU21D con Arduino

La biblioteca Adafruit_HTU21DF utiliza el Autobús Adafruit IO Biblioteca auxiliar interna para abstraer transacciones y registros I2C y SPI. Así que consulte con el administrador de la biblioteca. Autobús Adafruta e instálelo también.

Interfaz del sensor de temperatura y humedad HTU21D con Arduino

Código Arduino – leer temperatura y humedad

A continuación se muestra un boceto básico de Arduino. Continúe y cárguelo en su Arduino. ¡Puedes ver la temperatura y humedad actuales en tu habitación!

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

Adafruit_HTU21DF htu = Adafruit_HTU21DF();

void setup() {
  Serial.begin(9600);

  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("tt");
    Serial.print("Humidity: "); Serial.print(rel_hum); Serial.println(" %");
    delay(500);
}

Una vez cargado su código, abra el terminal serie de 9600 bps. Deberías ver algo como el resultado a continuación. ¡Intenta respirar en el sensor para ver cómo cambian las lecturas de humedad y temperatura!

Interfaz del sensor de temperatura y humedad HTU21D con Arduino

Explicación del código:

El código es bastante simple. Al principio, Wire.h Y Adafruit_HTU21DF.h Se incluyen bibliotecas y se crea un objeto Adafruit_HTU21DF en el espacio global.

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

Adafruit_HTU21DF htu = Adafruit_HTU21DF();

En la configuración inicializamos la comunicación serie con el PC y la llamamos. begin() Función.

El htu.begin() La función inicializa el sensor. Esta función devuelve True si el sensor fue encontrado y respondió correctamente y False si no fue encontrado.

void setup() {
  Serial.begin(9600);

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

Después de la inicialización, puede acceder a los métodos del objeto (htu) utilizando el operador de punto.

htu.readTemperatura() Devuelve un valor de temperatura de punto flotante (decimal + fraccionario) en °C. Puedes convertir a Fahrenheit multiplicando por 1,8 y sumando 32.

htu.readHumedad() Devuelve el valor de humedad, también como un valor de punto flotante entre 0 y 100 (esto indica % de humedad)

void loop() {
    float temp = htu.readTemperature();
    float rel_hum = htu.readHumidity();
    Serial.print("Temperature: "); Serial.print(temp); Serial.print(" C");
    Serial.print("t");
    Serial.print("Humidity: "); Serial.print(rel_hum); Serial.println(" %");
    delay(500);
}
Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded

Interfaz del sensor de temperatura y humedad HTU21D con Arduino

¿Quieres llevar un registro del clima en tu invernadero, construir un sistema de control de humidor o seguir datos de temperatura y humedad para un proyecto de estación meteorológica? ¡El sensor de temperatura y humedad HTU21D puede ser la elección correcta para ti!

Descripción del Hardware

El módulo lleva un sensor de temperatura y humedad digital, de bajo costo, fácil de usar y altamente preciso, de MEAS Switzerland – HTU21D.

La pequeña tamaño del módulo permite que se pueda montar en casi cualquier cosa, como termostatos, humidistatos, estaciones meteorológicas interiores y dispositivos similares, para monitorear y controlar la temperatura/humedad.

El sensor HTU21D es capaz de leer la humedad en todo el rango de 0 a 100% de humedad relativa con una precisión típica de ±2% en el rango de 5% a 95% de humedad relativa.

El rango de temperatura máximo del HTU21D es de -40 a 125°C. Tiene una precisión típica de ±0.3°C en el rango de 0 a 70°C.

En su modo normal para la medición de humedad y temperatura, el sensor tiene una resolución de 0.7% de humedad relativa y 0.040°C con tiempos de conversión de 2ms y 11ms, respectivamente. Para requerimientos más exigentes, el sensor te permite aumentar la resolución a expensas de un tiempo de conversión más largo.

Advertencia: El sensor HTU21D tiene una pequeña ventana que expone la película de polímero sensible responsable de medir la temperatura y la humedad. Es recomendable evitar que líquidos, polvo u otros contaminantes entren en contacto con él, ya que puede afectar la precisión del sensor. Algunas placas de desarrollo incluyen el HTU21D-F (versión con filtro) que vienen equipadas con un filtro hidrofóbico de PTFE (una pequeña cubierta blanca en el IC).

Requisitos de Energía

El módulo viene con un regulador de voltaje preciso de 3.3V y un traductor de nivel de voltaje, por lo que puedes usarlo con tu microcontrolador favorito de 3.3V o 5V sin preocupaciones.

El HTU21D consume menos de 0.5mA durante las mediciones y menos de 0.14µA durante el modo de reposo. Este bajo consumo de energía permite la implementación en dispositivos alimentados por batería como teléfonos móviles, dispositivos vestibles o relojes inteligentes.

Interfaz I2C

El HTU21D es un sensor I2C, lo que significa que utiliza las dos líneas de datos/reloj I2C disponibles en la mayoría de los microcontroladores, y puede compartir esos pines con otros sensores I2C siempre y cuando no haya una colisión de direcciones.

El sensor tiene una dirección I2C fija y se establece en 0x40 en hexadecimal. Un multiplexor/Mux es necesario para comunicarse con varios sensores HTU21D en un solo bus.

Especificaciones Técnicas

Aquí están las especificaciones completas:

  • Fuente de alimentación: 3.3V a 5.5V
  • Consumo de corriente: ~0.5mA (durante las mediciones) ~0.14µA (durante el modo de reposo)
  • Período mínimo de muestreo: 50ms
  • Rango de humedad: 0 a 100 %RH
  • Precisión de humedad: ±2% en el rango de 5% a 95% RH
  • Rango de temperatura: -40˚C a +125˚C
  • Precisión de temperatura: ±0.3˚C a 25°C

Para obtener más detalles, consulta la hoja de especificaciones del HTU21D.

Conexión de un Módulo HTU21D a un Arduino

¡Conectar el sensor de humedad HTU21D es muy fácil!

Solo hay cuatro pines que necesitan ser conectados para empezar a usar el sensor. Uno para VCC, uno para GND, y dos líneas de datos para comunicación I2C.

Conecta el pin SCL al pin de reloj I2C y el pin SDA al pin de datos I2C en tu Arduino.

  1. Pin VCC: Conectar a 3.3V o 5V de salida de tu Arduino.
  2. Pin GND: Conexión a tierra común para alimentación y lógica.
  3. Pin SCL: Pin de reloj I2C, conectar a la línea de reloj I2C de tu microcontrolador.
  4. Pin SDA: Pin de datos I2C, conectar a la línea de datos I2C de tu microcontrolador.

Instalación de la Biblioteca

Para poner en funcionamiento tu sensor, necesitarás instalar la biblioteca Adafruit HTU21DF. Está disponible en el gestor de librerías de Arduino.

Para instalar la biblioteca, navega a Sketch > Include Library > Manage Libraries… Espera a que el Gestor de Librerías descargue el índice de librerías y actualice la lista de librerías instaladas.

Filtra tu búsqueda escribiendo ‘HTU21D’ e instala la biblioteca.

La biblioteca Adafruit_HTU21DF utiliza la librería auxiliar Adafruit Bus IO internamente para abstraer transacciones y registros I2C y SPI. Por lo tanto, busca la librería Adafruit Bus en el gestor de librerías e instálala también.

Código de Arduino – Lectura de Temperatura y Humedad

A continuación se muestra un esquema básico de Arduino. ¡Subelo a tu Arduino y verás la temperatura y humedad actual en tu habitación!

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

Adafruit_HTU21DF htu = Adafruit_HTU21DF();

void setup() {
  Serial.begin(9600);

  if (!htu.begin()) {
    Serial.println("¡No se pudo encontrar el 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("tt");
    Serial.print("Humedad: "); Serial.print(rel_hum); Serial.println(" %");
    delay(500);
}

Una vez que tu código esté subido, abre el terminal serial a 9600bps. ¡Deberías ver algo como la salida a continuación! ¡Intenta respirar en el sensor para ver cómo cambian los valores de humedad y temperatura!

1 comentario en «Interfaz del sensor de temperatura y humedad HTU21D con Arduino»

Deja un comentario