
Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38


HTS221 je ultra kompaktní kapacitní digitální senzor pro relativní vlhkost a teplotu. Obsahuje snímací prvek a integrovaný obvod specifický pro smíšený signál (ASIC), který poskytuje informace o měření prostřednictvím digitálních sériových rozhraní. Integrovaný s tolika funkcemi je jedním z nejvhodnějších senzorů pro kritická měření vlhkosti a teploty.
V tomto tutoriálu bylo ukázáno propojení senzorového modulu HTS221 s fotonem částic. Ke čtení hodnot vlhkosti a teploty jsme použili částice s adaptérem I2c. Tento adaptér I2C umožňuje snadné a spolehlivější připojení k modulu senzoru.
Krok 1: Požadovaný hardware:



Materiály, které potřebujeme k dosažení našeho cíle, zahrnují následující hardwarové komponenty:
1. HTS221
2. Foton částic
3. Kabel I2C
4. I2C štít pro částicový foton
Krok 2: Připojení hardwaru:


Sekce zapojení hardwaru v zásadě vysvětluje zapojení potřebná pro připojení mezi snímačem a fotonem částic. Zajištění správného připojení je základní nutností při práci na jakémkoli systému pro požadovaný výstup. Požadovaná připojení jsou tedy následující:
HTS221 bude fungovat přes I2C. Zde je příklad schématu zapojení, které ukazuje, jak zapojit jednotlivá rozhraní senzoru.
Po vybalení je deska nakonfigurována pro rozhraní I2C, proto doporučujeme tuto přípojku použít, pokud jste jinak agnostik.
Vše, co potřebujete, jsou čtyři dráty! Jsou vyžadována pouze čtyři připojení Vcc, Gnd, SCL a SDA piny a ty jsou spojeny pomocí kabelu I2C.
Tato spojení jsou ukázána na obrázcích výše.
Krok 3: Kód pro měření vlhkosti a teploty:

