2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
Die HDC1000 is 'n digitale humiditeitsensor met 'n geïntegreerde temperatuursensor wat uitstekende metingsnauwkeurigheid bied by baie lae krag. Die toestel meet humiditeit op grond van 'n nuwe kapasitiewe sensor. Die humiditeits- en temperatuursensors is in die fabriek gekalibreer. Dit is funksioneel binne die volle temperatuur van -40 ° C tot +125 ° C. Hier is die demonstrasie daarvan met deeltjie -foton.
Stap 1: wat u nodig het..
1. Deeltjie Photon
2. HDC1000
3. I²C -kabel
4. I²C -skild vir deeltjiesfoton
Stap 2: Verbinding:
Neem 'n I2C -skild vir deeltjiefoton en druk dit liggies oor die penne van deeltjiefoton.
Koppel dan die een kant van die I2C -kabel aan die HDC1000 -sensor en die ander kant aan die I2C -skild.
Verbindings word op die foto hierbo getoon.
Stap 3: Kode:
Die deeltjiekode vir HDC1000 kan afgelaai word in ons GitHub-bewaarplek- Dcube Store.
Hier is die skakel vir dieselfde:
github.com/DcubeTechVentures/HDC1000…
Die datablad van HDC1000 kan hier gevind word:
www.ti.com.cn/cn/lit/ds/symlink/hdc1000.pdf
Ons het twee biblioteke vir deeltjiekode gebruik, wat application.h en spark_wiring_i2c.h is. Spark_wiring_i2c -biblioteek is nodig om die I2C -kommunikasie met die sensor te vergemaklik.
U kan die kode ook hiervandaan kopieer; dit word soos volg gegee:
// Versprei met 'n vrywillige lisensie.
// Gebruik dit op enige manier wat u wil, wins of gratis, mits dit in die lisensies van die gepaardgaande werke pas.
// HDC1000
// Hierdie kode is ontwerp om te werk met die HDC1000_I2CS I2C Mini Module wat beskikbaar is in Dcube Store.
#insluit
#insluit
// HDC1000 I2C adres is 0x40 (64)
#definieer Addr 0x40
float cTemp = 0.0, fTemp = 0.0, humiditeit = 0.0;
int temp = 0, hum = 0;
leemte opstelling ()
{
// Stel veranderlike
Particle.variable ("i2cdevice", "HDC1000");
Deeltjie.veranderlik ("humiditeit", humiditeit);
Particle.variable ("cTemp", cTemp);
// Initialiseer I2C -kommunikasie
Wire.begin ();
// Initialiseer seriële kommunikasie, stel baud rate = 9600 in
Serial.begin (9600);
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Kies konfigurasie register
Wire.write (0x02);
// Temperatuur, humiditeit aangeskakel, resolusie = 14-bits, verwarmer aan
Draad.skryf (0x30);
// Stop I2C -oordrag
Wire.endTransmission ();
vertraging (300);
}
leemte lus ()
{
ongetekende int data [2];
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Stuur opdrag vir temp meting
Wire.write (0x00);
// Stop I2C -oordrag
Wire.endTransmission ();
vertraging (500);
// Versoek 2 grepe data
Wire.requestFrom (Addr, 2);
// Lees 2 grepe data
// temp msb, temp lsb
as (Wire.available () == 2)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
}
// Skakel die data om
temp = ((data [0] * 256) + data [1]);
cTemp = (temp / 65536.0) * 165.0 - 40;
fTemp = cTemp * 1.8 + 32;
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Stuur opdrag vir humiditeitsmeting
Wire.write (0x01);
// Stop I2C -oordrag
Wire.endTransmission ();
vertraging (500);
// Versoek 2 grepe data
Wire.requestFrom (Addr, 2);
// Lees 2 grepe data
// temp msb, temp lsb
as (Wire.available () == 2)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
}
// Skakel die data om
hum = ((data [0] * 256) + data [1]);
humiditeit = (hum / 65536.0) * 100.0;
// Uitset data na paneelbord
Particle.publish ("Relatiewe humiditeit:", string (humiditeit));
Particle.publish ("Temperatuur in Celsius:", String (cTemp));
Particle.publish ("Temperatuur in Fahrenheit:", String (fTemp));
vertraging (1000);
}
Stap 4: Aansoeke:
HDC1000 kan gebruik word vir verwarming, ventilasie en lugversorging (HVAC), slim termostate en kamermonitors. Hierdie sensor vind ook sy toepassing in drukkers, handmeters, mediese toestelle, vragvervoer sowel as motorwaaiers.