Tabla de contenido:
Video: Arduino Nano - Tutorial del sensor de temperatura y humedad relativa HTS221: 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
HTS221 es un sensor digital capacitivo ultracompacto para humedad relativa y temperatura. Incluye un elemento sensor y un circuito integrado específico de aplicación de señal mixta (ASIC) para proporcionar la información de medición a través de interfaces seriales digitales. Integrado con tantas características, este es uno de los sensores más apropiados para mediciones críticas de humedad y temperatura. Aquí está la demostración con arduino nano.
Paso 1: ¡¡Lo que necesitas …
1. Arduino Nano
2. HTS221
3. Cable I²C
4. Escudo I²C para Arduino Nano
Paso 2: Conexiones:
Tome un protector I2C para Arduino Nano y empújelo suavemente sobre los pines de Nano.
Luego, conecte un extremo del cable I2C al sensor HTS221 y el otro extremo al blindaje I2C.
Las conexiones se muestran en la imagen de arriba.
Paso 3: Código:
El código arduino para HTS221 se puede descargar desde nuestro repositorio github- Comunidad DCUBE.
Aquí está el enlace para el mismo:
github.com/DcubeTechVentures/HTS221/blob/master/Arduino/HTS221.ino
Incluimos biblioteca Wire.h para facilitar la comunicación I2c del sensor con la placa Arduino.
También puede copiar el código desde aquí, se proporciona de la siguiente manera:
// Distribuido con licencia de libre albedrío.
// Úselo de la forma que desee, lucrativa o gratuita, siempre que encaje en las licencias de sus obras asociadas.
// HTS221
// Este código está diseñado para funcionar con el mini módulo HTS221_I2CS I2C
#incluir
// La dirección HTS221 I2C es 0x5F
#define Addr 0x5F
configuración vacía ()
{
// Inicializar la comunicación I2C como MASTER
Wire.begin ();
// Inicializar la comunicación en serie, configurar la velocidad en baudios = 9600
Serial.begin (9600);
// Iniciar transmisión I2C
Wire.beginTransmission (Addr);
// Seleccionar registro de configuración promedio
Wire.write (0x10);
// Muestras promedio de temperatura = 256, Muestras promedio de humedad = 512
Wire.write (0x1B);
// Detener la transmisión I2C
Wire.endTransmission ();
// Iniciar transmisión I2C
Wire.beginTransmission (Addr);
// Seleccionar registro de control1
Wire.write (0x20);
// Encendido, actualización continua, velocidad de salida de datos = 1 Hz
Wire.write (0x85);
// Detener la transmisión I2C
Wire.endTransmission ();
retraso (300);
}
bucle vacío ()
{
datos int sin firmar [2];
unsigned int val [4];
unsigned int H0, H1, H2, H3, T0, T1, T2, T3, sin procesar;
// Valores de calibración de humedad
para (int i = 0; i <2; i ++)
{
// Iniciar transmisión I2C
Wire.beginTransmission (Addr);
// Enviar registro de datos
Wire.write ((48 + i));
// Detener la transmisión I2C
Wire.endTransmission ();
// Solicitar 1 byte de datos
Wire.requestFrom (Dirección, 1);
// Leer 1 byte de datos
si (Cable disponible () == 1)
{
datos = Wire.read ();
}
}
// Convertir datos de humedad
H0 = datos [0] / 2;
H1 = datos [1] / 2;
para (int i = 0; i <2; i ++)
{
// Iniciar transmisión I2C
Wire.beginTransmission (Addr);
// Enviar registro de datos
Wire.write ((54 + i));
// Detener la transmisión I2C
Wire.endTransmission ();
// Solicitar 1 byte de datos
Wire.requestFrom (Dirección, 1);
// Leer 1 byte de datos
si (Cable disponible () == 1)
{
datos = Wire.read ();
}
}
// Convertir datos de humedad
H2 = (datos [1] * 256,0) + datos [0];
para (int i = 0; i <2; i ++)
{
// Iniciar transmisión I2C
Wire.beginTransmission (Addr);
// Enviar registro de datos
Wire.write ((58 + i));
// Detener la transmisión I2C
Wire.endTransmission ();
// Solicitar 1 byte de datos
Wire.requestFrom (Dirección, 1);
// Leer 1 byte de datos
si (Cable disponible () == 1)
{
datos = Wire.read ();
}
}
// Convertir datos de humedad
H3 = (datos [1] * 256,0) + datos [0];
// Valores de calibración de temperatura
// Iniciar transmisión I2C
Wire.beginTransmission (Addr);
// Enviar registro de datos
Wire.write (0x32);
// Detener la transmisión I2C
Wire.endTransmission ();
// Solicitar 1 byte de datos
Wire.requestFrom (Dirección, 1);
// Leer 1 byte de datos
si (Cable disponible () == 1)
{
T0 = Wire.read ();
}
// Iniciar transmisión I2C
Wire.beginTransmission (Addr);
// Enviar registro de datos
Wire.write (0x33);
// Detener la transmisión I2C
Wire.endTransmission ();
// Solicitar 1 byte de datos
Wire.requestFrom (Dirección, 1);
// Leer 1 byte de datos
si (Cable disponible () == 1)
{
T1 = Wire.read ();
}
// Iniciar transmisión I2C
Wire.beginTransmission (Addr);
// Enviar registro de datos
Wire.write (0x35);
// Detener la transmisión I2C
Wire.endTransmission ();
// Solicitar 1 byte de datos
Wire.requestFrom (Dirección, 1);
// Leer 1 byte de datos
si (Cable disponible () == 1)
{
raw = Wire.read ();
}
raw = raw & 0x0F;
// Convierta los valores de calibración de temperatura a 10 bits
T0 = ((sin procesar y 0x03) * 256) + T0;
T1 = ((sin procesar y 0x0C) * 64) + T1;
para (int i = 0; i <2; i ++)
{
// Iniciar transmisión I2C
Wire.beginTransmission (Addr);
// Enviar registro de datos
Wire.write ((60 + i));
// Detener la transmisión I2C
Wire.endTransmission ();
// Solicitar 1 byte de datos
Wire.requestFrom (Dirección, 1);
// Leer 1 byte de datos
si (Cable disponible () == 1)
{
datos = Wire.read ();
}
}
// Convertir los datos
T2 = (datos [1] * 256,0) + datos [0];
para (int i = 0; i <2; i ++)
{
// Iniciar transmisión I2C
Wire.beginTransmission (Addr);
// Enviar registro de datos
Wire.write ((62 + i));
// Detener la transmisión I2C
Wire.endTransmission ();
// Solicitar 1 byte de datos
Wire.requestFrom (Dirección, 1);
// Leer 1 byte de datos
si (Cable disponible () == 1)
{
datos = Wire.read ();
}
}
// Convertir los datos
T3 = (datos [1] * 256,0) + datos [0];
// Iniciar transmisión I2C
Wire.beginTransmission (Addr);
// Enviar registro de datos
Wire.write (0x28 | 0x80);
// Detener la transmisión I2C
Wire.endTransmission ();
// Solicitar 4 bytes de datos
Wire.requestFrom (Addr, 4);
// Leer 4 bytes de datos
// humedad msb, humedad lsb, temp msb, temp lsb
if (Cable disponible () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// Convertir los datos
humedad de flotación = (val [1] * 256.0) + val [0];
humedad = ((1.0 * H1) - (1.0 * H0)) * (1.0 * humedad - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);
int temp = (val [3] * 256) + val [2];
flotar cTemp = (((T1 - T0) / 8.0) * (temp - T2)) / (T3 - T2) + (T0 / 8.0);
float fTemp = (cTemp * 1.8) + 32;
// Salida de datos al monitor en serie
Serial.print ("Humedad relativa:");
Serial.print (humedad);
Serial.println ("% RH");
Serial.print ("Temperatura en grados Celsius:");
Serial.print (cTemp); Serial.println ("C");
Serial.print ("Temperatura en Fahrenheit:");
Serial.print (fTemp);
Serial.println ("F");
retraso (500);
}
Paso 4: Aplicaciones:
El HTS221 se puede emplear en varios productos de consumo como humidificadores de aire y refrigeradores, etc. Este sensor también encuentra su aplicación en un ámbito más amplio, como la automatización del hogar inteligente, la automatización industrial, los equipos respiratorios, el seguimiento de bienes y activos.
Recomendado:
¡Automatizando un invernadero con LoRa! (Parte 1) -- Sensores (temperatura, humedad, humedad del suelo): 5 pasos
¡Automatizando un invernadero con LoRa! (Parte 1) || Sensores (temperatura, humedad, humedad del suelo): en este proyecto les mostraré cómo automaticé un invernadero. Eso significa que les mostraré cómo construí el invernadero y cómo conecté la electrónica de potencia y automatización. También te mostraré cómo programar una placa Arduino que usa L
Medición de humedad y temperatura con HTS221 y Arduino Nano: 4 pasos
Medición de humedad y temperatura con HTS221 y Arduino Nano: HTS221 es un sensor digital capacitivo ultracompacto para la humedad relativa y la temperatura. Incluye un elemento sensor y un circuito integrado específico de aplicación de señal mixta (ASIC) para proporcionar la información de medición a través de serie digital
Medición de humedad y temperatura con HTS221 y Raspberry Pi: 4 pasos
Medición de humedad y temperatura mediante HTS221 y Raspberry Pi: HTS221 es un sensor digital capacitivo ultracompacto para la humedad relativa y la temperatura. Incluye un elemento sensor y un circuito integrado específico de aplicación de señal mixta (ASIC) para proporcionar la información de medición a través de serie digital
Medición de humedad y temperatura con HTS221 y fotón de partículas: 4 pasos
Medición de temperatura y humedad usando HTS221 y Particle Photon: HTS221 es un sensor digital capacitivo ultracompacto para humedad relativa y temperatura. Incluye un elemento sensor y un circuito integrado específico de aplicación de señal mixta (ASIC) para proporcionar la información de medición a través de serie digital
Registrador de temperatura, humedad relativa y presión atmosférica con Raspberry Pi y TE Connectivity MS8607-02BA01: 22 pasos (con imágenes)
Registrador de temperatura, humedad relativa y presión atmosférica con Raspberry Pi y TE Connectivity MS8607-02BA01: Introducción: En este proyecto, le mostraré cómo crear la configuración paso a paso de un sistema de registro para temperatura, humedad y presión atmosférica. Este proyecto se basa en el chip sensor ambiental Raspberry Pi 3 Model B y TE Connectivity MS8607-02BA