Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Der HDC1000 ist ein digitaler Feuchtigkeitssensor mit integriertem Temperatursensor, der eine hervorragende Messgenauigkeit bei sehr geringem Stromverbrauch bietet. Das Gerät misst die Luftfeuchtigkeit auf Basis eines neuartigen kapazitiven Sensors. Die Feuchtigkeits- und Temperatursensoren sind werkseitig kalibriert. Es ist im vollen Temperaturbereich von -40°C bis +125°C funktionsfähig. Hier ist seine Demonstration mit Teilchenphotonen.
Schritt 1: Was Sie brauchen.
1. Teilchenphoton
2. HDC1000
3. I²C-Kabel
4. I²C-Schild für Teilchenphotonen
Schritt 2: Verbindung:
Nehmen Sie einen I2C-Schild für Partikelphotonen und schieben Sie ihn vorsichtig über die Pins des Partikelphotons.
Verbinden Sie dann das eine Ende des I2C-Kabels mit dem HDC1000-Sensor und das andere Ende mit der I2C-Abschirmung.
Die Anschlüsse sind im Bild oben dargestellt.
Schritt 3: Code:
Der Partikelcode für HDC1000 kann von unserem GitHub-Repository – Dcube Store – heruntergeladen werden.
Hier der Link dazu:
github.com/DcubeTechVentures/HDC1000…
Das Datenblatt der HDC1000 finden Sie hier:
www.ti.com.cn/cn/lit/ds/symlink/hdc1000.pdf
Wir haben zwei Bibliotheken für Partikelcode verwendet, nämlich application.h und spark_wiring_i2c.h. Die Bibliothek Spark_wiring_i2c wird benötigt, um die I2C-Kommunikation mit dem Sensor zu ermöglichen.
Sie können den Code auch von hier kopieren, er wird wie folgt angegeben:
// Wird mit einer frei wählbaren Lizenz vertrieben.
// Verwenden Sie es, wie Sie wollen, gewinnbringend oder kostenlos, sofern es in die Lizenzen der zugehörigen Werke passt.
// HDC1000
// Dieser Code wurde entwickelt, um mit dem HDC1000_I2CS I2C Mini-Modul zu arbeiten, das im Dcube Store erhältlich ist.
#enthalten
#enthalten
// HDC1000 I2C-Adresse ist 0x40(64)
#define Addr 0x40
Schwimmer cTemp = 0.0, fTemp = 0.0, Feuchtigkeit = 0.0;
int temp = 0, brumm = 0;
Void-Setup ()
{
// Variable setzen
Partikel.variable("i2cdevice", "HDC1000");
Particle.variable("Feuchtigkeit", Feuchtigkeit);
Partikel.variable("cTemp", cTemp);
// I2C-Kommunikation initialisieren
Wire.begin();
// Serielle Kommunikation initialisieren, Baudrate = 9600. einstellen
Serial.begin (9600);
// I2C-Übertragung starten
Wire.beginTransmission(Addr);
// Konfigurationsregister auswählen
Wire.write (0x02);
// Temperatur, Feuchtigkeit aktiviert, Auflösung = 14-Bit, Heizung an
Wire.write (0x30);
// I2C-Übertragung stoppen
Wire.endTransmission();
Verzögerung (300);
}
Leere Schleife ()
{
unsignierte int-Daten[2];
// I2C-Übertragung starten
Wire.beginTransmission(Addr);
// Befehl zur Temperaturmessung senden
Wire.write (0x00);
// I2C-Übertragung stoppen
Wire.endTransmission();
Verzögerung (500);
// 2 Byte Daten anfordern
Wire.requestFrom(Addr, 2);
// 2 Byte Daten lesen
// temp msb, temp lsb
if (Draht.verfügbar() == 2)
{
data[0] = Wire.read();
data[1] = Wire.read();
}
// Konvertieren Sie die Daten
temp = ((data[0] * 256) + data[1]);
cTemp = (Temp / 65536,0) * 165,0 - 40;
fTemp = cTemp * 1,8 + 32;
// I2C-Übertragung starten
Wire.beginTransmission(Addr);
// Befehl zur Feuchtemessung senden
Wire.write (0x01);
// I2C-Übertragung stoppen
Wire.endTransmission();
Verzögerung (500);
// 2 Byte Daten anfordern
Wire.requestFrom(Addr, 2);
// 2 Byte Daten lesen
// temp msb, temp lsb
if (Draht.verfügbar() == 2)
{
data[0] = Wire.read();
data[1] = Wire.read();
}
// Konvertieren Sie die Daten
summen = ((data[0] * 256) + data[1]);
Feuchtigkeit = (hum / 65536,0) * 100,0;
// Daten an Dashboard ausgeben
Particle.publish("Relative Luftfeuchtigkeit: ", String(Luftfeuchtigkeit));
Particle.publish("Temperatur in Celsius: ", String(cTemp));
Particle.publish("Temperatur in Fahrenheit: ", String(fTemp));
Verzögerung (1000);
}
Schritt 4: Anwendungen:
HDC1000 kann in Heizungs-, Lüftungs- und Klimaanlagen (HLK), intelligenten Thermostaten und Raummonitoren eingesetzt werden. Dieser Sensor findet auch seine Anwendung in Druckern, Handmessgeräten, medizinischen Geräten, Frachtschiffen sowie Auto-Windschutzscheibenbeschlag.