Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
HDC1000 er en digital fuktighetssensor med integrert temperatursensor som gir utmerket målenøyaktighet ved svært lav effekt. Enheten måler fuktighet basert på en ny kapasitiv sensor. Fuktighets- og temperatursensorene er kalibrert på fabrikken. Det er funksjonelt innenfor hele -40 ° C til +125 ° C temperaturområde. Her er demonstrasjonen med partikkelfoton.
Trinn 1: Hva du trenger..
1. Partikkelfoton
2. HDC1000
3. I²C -kabel
4. I²C -skjold for partikkelfoton
Trinn 2: Tilkobling:
Ta et I2C -skjold for partikkelfoton og skyv det forsiktig over pinnene til partikkelfoton.
Koble deretter den ene enden av I2C -kabelen til HDC1000 -sensoren og den andre enden til I2C -skjoldet.
Tilkoblinger er vist på bildet ovenfor.
Trinn 3: Kode:
Partikkelkoden for HDC1000 kan lastes ned fra vårt GitHub-depot- Dcube Store.
Her er lenken til det samme:
github.com/DcubeTechVentures/HDC1000…
Databladet til HDC1000 finner du her:
www.ti.com.cn/cn/lit/ds/symlink/hdc1000.pdf
Vi har brukt to biblioteker for partikkelkode, som er application.h og spark_wiring_i2c.h. Spark_wiring_i2c -biblioteket er nødvendig for å lette I2C -kommunikasjonen med sensoren.
Du kan også kopiere koden herfra, den er gitt som følger:
// Distribuert med en fri viljelisens.
// Bruk den slik du vil, profitt eller gratis, forutsatt at den passer inn i lisensene til de tilhørende verkene.
// HDC1000
// Denne koden er designet for å fungere med HDC1000_I2CS I2C Mini Module tilgjengelig i Dcube Store.
#inkludere
#inkludere
// HDC1000 I2C -adressen er 0x40 (64)
#define Addr 0x40
flyte cTemp = 0,0, fTemp = 0,0, fuktighet = 0,0;
int temp = 0, hum = 0;
ugyldig oppsett ()
{
// Angi variabel
Particle.variable ("i2cdevice", "HDC1000");
Partikkel.variabel ("fuktighet", fuktighet);
Particle.variable ("cTemp", cTemp);
// Initialiser I2C -kommunikasjon
Wire.begin ();
// Initialize Serial Communication, set baud rate = 9600
Serial.begin (9600);
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Velg konfigurasjonsregister
Wire.write (0x02);
// Temperatur, fuktighet aktivert, oppløsning = 14-bits, varmeapparat på
Wire.write (0x30);
// Stopp I2C -overføring
Wire.endTransmission ();
forsinkelse (300);
}
hulrom ()
{
usignerte int -data [2];
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Send kommando for temperaturmåling
Wire.write (0x00);
// Stopp I2C -overføring
Wire.endTransmission ();
forsinkelse (500);
// Be om 2 byte med data
Wire.requestFrom (Addr, 2);
// Les 2 byte med data
// temp msb, temp lsb
hvis (Wire.available () == 2)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
}
// Konverter dataene
temp = ((data [0] * 256) + data [1]);
cTemp = (temp / 65536,0) * 165,0 - 40;
fTemp = cTemp * 1,8 + 32;
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Send kommando for fuktighetsmåling
Wire.write (0x01);
// Stopp I2C -overføring
Wire.endTransmission ();
forsinkelse (500);
// Be om 2 byte med data
Wire.requestFrom (Addr, 2);
// Les 2 byte med data
// temp msb, temp lsb
hvis (Wire.available () == 2)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
}
// Konverter dataene
hum = ((data [0] * 256) + data [1]);
fuktighet = (hum / 65536,0) * 100,0;
// Utdata til dashbordet
Particle.publish ("Relativ fuktighet:", streng (fuktighet));
Particle.publish ("Temperatur i Celsius:", String (cTemp));
Particle.publish ("Temperatur i Fahrenheit:", String (fTemp));
forsinkelse (1000);
}
Trinn 4: Søknader:
HDC1000 kan brukes i oppvarming, ventilasjon og klimaanlegg (HVAC), smarte termostater og rommonitorer. Denne sensoren finner også sin anvendelse i skrivere, håndholdte målere, medisinske enheter, Cargo Shipping samt Automotive Windshield Defog.