Taula de continguts:
Vídeo: Arduino Nano - Tutorial del sensor de temperatura i humitat relativa HTS221: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
HTS221 és un sensor digital capacitiu ultra compacte per a humitat relativa i temperatura. Inclou un element de detecció i un circuit integrat específic d’aplicació de senyal mixta (ASIC) per proporcionar la informació de mesurament a través d’interfícies serials digitals. Integrat amb tantes funcions, aquest és un dels sensors més adequats per a mesuraments crítics d’humitat i temperatura. Aquí teniu la demostració amb arduino nano.
Pas 1: el que necessiteu..
1. Arduino Nano
2. HTS221
3. Cable I²C
4. Escut I²C per a Arduino Nano
Pas 2: connexions:
Agafeu un escut I2C per a Arduino Nano i empenyeu-lo suaument sobre els passadors de Nano.
A continuació, connecteu un extrem del cable I2C al sensor HTS221 i l’altre extrem al blindatge I2C.
Les connexions es mostren a la imatge superior.
Pas 3: Codi:
El codi arduino per a HTS221 es pot descarregar des del nostre repositori de github, la comunitat DCUBE.
Aquí teniu l’enllaç per al mateix:
github.com/DcubeTechVentures/HTS221/blob/master/Arduino/HTS221.ino
Incloem la biblioteca Wire.h per facilitar la comunicació I2c del sensor amb la placa Arduino.
També podeu copiar el codi des d’aquí, es dóna de la següent manera:
// Distribuïda amb llicència de lliure voluntat.
// Utilitzeu-lo de la manera que vulgueu, sense ànim de lucre o de franc, sempre que encaixi en les llicències de les obres associades.
// HTS221
// Aquest codi està dissenyat per funcionar amb el mini mòdul HTS221_I2CS I2C
#incloure
// L'adreça I2C HTS221 és 0x5F
#define Addr 0x5F
configuració nul·la ()
{
// Inicialitzar la comunicació I2C com a MASTER
Wire.begin ();
// Inicialitzar la comunicació en sèrie, establir la velocitat de transmissió = 9600
Serial.begin (9600);
// Inicieu la transmissió I2C
Wire.beginTransmission (Addr);
// Seleccioneu un registre de configuració mitjà
Wire.write (0x10);
// Mostres mitjanes de temperatura = 256, mostres mitjanes d’humitat = 512
Wire.write (0x1B);
// Atura la transmissió I2C
Wire.endTransmission ();
// Inicieu la transmissió I2C
Wire.beginTransmission (Addr);
// Seleccioneu control register1
Wire.write (0x20);
// Encès, actualització contínua, velocitat de sortida de dades = 1 Hz
Wire.write (0x85);
// Atura la transmissió I2C
Wire.endTransmission ();
retard (300);
}
bucle buit ()
{
dades int sense signar [2];
unsigned int val [4];
sense signar int H0, H1, H2, H3, T0, T1, T2, T3, en brut;
// Valors de calibratge d’humitat
per a (int i = 0; i <2; i ++)
{
// Inicieu la transmissió I2C
Wire.beginTransmission (Addr);
// Enviar registre de dades
Wire.write ((48 + i));
// Atura la transmissió I2C
Wire.endTransmission ();
// Sol·liciteu 1 byte de dades
Wire.requestFrom (Addr, 1);
// Llegiu 1 byte de dades
if (Wire.available () == 1)
{
dades = Wire.read ();
}
}
// Converteix les dades d’humitat
H0 = dades [0] / 2;
H1 = dades [1] / 2;
per a (int i = 0; i <2; i ++)
{
// Inicieu la transmissió I2C
Wire.beginTransmission (Addr);
// Enviar registre de dades
Wire.write ((54 + i));
// Atura la transmissió I2C
Wire.endTransmission ();
// Sol·liciteu 1 byte de dades
Wire.requestFrom (Addr, 1);
// Llegiu 1 byte de dades
if (Wire.available () == 1)
{
dades = Wire.read ();
}
}
// Converteix les dades d’humitat
H2 = (dades [1] * 256,0) + dades [0];
per a (int i = 0; i <2; i ++)
{
// Inicieu la transmissió I2C
Wire.beginTransmission (Addr);
// Enviar registre de dades
Wire.write ((58 + i));
// Atura la transmissió I2C
Wire.endTransmission ();
// Sol·liciteu 1 byte de dades
Wire.requestFrom (Addr, 1);
// Llegiu 1 byte de dades
if (Wire.available () == 1)
{
dades = Wire.read ();
}
}
// Converteix les dades d’humitat
H3 = (dades [1] * 256,0) + dades [0];
// Valors de calibratge de temperatura
// Inicieu la transmissió I2C
Wire.beginTransmission (Addr);
// Enviar registre de dades
Wire.write (0x32);
// Atura la transmissió I2C
Wire.endTransmission ();
// Sol·liciteu 1 byte de dades
Wire.requestFrom (Addr, 1);
// Llegiu 1 byte de dades
if (Wire.available () == 1)
{
T0 = Wire.read ();
}
// Inicieu la transmissió I2C
Wire.beginTransmission (Addr);
// Enviar registre de dades
Wire.write (0x33);
// Atura la transmissió I2C
Wire.endTransmission ();
// Sol·liciteu 1 byte de dades
Wire.requestFrom (Addr, 1);
// Llegiu 1 byte de dades
if (Wire.available () == 1)
{
T1 = Wire.read ();
}
// Inicieu la transmissió I2C
Wire.beginTransmission (Addr);
// Enviar registre de dades
Wire.write (0x35);
// Atura la transmissió I2C
Wire.endTransmission ();
// Sol·liciteu 1 byte de dades
Wire.requestFrom (Addr, 1);
// Llegiu 1 byte de dades
if (Wire.available () == 1)
{
raw = Wire.read ();
}
raw = raw & 0x0F;
// Converteix els valors de calibratge de temperatura a 10 bits
T0 = ((en brut & 0x03) * 256) + T0;
T1 = ((en brut & 0x0C) * 64) + T1;
per a (int i = 0; i <2; i ++)
{
// Inicieu la transmissió I2C
Wire.beginTransmission (Addr);
// Enviar registre de dades
Wire.write ((60 + i));
// Atura la transmissió I2C
Wire.endTransmission ();
// Sol·liciteu 1 byte de dades
Wire.requestFrom (Addr, 1);
// Llegiu 1 byte de dades
if (Wire.available () == 1)
{
dades = Wire.read ();
}
}
// Converteix les dades
T2 = (dades [1] * 256,0) + dades [0];
per a (int i = 0; i <2; i ++)
{
// Inicieu la transmissió I2C
Wire.beginTransmission (Addr);
// Enviar registre de dades
Wire.write ((62 + i));
// Atura la transmissió I2C
Wire.endTransmission ();
// Sol·liciteu 1 byte de dades
Wire.requestFrom (Addr, 1);
// Llegiu 1 byte de dades
if (Wire.available () == 1)
{
dades = Wire.read ();
}
}
// Converteix les dades
T3 = (dades [1] * 256,0) + dades [0];
// Inicieu la transmissió I2C
Wire.beginTransmission (Addr);
// Enviar registre de dades
Wire.write (0x28 | 0x80);
// Atura la transmissió I2C
Wire.endTransmission ();
// Sol·liciteu 4 bytes de dades
Wire.requestFrom (Addr, 4);
// Llegiu 4 bytes de dades
// humitat msb, humitat lsb, temp msb, temp lsb
if (Wire.available () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// Converteix les dades
humitat flotant = (val [1] * 256,0) + val [0];
humitat = ((1,0 * H1) - (1,0 * H0)) * (1,0 * humitat - 1,0 * H2) / (1,0 * H3 - 1,0 * H2) + (1,0 * H0);
int temp = (val [3] * 256) + val [2];
float cTemp = (((T1 - T0) / 8.0) * (temp - T2)) / (T3 - T2) + (T0 / 8.0);
float fTemp = (cTemp * 1,8) + 32;
// Sortida de dades al monitor sèrie
Serial.print ("Humitat relativa");
Serial.print (humitat);
Serial.println ("% RH");
Serial.print ("Temperatura en centígrads");
Serial.print (cTemp); Serial.println ("C");
Serial.print ("Temperatura en Fahrenheit:");
Serial.print (fTemp);
Serial.println ("F");
retard (500);
}
Pas 4: aplicacions:
HTS221 es pot utilitzar en diversos productes de consum com humidificadors d'aire i neveres, etc. Aquest sensor també troba la seva aplicació en un àmbit més ampli, inclosa la domòtica intel·ligent, l'automatització industrial, els equips respiratoris, el seguiment d'actius i mercaderies.
Recomanat:
Automatitzar un hivernacle amb LoRa! (Part 1) -- Sensors (temperatura, humitat, humitat del sòl): 5 passos
Automatitzar un hivernacle amb LoRa! (Part 1) || Sensors (temperatura, humitat, humitat del sòl): en aquest projecte us mostraré com he automatitzat un hivernacle. Això vol dir que us mostraré com he construït l'hivernacle i com he connectat l'electrònica de potència i automatització. També us mostraré com programar una placa Arduino que utilitzi L
Mesura de la humitat i la temperatura mitjançant HTS221 i Arduino Nano: 4 passos
Mesura de la humitat i la temperatura mitjançant HTS221 i Arduino Nano: HTS221 és un sensor digital capacitiu ultra compacte per a la humitat relativa i la temperatura. Inclou un element de detecció i un circuit integrat específic d’aplicació de senyal mixta (ASIC) per proporcionar la informació de mesurament mitjançant sèries digitals
Mesura de la humitat i la temperatura mitjançant HTS221 i Raspberry Pi: 4 passos
Mesura de la humitat i la temperatura mitjançant HTS221 i Raspberry Pi: HTS221 és un sensor digital capacitiu ultra compacte per a la humitat relativa i la temperatura. Inclou un element de detecció i un circuit integrat específic d’aplicació de senyal mixta (ASIC) per proporcionar la informació de mesurament mitjançant sèries digitals
Mesura de la humitat i la temperatura mitjançant HTS221 i fotó de partícules: 4 passos
Mesura de la humitat i la temperatura mitjançant HTS221 i el fotó de partícules: HTS221 és un sensor digital capacitiu ultra compacte per a la humitat relativa i la temperatura. Inclou un element de detecció i un circuit integrat específic d’aplicació de senyal mixta (ASIC) per proporcionar la informació de mesurament mitjançant sèries digitals
Registrador de temperatura, humitat relativa i pressió atmosfèrica mitjançant connectivitat Raspberry Pi i TE MS8607-02BA01: 22 passos (amb imatges)
Registrador de temperatura, humitat relativa i pressió atmosfèrica mitjançant Raspberry Pi i connectivitat TE MS8607-02BA01: Introducció: en aquest projecte us mostraré com construir la configuració per passos d’un sistema de registre per a la humitat de la temperatura i la pressió atmosfèrica. Aquest projecte es basa en el xip del sensor ambiental Raspberry Pi 3 Model B i TE Connectivity MS8607-02BA