2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
HDC1000 este un senzor digital de umiditate cu senzor de temperatură integrat care oferă o precizie excelentă de măsurare la o putere foarte mică. Dispozitivul măsoară umiditatea pe baza unui nou senzor capacitiv. Senzorii de umiditate și temperatură sunt calibrați din fabrică. Este funcțional în intervalul de temperatură între -40 ° C și + 125 ° C. Iată demonstrația sa cu fotonul de particule.
Pasul 1: De ce ai nevoie..
1. Fotonul particulelor
2. HDC1000
3. Cablu I²C
4. Scutul I²C pentru fotonul de particule
Pasul 2: Conexiune:
Luați un scut I2C pentru fotonul particulelor și împingeți-l ușor peste pinii fotonului particulei.
Apoi conectați capătul cablului I2C la senzorul HDC1000 și celălalt capăt la ecranul I2C.
Conexiunile sunt afișate în imaginea de mai sus.
Pasul 3: Cod:
Codul de particule pentru HDC1000 poate fi descărcat din depozitul nostru GitHub - Magazinul Dcube.
Iată linkul pentru același lucru:
github.com/DcubeTechVentures/HDC1000…
Fișa tehnică a HDC1000 poate fi găsită aici:
www.ti.com.cn/cn/lit/ds/symlink/hdc1000.pdf
Am folosit două biblioteci pentru codul de particule, care sunt application.h și spark_wiring_i2c.h. Biblioteca Spark_wiring_i2c este necesară pentru a facilita comunicarea I2C cu senzorul.
De asemenea, puteți copia codul de aici, acesta este dat după cum urmează:
// Distribuit cu o licență de liberă voință.
// Folosiți-l în orice mod doriți, profit sau gratuit, cu condiția să se încadreze în licențele lucrărilor sale asociate.
// HDC1000
// Acest cod este conceput pentru a funcționa cu Mini-modulul HDC1000_I2CS I2C disponibil în Magazinul Dcube.
#include
#include
// Adresa HDC1000 I2C este 0x40 (64)
#define Addr 0x40
plutitor cTemp = 0,0, fTemp = 0,0, umiditate = 0,0;
int temp = 0, hum = 0;
configurare nulă ()
{
// Setați variabila
Particle.variable ("i2cdevice", "HDC1000");
Particle.variable ("umiditate", umiditate);
Particle.variable ("cTemp", cTemp);
// Inițializați comunicarea I2C
Wire.begin ();
// Inițializați comunicarea în serie, setați baud rate = 9600
Serial.begin (9600);
// Porniți transmisia I2C
Wire.beginTransmission (Addr);
// Selectați registrul de configurare
Wire.write (0x02);
// Temperatură, umiditate activată, rezoluție = 14 biți, încălzitor activat
Wire.write (0x30);
// Opriți transmisia I2C
Wire.endTransmission ();
întârziere (300);
}
bucla nulă ()
{
date int nesemnate [2];
// Porniți transmisia I2C
Wire.beginTransmission (Addr);
// Trimiteți comanda de măsurare a temperaturii
Wire.write (0x00);
// Opriți transmisia I2C
Wire.endTransmission ();
întârziere (500);
// Solicitați 2 octeți de date
Wire.requestFrom (Addr, 2);
// Citiți 2 octeți de date
// temp msb, temp lsb
if (Wire.available () == 2)
{
date [0] = Wire.read ();
date [1] = Wire.read ();
}
// Conversia datelor
temp = ((date [0] * 256) + date [1]);
cTemp = (temp / 65536.0) * 165,0 - 40;
fTemp = cTemp * 1,8 + 32;
// Porniți transmisia I2C
Wire.beginTransmission (Addr);
// Trimiteți comanda de măsurare a umidității
Wire.write (0x01);
// Opriți transmisia I2C
Wire.endTransmission ();
întârziere (500);
// Solicitați 2 octeți de date
Wire.requestFrom (Addr, 2);
// Citiți 2 octeți de date
// temp msb, temp lsb
if (Wire.available () == 2)
{
date [0] = Wire.read ();
date [1] = Wire.read ();
}
// Conversia datelor
hum = ((date [0] * 256) + date [1]);
umiditate = (zumzet / 65536.0) * 100.0;
// Ieșire date în tabloul de bord
Particle.publish ("Umiditate relativă:", Șir (umiditate));
Particle.publish ("Temperatura în grade Celsius:", Șir (cTemp));
Particle.publish ("Temperatura în Fahrenheit:", String (fTemp));
întârziere (1000);
}
Pasul 4: Aplicații:
HDC1000 poate fi utilizat la încălzire, ventilație și aer condiționat (HVAC), termostate inteligente și monitoare de cameră. Acest senzor își găsește aplicația și în imprimante, contoare portabile, dispozitive medicale, transport marfă, precum și dezaburirea parbrizului auto.