Tabla de contenido:
- Paso 1: Hardware necesario:
- Paso 2: Conexión de hardware:
- Paso 3: Código para la medición de temperatura y humedad:
- Paso 4: Aplicaciones:
Video: Medición de humedad y temperatura con HTS221 y fotón de partículas: 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
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.
En este tutorial se ha ilustrado la interfaz del módulo sensor HTS221 con fotones de partículas. Para leer los valores de humedad y temperatura, hemos utilizado partículas con un adaptador I2c. Este adaptador I2C hace que la conexión al módulo sensor sea fácil y más confiable.
Paso 1: Hardware necesario:
Los materiales que necesitamos para lograr nuestro objetivo incluyen los siguientes componentes de hardware:
1. HTS221
2. Fotón de partículas
3. Cable I2C
4. Escudo I2C para fotones de partículas
Paso 2: Conexión de hardware:
La sección de conexión de hardware básicamente explica las conexiones de cableado necesarias entre el sensor y el fotón de partículas. Asegurar las conexiones correctas es la necesidad básica al trabajar en cualquier sistema para obtener la salida deseada. Entonces, las conexiones requeridas son las siguientes:
El HTS221 funcionará sobre I2C. Aquí está el diagrama de cableado de ejemplo, que demuestra cómo cablear cada interfaz del sensor.
Fuera de la caja, la placa está configurada para una interfaz I2C, por lo que recomendamos usar esta conexión si, por lo demás, es agnóstico.
¡Todo lo que necesitas son cuatro cables! Solo se requieren cuatro conexiones Vcc, Gnd, SCL y pines SDA y estos se conectan con la ayuda del cable I2C.
Estas conexiones se muestran en las imágenes de arriba.
Paso 3: Código para la medición de temperatura y humedad:
Comencemos ahora con el código de partículas.
Mientras usamos el módulo sensor con la partícula, incluimos application.hy la biblioteca spark_wiring_i2c.h. La biblioteca "application.h" y spark_wiring_i2c.h contiene las funciones que facilitan la comunicación i2c entre el sensor y la partícula.
El código de partículas completo se proporciona a continuación para comodidad del usuario:
#incluir
#incluir
// La dirección HTS221 I2C es 0x5F
#define Addr 0x5F
doble humedad = 0.0;
cTemp doble = 0.0;
doble fTemp = 0.0;
int temp = 0;
configuración vacía ()
{
// Establecer variable
Particle.variable ("i2cdevice", "HTS221");
Particle.variable ("Humedad", humedad);
Particle.variable ("cTemp", cTemp);
// 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 = (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);
temp = (val [3] * 256) + val [2]; cTemp = (((T1 - T0) / 8.0) * (temp - T2)) / (T3 - T2) + (T0 / 8.0);
fTemp = (cTemp * 1.8) + 32;
// Salida de datos al tablero
Particle.publish ("Humedad relativa:", String (humedad));
retraso (1000);
Particle.publish ("Temperatura en grados Celsius:", String (cTemp));
retraso (1000);
Particle.publish ("Temperatura en Fahrenheit:", String (fTemp));
retraso (1000);
}
La función Particle.variable () crea las variables para almacenar la salida del sensor y la función Particle.publish () muestra la salida en el tablero del sitio.
La salida del sensor se muestra en la imagen de arriba para su referencia.
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:
Medición de temperatura con MCP9803 y fotón de partículas: 4 pasos
Medición de temperatura usando MCP9803 y Particle Photon: MCP9803 es un sensor de temperatura de alta precisión de 2 cables. Están incorporados con registros programables por el usuario que facilitan las aplicaciones de detección de temperatura. Este sensor es adecuado para un sistema de monitoreo de temperatura multizona altamente sofisticado. En el
Medición de temperatura con STS21 y fotón de partículas: 4 pasos
Medición de temperatura con STS21 y fotón de partículas: el sensor de temperatura digital STS21 ofrece un rendimiento superior y un espacio que ocupa poco espacio. Proporciona señales calibradas y linealizadas en formato digital I2C. La fabricación de este sensor se basa en la tecnología CMOSens, que se atribuye a la superioridad
Medición de temperatura con TMP112 y fotón de partículas: 4 pasos
Medición de temperatura con TMP112 y fotón de partículas: módulo I2C MINI de sensor de temperatura digital de baja potencia y alta precisión TMP112. El TMP112 es ideal para mediciones de temperatura extendidas. Este dispositivo ofrece una precisión de ± 0,5 ° C sin necesidad de calibración o acondicionamiento de señal de componente externo. I
Medición de humedad y temperatura con HIH6130 y fotón de partículas: 4 pasos
Medición de humedad y temperatura usando HIH6130 y Particle Photon: HIH6130 es un sensor de humedad y temperatura con salida digital. Estos sensores proporcionan un nivel de precisión de ± 4% RH. Con estabilidad a largo plazo líder en la industria, I2C digital con compensación de temperatura real, confiabilidad líder en la industria, eficiencia energética
Medición de temperatura y humedad con HDC1000 y fotón de partículas: 4 pasos
Medición de temperatura y humedad usando HDC1000 y Particle Photon: El HDC1000 es un sensor de humedad digital con sensor de temperatura integrado que proporciona una excelente precisión de medición a muy baja potencia. El dispositivo mide la humedad basándose en un sensor capacitivo novedoso. Los sensores de humedad y temperatura son fac