Dieses Tutorial ist Teil von: Digitaler Sensor für relative Luftfeuchtigkeit und Temperatur HTU21D
Videos zum digitalen Sensor für relative Luftfeuchtigkeit und Temperatur HTU21D. Links zu weiteren Videos finden Sie unterhalb dieses Artikels.
Verwendung von zwei weiteren HTU21DF-Feuchtigkeits- und Temperatursensoren mit Arduino
In diesem Tutorial werden wir lernen, wie man zwei HTU21DF-Temperatur- und Feuchtigkeitssensoren mit einem Arduino verbindet und verwendet. Der HTU21DF-Sensor ist bekannt für seine Genauigkeit und seinen niedrigen Stromverbrauch, was ihn ideal für verschiedene Anwendungen macht. Am Ende dieses Tutorials werden Sie in der Lage sein, die Temperatur- und Feuchtigkeitswerte beider Sensoren auszulesen und sie im seriellen Monitor anzuzeigen.

Um zu beginnen, werden wir die Hardwarekomponenten, die in diesem Projekt beteiligt sind, kurz durchgehen. Die HTU21DF-Sensoren kommunizieren über I2C, was nur zwei Datenleitungen zusätzlich zu Strom- und Erdungsanschlüssen erfordert. Der Arduino wird die Sensordaten lesen und die Ergebnisse im seriellen Monitor ausgeben, sodass Sie Änderungen der Temperatur und Luftfeuchtigkeit in Echtzeit beobachten können.
Um ein klareres Verständnis des Verdrahtungs- und Programmierungsprozesses zu erhalten, sollten Sie das zugehörige Video ansehen (im Video bei 01:30). Lassen Sie uns in die Details eintauchen!
Hardware erklärt
Die Hauptkomponente dieses Projekts ist der HTU21DF-Sensor, der Temperatur und relative Luftfeuchtigkeit misst. Dieser Sensor arbeitet mit I2C-Kommunikation, was die Verdrahtung vereinfacht, da nur zwei Datenleitungen benötigt werden. Er ist in der Lage, Temperaturen von -40°C bis 125°C und einen Feuchtigkeitsbereich von 0% bis 100% mit einer Auflösung von 0,04% zu messen.
Wenn der Sensor nicht aktiv misst, verbraucht er nur 0,04 µA, was ihn für batteriebetriebene Anwendungen geeignet macht. Während des Messens liegt der Stromverbrauch bei etwa 400 µA, was für die meisten Projekte immer noch relativ niedrig ist.
Datenblatt Details
| Hersteller | TE Connectivity |
|---|---|
| Teilenummer | HTU21DF |
| Logik/IO-Spannung | 1,5 - 3,6 V |
| Versorgungsspannung | 3,3 V |
| Ausgangsstrom (pro Kanal) | 0,4 mA (Messung) |
| Spitzenstrom (pro Kanal) | 450 µA (max) |
| PWM-Frequenzrichtlinien | Nicht zutreffend |
| Eingangslogikschwellen | 0,3 x VDDzu 0,7 x VDD |
| Spannungsabfall / RDS(on)/ Sättigung | N/A |
| Thermische Grenzen | -40 °C bis +125 °C |
| Paket | 6-Pin DFN |
| Hinweise / Varianten | Verfügbar in verschiedenen Verpackungsgrößen |
- Stromversorgung: 3,3 V werden für optimale Leistung empfohlen.
- Verbinden Sie SCL mit dem I2C-Taktpin (A5 auf Arduino UNO).
- Verbinde SDA mit dem I2C-Datenpin (A4 auf Arduino UNO).
- Stellen Sie eine ordnungsgemäße Verkabelung sicher, um schwebende Eingänge zu vermeiden.
- Überwachen Sie den Stromverbrauch während der Messung, um die Batterielebensdauer zu verwalten.
- Berücksichtigen Sie die Verwendung von Pull-up-Widerständen, falls erforderlich, für I2C-Leitungen.
Verdrahtungsanweisungen