Začněme nyní kódem částic.
Při použití senzorového modulu s částicemi zahrnujeme knihovnu application.h a spark_wiring_i2c.h. Knihovna „application.h“a spark_wiring_i2c.h obsahuje funkce, které usnadňují komunikaci i2c mezi senzorem a částicem.
Celý kód částic je pro pohodlí uživatele uveden níže:
#zahrnout
#zahrnout
// Adresa I2C HTS221 je 0x5F
#define Addr 0x5F
dvojnásobná vlhkost = 0,0;
double cTemp = 0,0;
dvojnásobek fTemp = 0,0;
int temp = 0;
neplatné nastavení ()
{
// Nastavit proměnnou
Proměnná částice ("i2cdevice", "HTS221");
Proměnná částice („Vlhkost“, vlhkost);
Particle.variable ("cTemp", cTemp);
// Inicializujte komunikaci I2C jako MASTER
Wire.begin ();
// Inicializace sériové komunikace, nastavení přenosové rychlosti = 9600
Serial.begin (9600);
// Spusťte přenos I2C
Wire.beginTransmission (Addr);
// Vyberte průměrný konfigurační registr
Wire.write (0x10);
// Průměrné teplotní vzorky = 256, Vlhké průměrné vzorky = 512
Wire.write (0x1B);
// Zastavte přenos I2C
Wire.endTransmission ();
// Spusťte přenos I2C
Wire.beginTransmission (Addr);
// Vyberte řídicí registr1
Wire.write (0x20);
// ZAPNUTO, nepřetržitá aktualizace, výstupní rychlost dat = 1 Hz
Wire.write (0x85);
// Zastavte přenos I2C
Wire.endTransmission ();
zpoždění (300);
}
prázdná smyčka ()
{
nepodepsaná int data [2];
bez znaménka int val [4];
nepodepsané int H0, H1, H2, H3, T0, T1, T2, T3, raw;
// Hodnoty kalibrace vlhkosti
pro (int i = 0; i <2; i ++)
{
// Spusťte přenos I2C
Wire.beginTransmission (Addr);
// Odeslání datového registru
Wire.write ((48 + i));
// Zastavte přenos I2C
Wire.endTransmission ();
// Vyžádejte si 1 bajt dat
Wire.requestFrom (Addr, 1);
// Přečíst 1 bajt dat
pokud (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Převod údajů o vlhkosti
H0 = data [0] / 2;
H1 = data [1] / 2;
pro (int i = 0; i <2; i ++)
{
// Spusťte přenos I2C
Wire.beginTransmission (Addr);
// Odeslání datového registru
Wire.write ((54 + i));
// Zastavte přenos I2C
Wire.endTransmission ();
// Vyžádejte si 1 bajt dat
Wire.requestFrom (Addr, 1);
// Přečíst 1 bajt dat
pokud (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Převod údajů o vlhkosti
H2 = (data [1] * 256,0) + data [0];
pro (int i = 0; i <2; i ++)
{
// Spusťte přenos I2C
Wire.beginTransmission (Addr);
// Odeslání datového registru
Wire.write ((58 + i));
// Zastavte přenos I2C
Wire.endTransmission ();
// Vyžádejte si 1 bajt dat
Wire.requestFrom (Addr, 1);
// Přečíst 1 bajt dat
pokud (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Převod údajů o vlhkosti
H3 = (data [1] * 256,0) + data [0];
// Hodnoty kalibrace teploty
// Spusťte přenos I2C
Wire.beginTransmission (Addr);
// Odeslání datového registru
Wire.write (0x32);
// Zastavte přenos I2C
Wire.endTransmission ();
// Vyžádejte si 1 bajt dat
Wire.requestFrom (Addr, 1);
// Přečíst 1 bajt dat
pokud (Wire.available () == 1)
{
T0 = Wire.read ();
}
// Spusťte přenos I2C
Wire.beginTransmission (Addr);
// Odeslání datového registru
Wire.write (0x33);
// Zastavte přenos I2C
Wire.endTransmission ();
// Vyžádejte si 1 bajt dat
Wire.requestFrom (Addr, 1);
// Přečíst 1 bajt dat
pokud (Wire.available () == 1)
{
T1 = Wire.read ();
}
// Spusťte přenos I2C
Wire.beginTransmission (Addr);
// Odeslání datového registru
Wire.write (0x35);
// Zastavte přenos I2C
Wire.endTransmission ();
// Vyžádejte si 1 bajt dat
Wire.requestFrom (Addr, 1);
// Přečíst 1 bajt dat
pokud (Wire.available () == 1)
{
raw = Wire.read ();
}
raw = raw & 0x0F;
// Převede hodnoty kalibrace teploty na 10 bitů
T0 = ((surový & 0x03) * 256) + T0;
T1 = ((surový & 0x0C) * 64) + T1;
pro (int i = 0; i <2; i ++)
{
// Spusťte přenos I2C
Wire.beginTransmission (Addr);
// Odeslání datového registru
Wire.write ((60 + i));
// Zastavte přenos I2C
Wire.endTransmission ();
// Vyžádejte si 1 bajt dat
Wire.requestFrom (Addr, 1);
// Přečíst 1 bajt dat
pokud (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Převod dat
T2 = (data [1] * 256,0) + data [0];
pro (int i = 0; i <2; i ++)
{
// Spusťte přenos I2C
Wire.beginTransmission (Addr);
// Odeslání datového registru
Wire.write ((62 + i));
// Zastavte přenos I2C
Wire.endTransmission ();
// Vyžádejte si 1 bajt dat
Wire.requestFrom (Addr, 1);
// Přečíst 1 bajt dat
pokud (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Převod dat
T3 = (data [1] * 256,0) + data [0];
// Spusťte přenos I2C
Wire.beginTransmission (Addr);
// Odeslání datového registru
Wire.write (0x28 | 0x80);
// Zastavte přenos I2C
Wire.endTransmission ();
// Vyžádejte si 4 bajty dat
Wire.requestFrom (Addr, 4);
// Přečíst 4 bajty dat
// vlhkost msb, vlhkost lsb, temp msb, temp lsb
pokud (Wire.available () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// Převod dat
vlhkost = (val [1] * 256,0) + val [0];
vlhkost = ((1,0 * H1) - (1,0 * H0)) * (1,0 * vlhkost - 1,0 * H2) / (1,0 * H3 - 1,0 * H2) + (1,0 * H0);
temp = (val [3] * 256) + val [2]; cTemp = (((T1 - T0) / 8,0) * (teplota - T2)) / (T3 - T2) + (T0 / 8,0);
fTemp = (cTemp * 1,8) + 32;
// Výstup dat na řídicí panel
Particle.publish ("Relativní vlhkost:", Řetězec (vlhkost));
zpoždění (1000);
Particle.publish ("Teplota ve stupních Celsia:", řetězec (cTemp));
zpoždění (1000);
Particle.publish ("Teplota ve stupních Fahrenheita:", řetězec (fTemp));
zpoždění (1000);
}
Funkce Particle.variable () vytváří proměnné pro uložení výstupu senzoru a funkce Particle.publish () zobrazuje výstup na palubní desce webu.
Výstup snímače je uveden na obrázku výše pro vaši referenci.
Krok 4: Aplikace:

HTS221 lze použít v různých spotřebních výrobcích, jako jsou zvlhčovače vzduchu a chladničky atd. Tento senzor také nachází své uplatnění v širších oblastech, včetně inteligentní domácí automatizace, průmyslové automatizace, respiračních zařízení, sledování majetku a zboží.
Doporučuje:
Měření vlhkosti pomocí HYT939 a fotonu částic: 4 kroky

Měření vlhkosti pomocí fotonů HYT939 a Particle: HYT939 je digitální senzor vlhkosti, který pracuje na komunikačním protokolu I2C. Vlhkost je klíčovým parametrem, pokud jde o lékařské systémy a laboratoře, takže abychom dosáhli těchto cílů, pokusili jsme se propojit HYT939 s malinovým pi. Já
Měření teploty pomocí MCP9803 a fotonu částic: 4 kroky

Měření teploty pomocí MCP9803 a částicového fotonu: MCP9803 je 2vodičový vysoce přesný teplotní senzor. Jsou provedeny s uživatelsky programovatelnými registry, které usnadňují aplikace snímání teploty. Tento senzor je vhodný pro vysoce sofistikovaný vícezónový systém monitorování teploty. V
Měření teploty pomocí STS21 a fotonu částic: 4 kroky

Měření teploty pomocí fotonu STS21 a částicového fotonu: Digitální snímač teploty STS21 nabízí vynikající výkon a prostorově úspornou stopu. Poskytuje kalibrované linearizované signály v digitálním formátu I2C. Výroba tohoto senzoru je založena na technologii CMOSens, která připisuje vynikající
Měření vlhkosti a teploty pomocí HIH6130 a fotonu částic: 4 kroky

Měření vlhkosti a teploty pomocí HIH6130 a částicového fotonu: HIH6130 je snímač vlhkosti a teploty s digitálním výstupem. Tyto senzory poskytují úroveň přesnosti ± 4% RH. Díky špičkové dlouhodobé stabilitě, skutečné teplotně kompenzované digitální I2C, špičkové spolehlivosti, energetické účinnosti
Měření teploty a vlhkosti pomocí HDC1000 a fotonu částic: 4 kroky

Měření teploty a vlhkosti pomocí HDC1000 a fotonu částic: HDC1000 je digitální snímač vlhkosti s integrovaným snímačem teploty, který poskytuje vynikající přesnost měření při velmi nízkém výkonu. Zařízení měří vlhkost na základě nového kapacitního senzoru. Senzory vlhkosti a teploty jsou