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. Tukaj je njegova predstavitev s fotonom delcev.
Korak: Kaj potrebujete.. !
1. Foton delcev
2. HDC1000
3. Kabel I²C
4. I²C ščit za fotone delcev
2. korak: Povezava:
Za foton delcev vzemite ščit I2C in ga nežno potisnite čez zatiče fotona delcev.
Nato en konec kabla I2C priključite na tipalo HDC1000, drugi konec pa na ščit I2C.
Povezave so prikazane na zgornji sliki.
3. korak: Koda:
Kodo delcev za HDC1000 lahko prenesete iz našega skladišča GitHub- Dcube Store.
Tukaj je povezava za isto:
github.com/DcubeTechVentures/HDC1000…
Podatkovni list HDC1000 najdete tukaj:
www.ti.com.cn/cn/lit/ds/symlink/hdc1000.pdf
Za kodo delcev smo uporabili dve knjižnici, in sicer application.h in spark_wiring_i2c.h. Za olajšanje komunikacije I2C s senzorjem je potrebna knjižnica Spark_wiring_i2c.
Kodo lahko tudi kopirate od tu, podana je na naslednji način:
// Razdeljeno z licenco za svobodno voljo.
// Uporabljajte ga kakor koli želite, dobičkonosno ali brezplačno, pod pogojem, da ustreza licencam povezanih del.
// HDC1000
// Ta koda je zasnovana za delo z mini modulom HDC1000_I2CS I2C, ki je na voljo v trgovini Dcube.
#vključi
#vključi
// Naslov HDC1000 I2C je 0x40 (64)
#define Addr 0x40
float 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));
Particle.publish ("Temperatura v Celzijusi:", String (cTemp));
Particle.publish ("Temperatura v Fahrenheitu:", String (fTemp));
zamuda (1000);
}
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.