Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
HDC1000 je digitalni senzor vlažnosti z vgrajenim temperaturnim senzorjem, ki zagotavlja odlično merilno natančnost pri zelo nizki moči. Naprava meri vlažnost na podlagi novega kapacitivnega senzorja. Senzorji vlažnosti in temperature so tovarniško umerjeni. Deluje v celotnem temperaturnem območju od -40 ° C do +125 ° C.
V tej vadnici je prikazano povezovanje senzorskega modula HDC1000 s fotonom delcev. Za odčitavanje vrednosti temperature in vlažnosti smo uporabili delce z adapterjem I2c, ki omogoča enostavno in zanesljivo povezavo s senzorskim modulom.
1. korak: Potrebna strojna oprema:
Materiali, ki jih potrebujemo za dosego našega cilja, vključujejo naslednje komponente strojne opreme:
1. HDC1000
2. Foton delcev
3. Kabel I2C
4. I2C ščit za foton delcev
2. korak: Priključitev strojne opreme:
Oddelek za priključitev strojne opreme v bistvu razlaga potrebne povezave ožičenja med senzorjem in fotonom delcev. Zagotavljanje pravilnih povezav je osnovna potreba pri delu na katerem koli sistemu za želeni izhod. Torej so potrebne povezave naslednje:
HDC1000 bo deloval preko I2C. Tu je primer sheme ožičenja, ki prikazuje, kako povezati vsak vmesnik senzorja.
Plošča je že pripravljena za vmesnik I2C, zato priporočamo uporabo te povezave, če niste agnostični.
Vse kar potrebujete so štiri žice! Potrebne so le štiri povezave Vcc, Gnd, SCL in SDA, ki so povezane s kablom I2C.
Te povezave so prikazane na zgornjih slikah.
3. korak: Koda za merjenje temperature in vlažnosti:
Začnimo s kodo delcev.
Med uporabo senzorskega modula z delcem vključujemo knjižnico application.h in spark_wiring_i2c.h. Knjižnica "application.h" in spark_wiring_i2c.h vsebuje funkcije, ki olajšajo komunikacijo i2c med senzorjem in delcem.
Za udobje uporabnika je spodaj navedena celotna koda delcev:
#vključi
#vključi
// Naslov HDC1000 I2C je 0x40 (64)
#define Addr 0x40
dvojni cTemp = 0,0, fTemp = 0,0, vlažnost = 0,0;
int temp = 0, hum = 0;
void setup ()
{
// Nastavi spremenljivko
Particle.variable ("i2cdevice", "HDC1000");
Delci.premenljiva ("vlažnost", vlažnost);
Delci.variable ("cTemp", cTemp);
// Inicializirajte komunikacijo I2C
Wire.begin ();
// Začetek serijske komunikacije, nastavljena hitrost prenosa = 9600
Serial.begin (9600);
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite konfiguracijski register
Wire.write (0x02);
// Temperatura, vlažnost omogočena, ločljivost = 14 bitov, grelec vklopljen
Wire.write (0x30);
// Ustavi prenos I2C
Wire.endTransmission ();
zamuda (300);
}
void loop ()
{
podpisani int podatki [2];
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Pošlji ukaz za merjenje temp
Wire.write (0x00);
// Ustavi prenos I2C
Wire.endTransmission ();
zamuda (500);
// Zahtevajte 2 bajta podatkov
Wire.requestFrom (Addr, 2);
// Preberite 2 bajta podatkov
// temp msb, temp lsb
če (Wire.available () == 2)
{
podatki [0] = Wire.read ();
podatki [1] = Wire.read ();
}
// Pretvorimo podatke
temp = ((podatki [0] * 256) + podatki [1]);
cTemp = (temp / 65536.0) * 165,0 - 40;
fTemp = cTemp * 1,8 + 32;
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Pošlji ukaz za merjenje vlažnosti
Wire.write (0x01);
// Ustavi prenos I2C
Wire.endTransmission ();
zamuda (500);
// Zahtevajte 2 bajta podatkov
Wire.requestFrom (Addr, 2);
// Preberite 2 bajta podatkov
// temp msb, temp lsb
če (Wire.available () == 2)
{
podatki [0] = Wire.read ();
podatki [1] = Wire.read ();
}
// Pretvorimo podatke
hum = ((podatki [0] * 256) + podatki [1]);
vlažnost = (hum / 65536,0) * 100,0;
// Izhod podatkov na nadzorno ploščo
Particle.publish ("Relativna vlažnost:", niz (vlažnost));
zamuda (1000);
Particle.publish ("Temperatura v Celzijusi:", String (cTemp));
zamuda (1000);
Particle.publish ("Temperatura v Fahrenheitu:", String (fTemp));
zamuda (1000);
}
Funkcija Particle.variable () ustvari spremenljivke za shranjevanje izhoda senzorja, funkcija Particle.publish () pa prikaže izpis na nadzorni plošči spletnega mesta.
Izhod senzorja je za vašo referenco prikazan na zgornji sliki.
4. korak: Aplikacije:
HDC1000 se lahko uporablja pri ogrevanju, prezračevanju in klimatizaciji (HVAC), pametnih termostatih in sobnih monitorjih. Ta senzor se uporablja tudi v tiskalnikih, ročnih merilcih, medicinskih pripomočkih, pošiljanju tovora, pa tudi v avtomobilski megli.