Heim Der Blog Blog Details

Wie lese ich Temperatur- und Luftfeuchtigkeitsdaten auf einem Mikrocontroller?

August 01 2025
Ampheo

Anfrage

Globaler Lieferant elektronischer Komponenten AMPHEO PTY LTD: Umfangreiches Inventar für One-Stop-Shopping. Einfache Anfragen, schnelle, individuelle Lösungen und Angebote.

SCHNELLE ANFRAGE
ZUR RFQ-LISTE HINZUFÜGEN
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).

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:

Wie lese ich Temperatur- und Luftfeuchtigkeitsdaten auf einem Mikrocontroller?


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)

cpp
 
#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)

cpp
 
#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)

python
 
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 (0x440x76 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.

Ampheo