Lektion 35-2: Verwendung des HTU21D-Temperatursensors – Individueller Code

Lektion 35-2: Verwendung des HTU21D-Temperatursensors – Individueller Code

In diesem Tutorial werden wir untersuchen, wie man den HTU21D-Temperatursensor mit Arduino verwendet, um Temperatur und Luftfeuchtigkeit zu messen. Der HTU21D ist ein zuverlässiger, stromsparender Sensor, der über I2C kommuniziert und somit einfach in Ihre Projekte integriert werden kann. Am Ende dieser Lektion werden Sie einen funktionierenden Code haben, der die Temperatur in Celsius, Fahrenheit und Kelvin sowie die relative Luftfeuchtigkeit liest.

HTU21D module

Bevor wir in die Verdrahtung und den Code eintauchen, ist es wichtig, die beteiligten Komponenten zu verstehen. Der HTU21D-Sensor benötigt minimale Verbindungen: Strom, Erdung und zwei I2C-Leitungen für den Datentransfer. Diese Einfachheit macht ihn zu einer ausgezeichneten Wahl für verschiedene Anwendungen, von Wetterstationen bis hin zu Smart-Home-Geräten. Für eine visuelle Anleitung siehe das Video bei :45.

Hardware erklärt

Die Hauptkomponente dieses Projekts ist der HTU21D-Sensor, der Temperatur und Feuchtigkeit misst. Dieser Sensor kann bei Spannungen von 1,5 V bis 3,6 V betrieben werden, was ihn vielseitig für verschiedene Anwendungen macht. Er liefert hochauflösende Messwerte, wobei die Temperaturmessungen von -40 °C bis +125 °C reichen und die Feuchtigkeitsmessungen eine Auflösung von 0,04 % haben.

Zusätzlich verwendet der Sensor I2C-Kommunikation, die zwei Pins erfordert: SDA (Datenleitung) und SCL (Taktsignal). Dies ermöglicht eine einfache Integration mit Arduino und anderen Mikrocontrollern, ohne dass komplexe Verkabelungen erforderlich sind. Die Adafruit-Bibliothek vereinfacht die Interaktion mit dem Sensor, indem sie die Datenabfrage und Kommunikationsprotokolle nahtlos verwaltet.

Datenblattdetails

HerstellerTE Connectivity
TeilenummerHTU21D-F
Logik/IO-Spannung1,5 - 3,6 V
Versorgungsspannung3,3 V
Aktueller Verbrauch (Leerlauf)0,02 µA (typ.)
Aktueller Verbrauch (aktiv)450 µA (typ.)
Temperaturbereich-40 bis +125 °C
Feuchtigkeitsbereich0 bis 100 %RH
Auflösung0,04 %RH; 0,01 °C
Paket6-Pin DFN

  • Sichern Sie die richtige Stromversorgung, um Schäden an den Sensoren zu vermeiden.
  • Verwenden Sie Pull-up-Widerstände an den SDA- und SCL-Leitungen, wenn diese nicht integriert sind.
  • Halten Sie die Sensorverbindungen kurz, um Rauschen zu minimieren.
  • Überwachen Sie die Spannung während des Betriebs, um die Stabilität aufrechtzuerhalten.
  • Erwägen Sie die Verwendung eines Kondensators zur Entkopplung in der Nähe der Stromanschlüsse.

Verdrahtungsanweisungen

Arduino wiring for HTU21DF light intesity sensor
Arduino wiring for HTU21DF light intesity sensor

Um den HTU21D-Temperatursensor anzuschließen, beginnen Sie damit, die Stromversorgung und die Masse zu verbinden. Schließen Sie den linken Pin des Sensors an eine 3,3-V-Quelle an, wobei sichergestellt werden muss, dass diese die erforderliche Spannung verarbeiten kann. Der zweite Pin, der typischerweise rot gekennzeichnet ist, sollte mit der Masse verbunden werden.

Verbinden Sie als Nächstes den SDA-Pin des Sensors mit dem Pin.A4auf dem Arduino, der als Datenleitung für die I2C-Kommunikation dient. Verbinden Sie dann den SCL-Pin mit dem PinA5, die als Zeilenzeiger fungiert. Stellen Sie sicher, dass diese Verbindungen sicher sind, da lose Drähte zu intermittierenden Messwerten oder zu Kommunikationsproblemen mit dem Sensor führen können.

Code-Beispiele & Anleitung

Im Code beginnen wir damit, die erforderlichen Bibliotheken einzufügen und den Sensor zu initialisieren. Die ZeileAdafruit_HTU21DF htu = Adafruit_HTU21DF();erzeugt eine Instanz der Sensor-Klasse. In dersetup()Funktion, wir starten die serielle Kommunikation und überprüfen, ob der Sensor ordnungsgemäß angeschlossen ist.

void setup() {
  Serial.begin(9600);
  if (!htu.begin()) {
    Serial.println("Couldn't find sensor!");
    while (1);
  }
}

Dieser Codeausschnitt überprüft, ob der Sensor korrekt funktioniert. Wenn nicht, wird eine Fehlermeldung ausgegeben und das Programm angehalten. In derloop()Funktion, wir lesen die Temperatur- und Feuchtigkeitswerte kontinuierlich.

void loop() {
    Serial.print(getHTU('C'));
    Serial.print("C");
    Serial.print(getHTU('H'));
    Serial.println("%");
    delay(1000);
}

Hier, die FunktiongetHTU()wird mit verschiedenen Parametern aufgerufen, um die Temperatur in Celsius und die Luftfeuchtigkeit abzurufen. Die Verzögerung stellt sicher, dass die Messungen jede Sekunde durchgeführt werden, was eine glatte Ausgabe auf dem seriellen Monitor ermöglicht. Der vollständige Code ist zur Referenz unter dem Artikel verfügbar.

Demonstration / Was zu erwarten ist

Sobald alles korrekt verkabelt ist und der Code hochgeladen wurde, sollten Sie die Temperatur- und Feuchtigkeitsmesswerte im seriellen Monitor angezeigt bekommen. Die Temperatur wird in Celsius angezeigt, gefolgt von dem entsprechenden Feuchtigkeitsprozentsatz. Wenn Sie Wärme auf den Sensor anwenden, sollten Sie beobachten, dass die Temperatur entsprechend ansteigt (im Video um 10:15).

Seien Sie vorsichtig mit den Grenzen des Sensors; wenn die Temperatur 125 °C überschreitet, kann er eine falsche Ablesung zurückgeben oder Null anzeigen. Stellen Sie immer sicher, dass Ihre Verbindungen sicher sind und der Sensor korrekt mit Strom versorgt wird, um Probleme während des Betriebs zu vermeiden.

Video-Zeitstempel

  • 00:00Einführung
  • 03:45Sensor anschließen
  • 05:30Code-Durchgang
  • 10:15Demonstration
  • 12:00Fazit

Bilder

Arduino wiring for HTU21DF light intesity sensor
Arduino wiring for HTU21DF light intesity sensor
HTU21D module
HTU21D module
HTU21D module-back
HTU21D module-back
513-Lesson 35: Using HTU21D Temperature Sensor | Arduino Step-by-Step Course
Sprache: C++
Kopiert!

Dinge, die Sie vielleicht brauchen

Dateien📁

Datenblatt (pdf)