Jeder, der mit Mikrocontrollern bastelt, kennt ihn: den DHT22. Er ist günstig und steckt in fast jedem Anfänger-Set. Aber wenn die Projekte größer werden, zeigt der weiße Klassiker auch schonmal seine Schwächen. Er ist langsam und blockiert einen Digitalen Pin.
Heute zeige ich euch eine moderne, schnelle und präzise Alternative für den ESP32 (einen leistungsstarken Mikrocontroller von Espressif Systems): Den SHTC3 Sensor von Sensirion.
Das Beste daran? Er kommuniziert über den I2C-Bus (Inter-Integrated Circuit). Das bedeutet, wir brauchen nur zwei Datenleitungen, an die wir später sogar noch weitere Geräte wie kleine Displays anschließen können!

Die Sensoren im Vergleich
| Eigenschaft | SHTC3 (Sensirion) | DHT22 (auch AM2302) |
| Messbereich Temperatur | -40 °C bis +125 °C | -40 °C bis +80 °C |
| Temperatur-Genauigkeit | ±0,2 °C * | ±0,5 °C * |
| Messbereich Luftfeuchtigkeit | 0 % bis 100 % | 0 % bis 100 % |
| Luftfeuchte-Genauigkeit | ±2 % * | ±2 % bis ±5 % (schwankt stark je nach Modul) * |
| Schnittstelle (Protokoll) | I2C (Inter-Integrated Circuit) | 1-Wire (Herstellerspezifisches Protokoll) |
| Betriebsspannung | 1,62 V bis 3,6 V | 3,3 V bis 5,5 V |
| Auslese-Geschwindigkeit | sehr schnell (unter 20 Millisekunden) | langsam (maximal alle 2 Sekunden) |
| Stromverbrauch | niedrig (ca. 0,5 µA im Standby) | höher (ca. 40 bis 50 µA im Standby) |
* Die garantierte Genauigkeit in der Praxis: Die größte Stärke des Sensors liegt jedoch in der Präzision bei alltäglichen Bedingungen. Wenn du den Sensor nicht gerade in einem Backofen oder einer Tiefkühltruhe betreibst, liefert er herausragende Werte:
- Bei einer Temperatur zwischen 5 °C und 60 °C liegt die Abweichung bei maximal ±0,2 °C.
- Bei einer Luftfeuchtigkeit zwischen 20 % und 80 % RH liegt die Abweichung bei maximal ±2 %.
Was du für dieses Projekt brauchst
- ESP32 Mikrocontroller
- SHTC3 Sensor (Oft als kleine Platine, ein sogenanntes „Breakout-Board“, oder als Exot sogar im vertrauten weißen Plastikgehäuse zu finden)
- Ein paar Jumper-Kabel (Verbindungskabel) zum Stecken
Schritt 1: Die Verkabelung (Hardware)
Der I2C-Bus nutzt zwei Leitungen für die Daten: SDA (Serial Data = Datenleitung) und SCL (Serial Clock = Taktleitung). Beim ESP32 liegen diese Funktionen standardmäßig auf festen Pins, sogenannten GPIOs (General Purpose Input/Output).
Verbinde den Sensor einfach nach diesem Schema:
| SHTC3 Sensor | ESP32 Pin | Was macht das Kabel? |
| VIN / VCC | 3.3V | Stromversorgung (Pluspol) |
| GND | GND | Masse (Minuspol) |
| SDA | GPIO 21 | Daten fließen hier hin und her |
| SCL | GPIO 22 | Gibt den Takt für die Daten vor |
Wichtiger Tipp für die Praxis: Schließe den Sensor bitte niemals an 5 Volt an! Der SHTC3 arbeitet intern mit maximal 3,3 Volt. Zu viel Spannung zerstört den kleinen Chip sofort.
Schritt 2: Die Bibliothek installieren
Damit wir nicht mühsam jedes einzelne Datenpaket selbst entschlüsseln müssen, nutzen wir eine vorgefertigte Bibliothek.
- Öffne deine IDE (Integrated Development Environment / Entwicklungsumgebung), zum Beispiel die Arduino IDE.
- Gehe in den Bibliotheksverwalter.
- Suche nach Adafruit SHTC3.
- Klicke auf Installieren (und installiere eventuell angebotene Abhängigkeiten einfach mit).
Schritt 3: Der Programmcode (Software)
Hier ist Beispiel Sketch aus der Library, das den Sensor ausliest. Lade diesen Code auf deinen ESP32 hoch:
/***************************************************
This is an example for the SHTC3 Humidity & Temp Sensor
Designed specifically to work with the SHTC3 sensor from Adafruit
----> https://www.adafruit.com/products/4636
These sensors use I2C to communicate, 2 pins are required to
interface
****************************************************/
#include "Adafruit_SHTC3.h"
Adafruit_SHTC3 shtc3 = Adafruit_SHTC3();
void setup() {
Serial.begin(115200);
while (!Serial)
delay(10); // will pause Zero, Leonardo, etc until serial console opens
Serial.println("SHTC3 test");
if (! shtc3.begin()) {
Serial.println("Couldn't find SHTC3");
while (1) delay(1);
}
Serial.println("Found SHTC3 sensor");
}
void loop() {
sensors_event_t humidity, temp;
shtc3.getEvent(&humidity, &temp);// populate temp and humidity objects with fresh data
Serial.print("Temperature: "); Serial.print(temp.temperature); Serial.println(" degrees C");
Serial.print("Humidity: "); Serial.print(humidity.relative_humidity); Serial.println("% rH");
delay(1000);
}Serielle Ausgabe:

Fazit: Warum sich der Wechsel lohnt
Wenn du den Code hochgeladen und den Seriellen Monitor (oben rechts in der IDE) geöffnet hast, siehst du nun jede Sekunde frische Messwerte.
Im Gegensatz zum alten DHT22 liefert der SHTC3 seine Werte in wenigen Millisekunden. Er misst genauer, verbraucht weniger Strom und durch den I2C-Bus sparen wir uns wertvolle Anschlüsse am ESP32. Gerade für Smart-Home-Basteleien oder eigene Wetterstationen ist dieser Sensor ein massives Upgrade, das einem im Code viel Kopfschmerzen erspart. Für 5V Arduino‘s aber nicht zu gebrauchen.
