Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-23 15:02
HTS221 er en ultrakompakt kapasitiv digital sensor for relativ fuktighet og temperatur. Den inneholder et følerelement og en spesifikk integrert krets (ASIC) for blandet signal for å gi måleinformasjonen gjennom digitale serielle grensesnitt. Integrert med så mange funksjoner, dette er en av de mest passende sensorene for kritiske fuktighets- og temperaturmålinger.
I denne opplæringen har grensesnittet mellom HTS221 -sensormodulen og partikkelfoton blitt illustrert. For å lese fuktighets- og temperaturverdiene har vi brukt partikkel med en I2c -adapter. Denne I2C -adapteren gjør tilkoblingen til sensormodulen enkel og mer pålitelig.
Trinn 1: Nødvendig maskinvare:
Materialene vi trenger for å nå målet vårt inkluderer følgende maskinvarekomponenter:
1. HTS221
2. Partikkelfoton
3. I2C -kabel
4. I2C -skjerm for partikkelfoton
Trinn 2: Maskinvaretilkobling:
Maskinvarekoblingsdelen forklarer i utgangspunktet ledningsforbindelsene som kreves mellom sensoren og partikkelfotonet. Å sikre riktige tilkoblinger er den grunnleggende nødvendigheten mens du arbeider på et hvilket som helst system for ønsket utgang. Så de nødvendige tilkoblingene er som følger:
HTS221 fungerer over I2C. Her er eksempel på koblingsskjema, som viser hvordan du kobler til hvert grensesnitt på sensoren.
Uten boksen er brettet konfigurert for et I2C-grensesnitt, derfor anbefaler vi å bruke denne tilkoblingen hvis du ellers er agnostiker.
Alt du trenger er fire ledninger! Bare fire tilkoblinger kreves Vcc, Gnd, SCL og SDA -pinner, og disse er koblet til ved hjelp av I2C -kabel.
Disse sammenhengene er vist på bildene ovenfor.
Trinn 3: Kode for fuktighet og temperaturmåling:
La oss begynne med partikkelkoden nå.
Mens vi bruker sensormodulen med partikkelen, inkluderer vi application.h og spark_wiring_i2c.h biblioteket. "application.h" og spark_wiring_i2c.h biblioteket inneholder funksjonene som letter i2c -kommunikasjonen mellom sensoren og partikkelen.
Hele partikkelkoden er gitt nedenfor for brukerens bekvemmelighet:
#inkludere
#inkludere
// HTS221 I2C -adressen er 0x5F
#define Addr 0x5F
dobbel fuktighet = 0,0;
dobbel cTemp = 0,0;
dobbel fTemp = 0,0;
int temp = 0;
ugyldig oppsett ()
{
// Angi variabel
Particle.variable ("i2cdevice", "HTS221");
Partikkel.variabel ("Fuktighet", fuktighet);
Particle.variable ("cTemp", cTemp);
// Initialiser I2C -kommunikasjon som MASTER
Wire.begin ();
// Initialiser seriell kommunikasjon, sett overføringshastighet = 9600
Serial.begin (9600);
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Velg gjennomsnittlig konfigurasjonsregister
Wire.write (0x10);
// Temperatur gjennomsnittlige prøver = 256, Fuktighets gjennomsnittsprøver = 512
Wire.write (0x1B);
// Stopp I2C -overføring
Wire.endTransmission ();
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Velg kontrollregister1
Wire.write (0x20);
// Strøm PÅ, kontinuerlig oppdatering, datautgangshastighet = 1 Hz
Wire.write (0x85);
// Stopp I2C -overføring
Wire.endTransmission ();
forsinkelse (300);
}
hulrom ()
{
usignerte int -data [2];
usignert int val [4];
usignert int H0, H1, H2, H3, T0, T1, T2, T3, rå;
// Verdier for fuktighetskalliberasjon
for (int i = 0; i <2; i ++)
{
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write ((48 + i));
// Stopp I2C -overføring
Wire.endTransmission ();
// Be om 1 byte med data
Wire.requestFrom (Addr, 1);
// Les 1 byte data
hvis (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Konverter fuktighetsdata
H0 = data [0] / 2;
H1 = data [1] / 2;
for (int i = 0; i <2; i ++)
{
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write ((54 + i));
// Stopp I2C -overføring
Wire.endTransmission ();
// Be om 1 byte med data
Wire.requestFrom (Addr, 1);
// Les 1 byte data
hvis (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Konverter fuktighetsdata
H2 = (data [1] * 256,0) + data [0];
for (int i = 0; i <2; i ++)
{
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write ((58 + i));
// Stopp I2C -overføring
Wire.endTransmission ();
// Be om 1 byte med data
Wire.requestFrom (Addr, 1);
// Les 1 byte data
hvis (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Konverter fuktighetsdata
H3 = (data [1] * 256,0) + data [0];
// Temperaturoppkallingsverdier
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write (0x32);
// Stopp I2C -overføring
Wire.endTransmission ();
// Be om 1 byte med data
Wire.requestFrom (Addr, 1);
// Les 1 byte data
hvis (Wire.available () == 1)
{
T0 = Wire.read ();
}
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write (0x33);
// Stopp I2C -overføring
Wire.endTransmission ();
// Be om 1 byte med data
Wire.requestFrom (Addr, 1);
// Les 1 byte data
hvis (Wire.available () == 1)
{
T1 = Wire.read ();
}
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write (0x35);
// Stopp I2C -overføring
Wire.endTransmission ();
// Be om 1 byte med data
Wire.requestFrom (Addr, 1);
// Les 1 byte data
hvis (Wire.available () == 1)
{
raw = Wire.read ();
}
rå = rå & 0x0F;
// Konverter temperaturoppkallingsverdiene til 10-bits
T0 = ((rå & 0x03) * 256) + T0;
T1 = ((rå & 0x0C) * 64) + T1;
for (int i = 0; i <2; i ++)
{
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write ((60 + i));
// Stopp I2C -overføring
Wire.endTransmission ();
// Be om 1 byte med data
Wire.requestFrom (Addr, 1);
// Les 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 -overføring
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write ((62 + i));
// Stopp I2C -overføring
Wire.endTransmission ();
// Be om 1 byte med data
Wire.requestFrom (Addr, 1);
// Les 1 byte data
hvis (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Konverter dataene
T3 = (data [1] * 256,0) + data [0];
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Send dataregister
Wire.write (0x28 | 0x80);
// Stopp I2C -overføring
Wire.endTransmission ();
// Be om 4 byte med data
Wire.requestFrom (Addr, 4);
// Les 4 byte med data
// fuktighet msb, fuktighet 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
fuktighet = (val [1] * 256,0) + val [0];
fuktighet = ((1,0 * H1) - (1,0 * H0)) * (1,0 * fuktighet - 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;
// Utdata til dashbordet
Particle.publish ("Relativ fuktighet:", String (fuktighet));
forsinkelse (1000);
Particle.publish ("Temperatur i Celsius:", String (cTemp));
forsinkelse (1000);
Particle.publish ("Temperatur i Fahrenheit:", String (fTemp));
forsinkelse (1000);
}
Particle.variable () -funksjonen oppretter variablene for å lagre sensorens utgang og Particle.publish () -funksjonen viser utgangen på dashbordet til nettstedet.
Sensorutgangen er vist på bildet ovenfor for din referanse.
Trinn 4: Søknader:
HTS221 kan brukes i forskjellige forbrukerprodukter som luftfuktere og kjøleskap etc. Denne sensoren finner også sin anvendelse på en bredere arena, inkludert smart hjemmeautomatisering, industriell automatisering, åndedrettsutstyr, eiendeler og varesporing.
Anbefalt:
Måling av fuktighet ved bruk av HYT939 og partikkelfoton: 4 trinn
Fuktighetsmåling ved bruk av HYT939 og Particle Photon: HYT939 er en digital fuktighetssensor som fungerer på I2C kommunikasjonsprotokoll. Fuktighet er en sentral parameter når det gjelder medisinske systemer og laboratorier. Så for å nå disse målene prøvde vi å koble HYT939 til bringebær pi. JEG
Måling av fuktighet og temperatur ved bruk av HTS221 og Arduino Nano: 4 trinn
Måling av fuktighet og temperatur ved bruk av HTS221 og Arduino Nano: HTS221 er en ultrakompakt kapasitiv digital sensor for relativ fuktighet og temperatur. Den inkluderer et følerelement og en blandet signalapplikasjonsspesifikk integrert krets (ASIC) for å gi måleinformasjonen gjennom digital seriell
Måling av fuktighet og temperatur ved bruk av HTS221 og Raspberry Pi: 4 trinn
Måling av fuktighet og temperatur ved bruk av HTS221 og Raspberry Pi: HTS221 er en ultrakompakt kapasitiv digital sensor for relativ fuktighet og temperatur. Den inkluderer et følerelement og en blandet signalapplikasjonsspesifikk integrert krets (ASIC) for å gi måleinformasjonen gjennom digital seriell
Måling av fuktighet og temperatur ved bruk av HIH6130 og partikkelfoton: 4 trinn
Måling av fuktighet og temperatur ved bruk av HIH6130 og Particle Photon: HIH6130 er en fuktighets- og temperatursensor med digital utgang. Disse sensorene gir et nøyaktighetsnivå på ± 4% RF. Med bransjeledende langsiktig stabilitet, ekte temperaturkompensert digital I2C, bransjeledende pålitelighet, energieffektivitet
Måling av temperatur og fuktighet ved bruk av HDC1000 og partikkelfoton: 4 trinn
Måling av temperatur og fuktighet ved bruk av HDC1000 og partikkelfoton: HDC1000 er en digital fuktighetssensor med integrert temperatursensor som gir utmerket måle nøyaktighet ved svært lav effekt. Enheten måler fuktighet basert på en ny kapasitiv sensor. Fuktighets- og temperatursensorene er