Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-23 15:05
HTS221 je ultrakompaktný kapacitný digitálny snímač relatívnej vlhkosti a teploty. Obsahuje snímací prvok a integrovaný obvod špecifický pre zmiešaný signál (ASIC) na poskytovanie informácií o meraní prostredníctvom digitálnych sériových rozhraní. Integrovaný s toľkými funkciami, je to jeden z najvhodnejších senzorov pre kritické merania vlhkosti a teploty.
V tomto tutoriáli bolo ilustrované prepojenie senzorového modulu HTS221 s fotónom častíc. Na čítanie hodnôt vlhkosti a teploty sme použili častice s adaptérom I2c. Tento adaptér I2C umožňuje jednoduché a spoľahlivé pripojenie k modulu snímača.
Krok 1: Potrebný hardvér:
Materiály, ktoré potrebujeme na dosiahnutie nášho cieľa, obsahujú nasledujúce hardvérové komponenty:
1. HTS221
2. Fotón častíc
3. Kábel I2C
4. I2C štít pre časticový fotón
Krok 2: Pripojenie hardvéru:
Časť zapojenia hardvéru v zásade vysvetľuje zapojenie potrebné medzi senzorom a fotónom častíc. Zabezpečenie správneho pripojenia je základnou potrebou pri práci na akomkoľvek systéme s požadovaným výstupom. Potrebné spojenia sú teda tieto:
HTS221 bude fungovať cez I2C. Tu je príklad schémy zapojenia, ktorá ukazuje, ako prepojiť každé rozhranie snímača.
Hneď po vybalení je doska nakonfigurovaná na rozhranie I2C, preto vám toto pripojenie odporúčame použiť, ak ste inak agnostik.
Všetko, čo potrebujete, sú štyri drôty! Vyžadujú sa iba štyri pripojenia Vcc, Gnd, SCL a SDA piny, ktoré sú prepojené pomocou kábla I2C.
Tieto spojenia sú znázornené na obrázkoch vyššie.
Krok 3: Kód na meranie vlhkosti a teploty:
Začnime teraz s časticovým kódom.
Pri použití senzorového modulu s časticami zahrnujeme knižnicu application.h a spark_wiring_i2c.h. Knižnica "application.h" a spark_wiring_i2c.h obsahuje funkcie, ktoré uľahčujú i2c komunikáciu medzi senzorom a časticou.
Celý kód častíc je pre pohodlie užívateľa uvedený nižšie:
#zahrnúť
#zahrnúť
// Adresa HTS221 I2C je 0x5F
#define Addr 0x5F
dvojnásobná vlhkosť = 0,0;
dvojnásobná teplota c = 0,0;
dvojnásobok fTemp = 0,0;
int temp = 0;
neplatné nastavenie ()
{
// Nastavenie premennej
Premenná častica ("i2cdevice", "HTS221");
Častica.proměnná ("Vlhkosť", vlhkosť);
Particle.variable ("cTemp", cTemp);
// Inicializujte komunikáciu I2C ako MASTER
Wire.begin ();
// Inicializujte sériovú komunikáciu, nastavte prenosovú rýchlosť = 9600
Serial.begin (9600);
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Vyberte priemerný konfiguračný register
Wire.write (0x10);
// Priemerné teplotné vzorky = 256, Vlhké priemerné vzorky = 512
Wire.write (0x1B);
// Zastavte prenos I2C
Wire.endTransmission ();
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Vyberte riadiaci register1
Wire.write (0x20);
// ZAPNUTIE, nepretržitá aktualizácia, rýchlosť dátového výstupu = 1 Hz
Wire.write (0x85);
// Zastavte prenos I2C
Wire.endTransmission ();
oneskorenie (300);
}
prázdna slučka ()
{
int data bez znamienka [2];
bez znamienka int val [4];
bez znamienka int H0, H1, H2, H3, T0, T1, T2, T3, surový;
// Hodnoty kalibrácie vlhkosti
pre (int i = 0; i <2; i ++)
{
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Odoslanie dátového registra
Wire.write ((48 + i));
// Zastavte prenos I2C
Wire.endTransmission ();
// Požiadajte o 1 bajt údajov
Wire.requestFrom (Addr, 1);
// Prečítajte 1 bajt údajov
ak (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Previesť údaje o vlhkosti
H0 = údaje [0] / 2;
H1 = údaje [1] / 2;
pre (int i = 0; i <2; i ++)
{
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Odoslanie dátového registra
Wire.write ((54 + i));
// Zastavte prenos I2C
Wire.endTransmission ();
// Požiadajte o 1 bajt údajov
Wire.requestFrom (Addr, 1);
// Prečítajte 1 bajt údajov
ak (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Previesť údaje o vlhkosti
H2 = (údaje [1] * 256,0) + údaje [0];
pre (int i = 0; i <2; i ++)
{
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Odoslanie dátového registra
Wire.write ((58 + i));
// Zastavte prenos I2C
Wire.endTransmission ();
// Požiadajte o 1 bajt údajov
Wire.requestFrom (Addr, 1);
// Prečítajte 1 bajt údajov
ak (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Previesť údaje o vlhkosti
H3 = (údaje [1] x 256,0) + údaje [0];
// Hodnoty kalibrácie teploty
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Odoslanie dátového registra
Wire.write (0x32);
// Zastavte prenos I2C
Wire.endTransmission ();
// Požiadajte o 1 bajt údajov
Wire.requestFrom (Addr, 1);
// Prečítajte 1 bajt údajov
ak (Wire.available () == 1)
{
T0 = Wire.read ();
}
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Odoslanie dátového registra
Wire.write (0x33);
// Zastavte prenos I2C
Wire.endTransmission ();
// Požiadajte o 1 bajt údajov
Wire.requestFrom (Addr, 1);
// Prečítajte 1 bajt údajov
ak (Wire.available () == 1)
{
T1 = Wire.read ();
}
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Odoslanie dátového registra
Wire.write (0x35);
// Zastavte prenos I2C
Wire.endTransmission ();
// Požiadajte o 1 bajt údajov
Wire.requestFrom (Addr, 1);
// Prečítajte 1 bajt údajov
ak (Wire.available () == 1)
{
raw = Wire.read ();
}
raw = surový & 0x0F;
// Previesť hodnoty kalibrácie teploty na 10-bitové
T0 = ((surový & 0x03) * 256) + T0;
T1 = ((surový & 0x0C) * 64) + T1;
pre (int i = 0; i <2; i ++)
{
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Odoslanie dátového registra
Wire.write ((60 + i));
// Zastavte prenos I2C
Wire.endTransmission ();
// Požiadajte o 1 bajt údajov
Wire.requestFrom (Addr, 1);
// Prečítajte 1 bajt údajov
ak (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Previesť údaje
T2 = (údaje [1] * 256,0) + údaje [0];
pre (int i = 0; i <2; i ++)
{
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Odoslanie dátového registra
Wire.write ((62 + i));
// Zastavte prenos I2C
Wire.endTransmission ();
// Požiadajte o 1 bajt údajov
Wire.requestFrom (Addr, 1);
// Prečítajte 1 bajt údajov
ak (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Previesť údaje
T3 = (údaje [1] * 256,0) + údaje [0];
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Odoslanie dátového registra
Wire.write (0x28 | 0x80);
// Zastavte prenos I2C
Wire.endTransmission ();
// Požiadajte o 4 bajty údajov
Wire.requestFrom (Addr, 4);
// Prečítajte 4 bajty údajov
// vlhkosť msb, vlhkosť lsb, temp msb, temp lsb
ak (Wire.available () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// Previesť údaje
vlhkosť = (val [1] * 256,0) + val [0];
vlhkosť = ((1,0 * H1) - (1,0 * H0)) * (1,0 * vlhkosť - 1,0 * H2) / (1,0 * H3 - 1,0 * H2) + (1,0 * H0);
teplota = (val [3] * 256) + val [2]; cTemp = (((T1 - T0) / 8,0) * (teplota - T2)) / (T3 - T2) + (T0 / 8,0);
fTemp = (cTemp * 1,8) + 32;
// Výstup údajov na informačný panel
Particle.publish ("Relatívna vlhkosť:", Reťazec (vlhkosť));
oneskorenie (1000);
Particle.publish („Teplota v stupňoch Celzia:“, reťazec (cTemp));
oneskorenie (1000);
Particle.publish („Teplota vo Fahrenheite:“, reťazec (fTemp));
oneskorenie (1000);
}
Funkcia Particle.variable () vytvára premenné na ukladanie výstupu zo senzora a funkcia Particle.publish () zobrazuje výstup na palubnej doske webu.
Výstup senzora je pre vašu referenciu zobrazený na obrázku vyššie.
Krok 4: Aplikácie:
HTS221 je možné použiť v rôznych spotrebiteľských výrobkoch, ako sú zvlhčovače vzduchu a chladničky atď. Tento senzor nachádza svoje uplatnenie aj v širšej oblasti, vrátane inteligentnej domácej automatizácie, priemyselnej automatizácie, respiračných zariadení, sledovania majetku a tovaru.
Odporúča:
Meranie vlhkosti pomocou HYT939 a fotónu častíc: 4 kroky
Meranie vlhkosti pomocou fotónu HYT939 a časticového fotónu: HYT939 je digitálny snímač vlhkosti, ktorý pracuje na komunikačnom protokole I2C. Vlhkosť je kľúčovým parametrom, pokiaľ ide o lekárske systémy a laboratóriá, takže aby sme dosiahli tieto ciele, pokúsili sme sa prepojiť HYT939 s malinovou pi. Ja
Meranie teploty pomocou MCP9803 a fotónu častíc: 4 kroky
Meranie teploty pomocou MCP9803 a fotónu častíc: MCP9803 je 2-vodičový vysoko presný teplotný senzor. Sú vybavené užívateľsky programovateľnými registrami, ktoré uľahčujú aplikácie snímania teploty. Tento senzor je vhodný pre vysoko sofistikovaný viaczónový systém monitorovania teploty. V
Meranie teploty pomocou STS21 a fotónu častíc: 4 kroky
Meranie teploty pomocou STS21 a fotónu častíc: Digitálny snímač teploty STS21 ponúka vynikajúci výkon a priestorovo úspornú stopu. Poskytuje kalibrované linearizované signály v digitálnom formáte I2C. Výroba tohto senzora je založená na technológii CMOSens, ktorá pripisuje vynikajúcemu
Meranie vlhkosti a teploty pomocou HIH6130 a fotónu častíc: 4 kroky
Meranie vlhkosti a teploty pomocou HIH6130 a fotónu častíc: HIH6130 je snímač vlhkosti a teploty s digitálnym výstupom. Tieto senzory poskytujú úroveň presnosti ± 4% relatívnej vlhkosti. Vďaka špičkovej dlhodobej stabilite, skutočnému digitálnemu I2C s teplotnou kompenzáciou, špičkovej spoľahlivosti, energetickej účinnosti
Meranie teploty a vlhkosti pomocou HDC1000 a fotónu častíc: 4 kroky
Meranie teploty a vlhkosti pomocou HDC1000 a fotónu častíc: HDC1000 je digitálny snímač vlhkosti s integrovaným snímačom teploty, ktorý poskytuje vynikajúcu presnosť merania pri veľmi nízkom výkone. Zariadenie meria vlhkosť na základe nového kapacitného senzora. Senzory vlhkosti a teploty sú