Indholdsfortegnelse:
- Trin 1: Påkrævet hardware:
- Trin 2: Hardware -tilslutning:
- Trin 3: Kode for luftfugtighed og temperaturmåling:
- Trin 4: Ansøgninger:
Video: Måling af fugtighed og temperatur ved hjælp af HTS221 og partikelfoton: 4 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
HTS221 er en ultrakompakt kapacitiv digital sensor til relativ luftfugtighed og temperatur. Det inkluderer et følerelement og et blandet signal applikationsspecifikt integreret kredsløb (ASIC) til at levere måleoplysningerne gennem digitale serielle grænseflader. Integreret med så mange funktioner er dette en af de mest passende sensorer til kritiske fugtigheds- og temperaturmålinger.
I denne vejledning er grænsefladen mellem HTS221 sensormodul og partikelfoton blevet illustreret. For at aflæse fugtigheds- og temperaturværdier har vi brugt partikler med en I2c -adapter. Denne I2C -adapter gør forbindelsen til sensormodulet let og mere pålidelig.
Trin 1: Påkrævet hardware:
De materialer, vi har brug for for at nå vores mål, omfatter følgende hardwarekomponenter:
1. HTS221
2. Partikelfoton
3. I2C -kabel
4. I2C -skærm til partikelfoton
Trin 2: Hardware -tilslutning:
Hardwaretilslutningssektionen forklarer dybest set de ledningsforbindelser, der kræves mellem sensoren og partikelfonen. At sikre korrekte forbindelser er den grundlæggende nødvendighed, mens du arbejder på et hvilket som helst system til den ønskede output. Så de nødvendige forbindelser er som følger:
HTS221 fungerer over I2C. Her er eksemplet på ledningsdiagram, der viser, hvordan du tilslutter hver grænseflade på sensoren.
Out-of-the-box er tavlen konfigureret til en I2C-grænseflade, som sådan anbefaler vi at bruge denne tilslutning, hvis du ellers er agnostiker.
Alt du behøver er fire ledninger! Der kræves kun fire tilslutninger Vcc, Gnd, SCL og SDA ben, og disse er forbundet ved hjælp af I2C kabel.
Disse forbindelser er vist på billederne ovenfor.
Trin 3: Kode for luftfugtighed og temperaturmåling:
Lad os starte med partikelkoden nu.
Mens vi bruger sensormodulet med partiklen, inkluderer vi application.h og spark_wiring_i2c.h bibliotek. "application.h" og spark_wiring_i2c.h biblioteket indeholder de funktioner, der letter i2c -kommunikationen mellem sensoren og partiklen.
Hele partikelkoden er angivet nedenfor for brugerens bekvemmelighed:
#omfatte
#omfatte
// HTS221 I2C -adressen er 0x5F
#define Addr 0x5F
dobbelt luftfugtighed = 0,0;
dobbelt cTemp = 0,0;
dobbelt fTemp = 0,0;
int temp = 0;
ugyldig opsætning ()
{
// Indstil variabel
Partikel.variabel ("i2cdevice", "HTS221");
Partikel.variabel ("Fugtighed", fugtighed);
Particle.variable ("cTemp", cTemp);
// Initialiser I2C -kommunikation som MASTER
Wire.begin ();
// Initialiser seriel kommunikation, indstil baudhastighed = 9600
Serial.begin (9600);
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Vælg gennemsnitligt konfigurationsregister
Wire.write (0x10);
// Temperaturgennemsnitlige prøver = 256, Fugtighedsgennemsnitlige prøver = 512
Wire.write (0x1B);
// Stop I2C -transmission
Wire.endTransmission ();
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Vælg kontrolregister1
Wire.write (0x20);
// Tænd, kontinuerlig opdatering, dataudgangshastighed = 1 Hz
Wire.write (0x85);
// Stop I2C -transmission
Wire.endTransmission ();
forsinkelse (300);
}
hulrum ()
{
usignerede int -data [2];
usigneret int val [4];
usigneret int H0, H1, H2, H3, T0, T1, T2, T3, rå;
// Fugtighedsopkaldelsesværdier
for (int i = 0; i <2; i ++)
{
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write ((48 + i));
// Stop I2C -transmission
Wire.endTransmission ();
// Anmod om 1 byte data
Wire.requestFrom (Addr, 1);
// Læs 1 byte data
hvis (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Konverter fugtighedsdata
H0 = data [0] / 2;
H1 = data [1] / 2;
for (int i = 0; i <2; i ++)
{
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write ((54 + i));
// Stop I2C -transmission
Wire.endTransmission ();
// Anmod om 1 byte data
Wire.requestFrom (Addr, 1);
// Læs 1 byte data
hvis (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Konverter fugtighedsdata
H2 = (data [1] * 256,0) + data [0];
for (int i = 0; i <2; i ++)
{
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write ((58 + i));
// Stop I2C -transmission
Wire.endTransmission ();
// Anmod om 1 byte data
Wire.requestFrom (Addr, 1);
// Læs 1 byte data
hvis (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Konverter fugtighedsdata
H3 = (data [1] * 256,0) + data [0];
// Temperaturopkaldsværdier
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write (0x32);
// Stop I2C -transmission
Wire.endTransmission ();
// Anmod om 1 byte data
Wire.requestFrom (Addr, 1);
// Læs 1 byte data
hvis (Wire.available () == 1)
{
T0 = Wire.read ();
}
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write (0x33);
// Stop I2C -transmission
Wire.endTransmission ();
// Anmod om 1 byte data
Wire.requestFrom (Addr, 1);
// Læs 1 byte data
hvis (Wire.available () == 1)
{
T1 = Wire.read ();
}
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write (0x35);
// Stop I2C -transmission
Wire.endTransmission ();
// Anmod om 1 byte data
Wire.requestFrom (Addr, 1);
// Læs 1 byte data
hvis (Wire.available () == 1)
{
raw = Wire.read ();
}
rå = rå & 0x0F;
// Konverter temperaturopkaldsværdierne til 10-bit
T0 = ((rå & 0x03) * 256) + T0;
T1 = ((rå & 0x0C) * 64) + T1;
for (int i = 0; i <2; i ++)
{
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write ((60 + i));
// Stop I2C -transmission
Wire.endTransmission ();
// Anmod om 1 byte data
Wire.requestFrom (Addr, 1);
// Læs 1 byte data
hvis (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Konverter dataene
T2 = (data [1] * 256,0) + data [0];
for (int i = 0; i <2; i ++)
{
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write ((62 + i));
// Stop I2C -transmission
Wire.endTransmission ();
// Anmod om 1 byte data
Wire.requestFrom (Addr, 1);
// Læs 1 byte data
hvis (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Konverter dataene
T3 = (data [1] * 256,0) + data [0];
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write (0x28 | 0x80);
// Stop I2C -transmission
Wire.endTransmission ();
// Anmod om 4 bytes data
Wire.requestFrom (Addr, 4);
// Læs 4 bytes data
// fugtigheds msb, fugtighed lsb, temp msb, temp lsb
hvis (Wire.available () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// Konverter dataene
fugtighed = (val [1] * 256,0) + val [0];
fugtighed = ((1,0 * H1) - (1,0 * H0)) * (1,0 * fugtighed - 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;
// Output data til dashboard
Particle.publish ("Relativ luftfugtighed:", String (fugtighed));
forsinkelse (1000);
Particle.publish ("Temperatur i Celsius:", String (cTemp));
forsinkelse (1000);
Particle.publish ("Temperatur i Fahrenheit:", String (fTemp));
forsinkelse (1000);
}
Funktionen Particle.variable () opretter variablerne til lagring af sensorens output og Particle.publish () -funktionen viser outputtet på webstedets dashboard.
Sensorudgangen er vist på billedet ovenfor til din reference.
Trin 4: Ansøgninger:
HTS221 kan bruges i forskellige forbrugerprodukter som luftfugtere og køleskabe osv. Denne sensor finder også sin anvendelse i en bredere arena, herunder smart hjemmeautomatisering, industriel automatisering, åndedrætsudstyr, aktiv- og varesporing.
Anbefalede:
Måling af fugtighed og temperatur ved hjælp af HTS221 og Arduino Nano: 4 trin
Måling af fugtighed og temperatur ved hjælp af HTS221 og Arduino Nano: HTS221 er en ultrakompakt kapacitiv digital sensor til relativ luftfugtighed og temperatur. Det inkluderer et følerelement og et blandet signal applikationsspecifikt integreret kredsløb (ASIC) til at levere måleoplysningerne gennem digital seriel
Overvågning af temperatur og fugtighed ved hjælp af SHT25 og partikelfoton: 5 trin
Temperatur- og fugtighedsovervågning ved hjælp af SHT25 og Particle Photon: Vi har for nylig arbejdet på forskellige projekter, som krævede temperatur- og fugtighedsovervågning, og derefter indså vi, at disse to parametre faktisk spiller en afgørende rolle for at have et skøn over effektiviteten af et system. Begge på indus
Måling af fugtighed og temperatur ved hjælp af HTS221 og Raspberry Pi: 4 trin
Måling af luftfugtighed og temperatur ved hjælp af HTS221 og Raspberry Pi: HTS221 er en ultrakompakt kapacitiv digital sensor til relativ luftfugtighed og temperatur. Det inkluderer et følerelement og et blandet signal applikationsspecifikt integreret kredsløb (ASIC) til at levere måleoplysningerne gennem digital seriel
Måling af fugtighed og temperatur ved hjælp af HIH6130 og partikelfoton: 4 trin
Måling af luftfugtighed og temperatur ved hjælp af HIH6130 og Particle Photon: HIH6130 er en luftfugtigheds- og temperatursensor med digital udgang. Disse sensorer giver et nøjagtighedsniveau på ± 4% RF. Med brancheførende langsigtet stabilitet, ægte temperaturkompenseret digital I2C, brancheførende pålidelighed, energieffektivitet
Måling af temperatur og fugtighed ved hjælp af HDC1000 og partikelfoton: 4 trin
Måling af temperatur og fugtighed ved hjælp af HDC1000 og partikelfoton: HDC1000 er en digital fugtighedsføler med integreret temperatursensor, der giver fremragende målepræcision ved meget lav effekt. Enheden måler fugtighed baseret på en ny kapacitiv sensor. Fugtigheds- og temperatursensorerne er fac