Wie lese ich Temperatur- und Luftfeuchtigkeitsdaten auf einem Mikrocontroller?
blog_detail_desc
Das Auslesen von Temperatur- und Luftfeuchtigkeitsdaten mit einem Mikrocontroller erfordert in der Regel einen Sensor (wie DHT11, DHT22 oder SHT31) und die Verbindung mit deinem Mikrocontroller (z. B. Arduino, ESP32, STM32 oder Raspberry Pi Pico). Hier ist eine Schritt-für-Schritt-Anleitung:
1. Wähle einen Sensor
Häufig verwendete Temperatur- und Luftfeuchtigkeitssensoren:
-
DHT11 – Günstig, Genauigkeit ±2°C, Messbereich 20–80 % Luftfeuchtigkeit.
-
DHT22 (AM2302) – Bessere Genauigkeit (±0,5°C), Messbereich 0–100 % Luftfeuchtigkeit.
-
SHT31 – Hohe Genauigkeit (±0,2°C), I²C/SPI-Schnittstelle.
-
BME280 – Misst Temperatur, Luftfeuchtigkeit und Luftdruck (I²C/SPI).
-
AHT10/AHT20 – Digitaler I²C-Sensor, gut für ESP32/RPi Pico.
2. Verdrahtung des Sensors
Die meisten Sensoren nutzen I²C oder 1-Wire-Kommunikation.
Beispiel für DHT11/DHT22 (1-Wire):
DHT-Pin | Mikrocontroller |
---|---|
VCC | 3,3V / 5V |
GND | GND |
DATA | Digitaler GPIO-Pin |
Für I²C-Sensoren (SHT31, BME280):
Sensor-Pin | Mikrocontroller |
---|---|
VCC | 3,3V / 5V |
GND | GND |
SDA | I²C SDA (z. B. GPIO21 bei ESP32) |
SCL | I²C SCL (z. B. GPIO22 bei ESP32) |
*(Füge bei DHT-Sensoren einen 4,7-kΩ-Pull-up-Widerstand zwischen DATA und VCC hinzu.)*
3. Installiere die erforderlichen Bibliotheken
-
Arduino IDE:
-
Für DHT-Sensoren: Installiere die "DHT sensor library" von Adafruit.
-
Für I²C-Sensoren: Installiere die "Adafruit SHT31 Library" oder "BME280"-Bibliothek.
Gehe zu Sketch > Bibliothek einbinden > Bibliotheken verwalten und suche nach der Bibliothek.
-
-
MicroPython (RPi Pico/ESP32):
-
Nutze das
dht
-Modul für DHT-Sensoren. -
Für I²C-Sensoren verwende
machine.I2C
und sensorspezifische Bibliotheken.
-
4. Code-Beispiele
A. Arduino (DHT11/DHT22)
#include <DHT.h> #define DHTPIN 2 // GPIO-Pin, an den der DHT angeschlossen ist #define DHTTYPE DHT22 // DHT 22 (AM2302) DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); } void loop() { float humidity = dht.readHumidity(); // Luftfeuchtigkeit auslesen (%) float temp = dht.readTemperature(); // Temperatur auslesen (°C) if (isnan(humidity) || isnan(temp)) { Serial.println("Fehler beim Auslesen des Sensors!"); return; } Serial.print("Temperatur: "); Serial.print(temp); Serial.print("°C"); Serial.print(" Luftfeuchtigkeit: "); Serial.print(humidity); Serial.println("%"); delay(2000); // Warte 2 Sekunden zwischen den Messungen }
B. ESP32/Arduino (I²C - SHT31)
#include <Wire.h> #include <Adafruit_SHT31.h> Adafruit_SHT31 sht31 = Adafruit_SHT31(); void setup() { Serial.begin(9600); if (!sht31.begin(0x44)) { // Standard-I²C-Adresse (0x44 oder 0x45) Serial.println("SHT31 nicht gefunden!"); while (1); } } void loop() { float temp = sht31.readTemperature(); float humidity = sht31.readHumidity(); Serial.print("Temperatur: "); Serial.print(temp); Serial.print("°C"); Serial.print(" Luftfeuchtigkeit: "); Serial.print(humidity); Serial.println("%"); delay(1000); }
C. MicroPython (DHT11 auf Raspberry Pi Pico)
from machine import Pin import dht import time d = dht.DHT11(Pin(2)) # DHT11 an GPIO2 anschließen while True: d.measure() temp = d.temperature() # °C hum = d.humidity() # % print(f"Temperatur: {temp}°C, Luftfeuchtigkeit: {hum}%") time.sleep(2)
5. Fehlerbehebung
-
"Fehler beim Auslesen des Sensors" → Überprüfe die Verdrahtung, Pull-up-Widerstand und Stromversorgung.
-
I²C-Probleme → Überprüfe die I²C-Adresse (
0x44
,0x76
usw.) mit einem I²C-Scanner. -
Falsche Werte → Stelle sicher, dass der richtige Sensortyp (DHT11 vs DHT22) im Code definiert ist.
6. Erweiterte Optionen
-
Nutze WiFi/Bluetooth (ESP32), um Daten an einen Server zu senden.
-
Speichere Daten auf einer SD-Karte oder zeige sie auf einem OLED-Display an.
-
Implementiere Energiesparmodi für batteriebetriebene Projekte.
Related_Articles
- ·Anwendung von STM32 in digitalen Stromversorgungen
- ·Welcher Mikrocontroller ist am besten, um Motorsprung zu steuern?
- ·Wie verbindet man einen Arduino mit Bluetooth-Modulen?
- ·Welche Sprache ist am besten für Robotik, IoT, KI, Spiele oder Web-Apps?
- ·Raspberry Pi Pico vs Arduino Nano vs STM32 Blue Pill vs ESP32 vs STM32 Black Pill | Vergleich
- ·Welche sind die zehn am häufigsten verwendeten Sensoren für das industrielle IoT?
- ·Was sind die Fallstricke bei der Konstruktion des STM32-Uhrensystems?
- ·Wie nutzt man Arduino für IoT-Anwendungen?
- ·STM32 + LoRa Drahtloses Sensornetzwerk (WSN) — Komplettes Design
- ·Wie erstelle ich ein physisches Mikrocontrollerprojekt mit nuller Grundlage?