Lektion 35: Verwendung des HTU21D-Temperatursensors mit dem Arduino
Dieses Projekt zeigt Ihnen, wie Sie mit einem Arduino Temperatur- und Feuchtigkeitsdaten von einem HTU21D-F-Sensor auslesen. Dieser Sensor ist preiswert und weit verbreitet, wodurch er sich ideal für eine Vielzahl von Projekten eignet. Der Sensor gibt Daten über I2C aus, ein gängiges digitales Kommunikationsprotokoll. Das Erlernen der Nutzung dieses Sensors und von I2C eröffnet viele Möglichkeiten für Ihre Projekte.

Praktische Anwendungen:
- Einen smarten Umweltmonitor für das Smart Home bauen
- Eine Wetterstation erstellen
- Entwicklung eines klimatisierten Gehäuses für empfindliche Elektronik
- Überwachung von Temperatur und Luftfeuchtigkeit in einem Gewächshaus oder Terrarium
Hardware/Komponenten
Sie benötigen die folgenden Komponenten:
- Arduino-Board (z. B. Uno, Nano)
- HTU21D-F Temperatur- und Feuchtigkeitssensor (im Video bei 00:22)
- Verbindungsdrähte
- Breadboard (optional, aber empfohlen)
Verdrahtungsanleitung
Die Verkabelung ist unkompliziert. Schließen Sie den Sensor wie folgt an den Arduino an (im Video bei 02:28):
- Sensor VCC an Arduino 3,3 V
- Sensor-GND an Arduino-GND
- Sensor SDA an Arduino A4
- Sensor SCL an Arduino A5

Erklärung des Codes
Der bereitgestellte Code verwendet die Adafruit HTU21D-F-Bibliothek (im Video bei 03:03), um mit dem Sensor zu interagieren. Die wichtigsten Teile sind:
// These are the lines that you can configure:
const int inPin =A0;//can change
const int iteration = 1000; //can change (see video at 00:22)
const float LM35_FACTOR =0.01;// do not change
inPin: Gibt den analogen Pin an, der mit dem Temperatursensor verbunden ist. Sie können dies ändern, um es an Ihre Verdrahtung anzupassen.
iteration: Diese Variable steuert die Anzahl der Messwerte, die zur Mittelung der Temperatur genommen werden. Eine Erhöhung verbessert die Genauigkeit, verlangsamt jedoch die Messungen (im Video bei 00:22).
DergetHTU()Die Funktion (im Video bei 08:46) ermöglicht es, durch Übergabe eines Zeichens ('C', 'F', 'K' oder 'H') als Argument die Temperatur in Celsius, Fahrenheit oder Kelvin oder die Luftfeuchtigkeit abzurufen. Der Code verwendet dann diese Funktion, um die Daten im seriellen Monitor anzuzeigen.
float getTemperature(char type) {
// ... (code to read temperature and humidity) ...
if (type == 'F') {
value = averageTemperature * 9 / 5 + 32; // Fahrenheit
} else if (type == 'K') {
value = averageTemperature + 273.15; // Kelvin
} else {
value = averageTemperature; // Celsius
}
return value;
}
Live-Projekt/Vorführung
Das Video demonstriert die Funktionalität des Sensors (im Video bei 07:34). Der serielle Monitor zeigt die Temperatur- und Feuchtigkeitswerte an. Der Präsentator zeigt auch, wie der Code Aktionen basierend auf Temperaturgrenzwerten auslösen kann (im Video bei 06:45).
Kapitel
- [00:00] Einleitung
- [00:22] Sensorübersicht
- [01:22] Überprüfung des Datenblatts
- [02:28] Verkabelung
- [03:03] Bibliotheksinstallation
- [04:05] Code-Erklärung (Teil 1)
- [08:33] Code-Erklärung (Teil 2)
- [07:34] Live-Demonstration
Dinge, die Sie vielleicht brauchen
-
Amazon
Ressourcen & Referenzen
-
ExternAdafruit HTU21D Bibliothek (GitHub)github.com
-
ExternHTU21D Datenblatt (PDF)cdn-shop.adafruit.com
Dateien📁
Andere Dateien
-
Adafruit HTU21DF library (Robojax.com)
robojax_HTU21DF_Adafruit_HTU21DF_Library-master.zip