Um die HTU21DF-Sensoren zu verdrahten, beginnen Sie mit dem Anschluss des VCCVerbinden Sie den Pin jedes Sensors mit dem 3,3-V-Pin auf dem Arduino. Verbinden Sie dann den GND-Pin jedes Sensors mit einer gemeinsamen Masse. Für die I2C-Kommunikation verbinden Sie den SDA-Pin beider Sensoren mit dem A4-Pin auf dem Arduino und den SCL-Pin mit dem A5-Pin. Stellen Sie sicher, dass die Sensoren ordnungsgemäß mit Strom versorgt werden und dass die Datenverbindungen sicher sind, um die Kommunikation zu erleichtern.
Wenn Sie zusätzliche Sensoren oder Komponenten verwenden, stellen Sie sicher, dass deren Verkabelung den I2C-Bus nicht stört. Die HTU21DF-Sensoren können parallel zum gleichen I2C-Bus angeschlossen werden, sodass der Arduino Daten von beiden Sensoren ohne Verwirrung lesen kann.
Code-Beispiele & Anleitung
Der folgende Code initialisiert die HTU21DF-Sensoren und liest deren Temperatur- und Feuchtigkeitswerte aus. Zuerst binden wir die notwendigen Bibliotheken ein und erstellen Instanzen für beide Sensoren:
#include
#include "Adafruit_HTU21DF.h"
Adafruit_HTU21DF htu1 = Adafruit_HTU21DF(); // create object for first sensor
Adafruit_HTU21DF htu2 = Adafruit_HTU21DF(); // create object for second sensor
Der obige Code richtet die benötigten Bibliotheken ein und erstellt zwei Sensorobjekte,htu1undhtu2, das verwendet wird, um Daten von jedem Sensor unabhängig zu lesen.
Nächste, im dersetup()funktion, wir initialisieren den seriellen Monitor und überprüfen, ob die Sensoren angeschlossen sind:
void setup() {
Serial.begin(9600);
if (!htu1.begin() || !htu2.begin()) {
Serial.println("Couldn't find sensor!");
while (1);
}
}
Dieser Abschnitt des Codes initialisiert die serielle Kommunikation mit 9600 Baud und überprüft, ob beide Sensoren funktionieren. Wenn ein Sensor nicht erkannt wird, wird eine Fehlermeldung ausgegeben und das Programm angehalten.
In der Hauptschleife lesen wir die Temperatur- und Feuchtigkeitswerte von beiden Sensoren und zeigen sie an:
void loop() {
float temp1 = htu1.readTemperature();
float rel_hum1 = htu1.readHumidity();
float temp2 = htu2.readTemperature();
float rel_hum2 = htu2.readHumidity();
Serial.print("Sensor 1 Temp: "); Serial.print(temp1); Serial.print(" C");
Serial.print("\tSensor 1 Humidity: "); Serial.print(rel_hum1); Serial.println(" %");
Serial.print("Sensor 2 Temp: "); Serial.print(temp2); Serial.print(" C");
Serial.print("\tSensor 2 Humidity: "); Serial.print(rel_hum2); Serial.println(" %");
delay(500);
}
Diese Schleife liest und druckt alle 500 Millisekunden kontinuierlich die Temperatur und Luftfeuchtigkeit von beiden Sensoren. Sie können beobachten, wie sich die Werte als Reaktion auf Umgebungsbedingungen ändern.
Demonstration / Was zu erwarten ist
Wenn Sie den Code ausführen, zeigt der serielle Monitor die Temperatur- und Feuchtigkeitswerte beider Sensoren an. Sie können Wärme, beispielsweise von einem Heißluftgebläse, anwenden, um zu beobachten, wie die Temperaturwerte steigen, während die Feuchtigkeitswerte möglicherweise sinken (im Video um 12:30). Wenn die Temperatur die maximal messbare Grenze von 125°C überschreitet, kann der Sensor null oder einen Fehler zurückgeben, was anzeigt, dass er den Wert nicht lesen kann.
Achten Sie auf Verdrahtungsfehler wie falsche Anschlüsse oder schwebende Eingänge, die zu falschen Messwerten führen können. Wenn Sie die in diesem Tutorial beschriebenen Schritte befolgen, sollten Sie in der Lage sein, die HTU21DF-Sensoren erfolgreich zu implementieren und ihre Messwerte effektiv zu überwachen.
Videostempel
- 00:00- Einführung
- 01:30- Verdrahtungserklärung
- 02:45- Code-Erklärung
- 12:30- Demonstration mit Heißluftgebläse
- 14:00- Schlussfolgerung
Dieses Tutorial ist Teil von: Digitaler Sensor für relative Luftfeuchtigkeit und Temperatur HTU21D
- Lektion 35-1: Verwendung des HTU21D Temperatursensors
- Lektion 35-2: Verwendung des HTU21D-Temperatursensors – Individueller Code
- Lektion 35: Verwendung des HTU21D-Temperatursensors mit dem Arduino
- Lektion 36: Verwendung des HTU21D-Temperatursensors mit einem LCD Arduino Schritt-für-Schritt-Kurs
- Anzeige der Temperatur von einem HTU21D auf einem LCD
- Anzeige der Temperatur von einem HTU21D als Balkendiagramm auf einem LCD
- So verwenden Sie den HTU21DF Luftfeuchtigkeits- und Temperatursensor mit Arduino (Basiscode)
- So verwenden Sie den HTU21DF Feuchtigkeits- und Temperatursensor mit Arduino (benutzerdefinierter Code)
++
/***************************************************
This is an example for the HTU21D-F Humidity & Temperature Sensor
Designed specifically to work with the HTU21D-F sensor from Adafruit
----> https://www.adafruit.com/products/1899
These module use I2C to communicate; 2 pins are required to
interface
****************************************************/
#include <Wire.h>
#include "Adafruit_HTU21DF.h"
// Connect Vin to 3-5VDC
// Connect GND to ground
// Connect SCL to I2C clock pin (A5 on UNO)
// Connect SDA to I2C data pin (A4 on UNO)
Adafruit_HTU21DF htu1 = Adafruit_HTU21DF();//create object for first HTU21DF sensor
Adafruit_HTU21DF htu2 = Adafruit_HTU21DF();//create object for second HTU21DF sensor
//Adafruit_HTU21DF htu3 = Adafruit_HTU21DF();//create object for third HTU21DF sensor (disabled, remove // from begging of code)
void setup() {
Serial.begin(9600);
Serial.println("HTU21D-F test for two modules");
if (!htu.begin()) {
Serial.println("Couldn't find sensor!");
while (1);
}
}
void loop() {
//get value for sensor 1
float temp1 = htu1.readTemperature();
float rel_hum1 = htu1.readHumidity();
//get value for sensor 2
float temp2 = htu2.readTemperature();
float rel_hum2 = htu2.readHumidity();
//get value for sensor 3
float temp3 = htu3.readTemperature();
float rel_hum3 = htu3.readHumidity();
//print values for sensor 1
Serial.print("Sensor 1 Temp : "); Serial.print(temp1); Serial.print(" C");
Serial.print("\t\t");
Serial.print("Sensor 1 Humidity: "); Serial.print(rel_hum1); Serial.println(" %");
//print values for sensor 2
Serial.print("Sensor 2 Temp : "); Serial.print(temp2); Serial.print(" C");
Serial.print("\t\t");
Serial.print("Sensor 2 Humidity: "); Serial.print(rel_hum2); Serial.println(" %");
//print values for sensor 3
//Serial.print("Sensor 3 Temp : "); Serial.print(temp3); Serial.print(" C");
//Serial.print("\t\t");
//Serial.print("Sensor 3 Humidity: "); Serial.print(rel_hum3); Serial.println(" %");
delay(500);
}
Dinge, die Sie vielleicht brauchen
-
AmazonHTU21D-Modul bei Amazon kaufenamzn.to
-
eBayKaufe HTU21D von eBayebay.us
-
AliExpressKaufen Sie HTU21D oder SHT21 bei AliExpresss.click.aliexpress.com
Ressourcen & Referenzen
-
ExternAdafruit HTU21D Bibliothek (GitHub)github.com
Dateien📁
Datenblatt (pdf)
-
HTU21D_Temperatur_Luftfeuchtigkeit_Datenblatt
HTU21D_temerature_humidity_datasheet.pdf0.96 MB