Warum Ihr ESP32-Temperatursensor 4 °C zu viel anzeigt

Ihr Sensor ist nicht defekt: Linearregler und WLAN-Sendeimpulse leiten Wärme direkt in Steckplatinenbahnen und Gehäuse ab. So beheben Sie thermische Drift, ohne Kalibrierungswerte im Code zu manipulieren.
Ihr Temperatursensor funktioniert höchstwahrscheinlich genau so, wie er hergestellt wurde. Das Problem liegt darin, dass er nicht die Umgebungsluft Ihres Klassenzimmers misst, sondern das thermische Mikroklima, das der direkt daneben sitzende ESP32 erzeugt. Wenn ein DHT11-, DHT22- oder BME280-Modul auf demselben Steckbrett, einer maßgefertigten Leiterplatte (PCB) oder in demselben 3D-gedruckten Gehäuse wie ein ESP32-Entwicklungsboard steckt, verfälscht die boardeigene Wärmeabgabe die Temperaturwerte verlässlich um 2 °C bis 5 °C nach oben, während die Werte für die relative Luftfeuchtigkeit um 10 % bis 20 % zu niedrig ausfallen.
In Robotik- und IoT-Projekten im Unterricht neigt man oft dazu, einen schnellen Software-Patch zu schreiben: einfach vier Grad vom rohen Float-Wert abziehen. Das ist jedoch eine schlechte ingenieurtechnische Gewohnheit, die man Lernenden nicht beibringen sollte. Der thermische Offset ist dynamisch und nicht linear. Er verändert sich je nach Tastgrad der WLAN-Übertragung, der Raumbelüftung und der Frage, ob der Mikrocontroller gerade aktiv Sensoren abfragt oder im Leerlauf ist.
Die zwei Hauptursachen: Linearregler und WLAN-Transienten
Ein ESP32-Entwicklungsboard (wie die standardmäßigen 30-Pin- oder 38-Pin-Boards im NodeMCU-Format, die an südafrikanischen Schulen üblich sind) wird über einen 5-V-USB-Anschluss mit Strom versorgt. Das ESP32-System-on-Chip (SoC) arbeitet jedoch mit 3,3 V. Der Spannungsabfall zwischen der 5-V-Schiene und der 3,3-V-Schiene wird von einem integrierten Low-Drop-Linearregler (LDO) abgefangen, typischerweise einem AMS1117 oder einem ähnlichen Chip.
Linearregler senken die Spannung, indem sie überschüssige Energie als Wärme abgeben. Die Rechnung ist simpel: Ein Abfall von 5,0 V auf 3,3 V hinterlässt eine Differenz von 1,7 V. Wenn ein ESP32 seine beiden Tensilica-Kerne mit aktiviertem WLAN-Modem betreibt, zieht er einen durchschnittlichen Strom von 80 mA bis 130 mA, wobei kurzzeitige Stromspitzen bei HF-Sendeimpulsen 250 mA bis 400 mA erreichen. Das bedeutet, dass der winzige Regler auf Ihrem Board kontinuierlich zwischen 140 mW und 220 mW an reiner thermischer Energie direkt an die Kupferflächen der Leiterplatte abgibt.
Gleichzeitig wird auch das ESP32-SoC selbst warm. Der interne HF-Leistungsverstärker für 2,4 GHz nach 802.11b/g/n erzeugt lokale Wärme unter der metallischen Abschirmhaube. Befindet sich Ihr Sensor im Abstand von zwei oder drei Zentimetern zu dieser Metallabschirmung oder dem LDO, arbeitet er mitten in diesem lokalen Wärmenest.
Wie sich Wärme ausbreitet: Wärmeleitung und Wärmestau im Gehäuse
Bei Aufbauten im Unterricht erreicht die Wärme Ihren Sensor hauptsächlich über drei Wege:
- Kupferbahnen im Steckbrett: Steckplatinen bestehen außen aus Kunststoff, nutzen im Inneren jedoch parallele Federkontaktstreifen aus Metall. Wenn sich die Versorgungs- und Masse-Pins des ESP32 erwärmen, wird diese thermische Energie direkt über die Metallstreifen zu benachbarten Pins geleitet, an denen Ihr Sensor-Breakout eingesteckt ist.
- MEMS-Eigenerwärmung: Der Bosch BME280 ist ein mikroskopisch kleiner MEMS-Sensor (mikroelektromechanisches System). Wenn Lernende ihn im kontinuierlichen „Normal“-Modus mit hohen Oversampling-Raten konfigurieren und ihn fortlaufend in einer unendlichen Arduino-Schleife abfragen, erwärmt sich die interne Elektronik des Sensorgehäuses selbst.
- Stehende Luft im Gehäuse: Wenn Lernende eine IoT-Wetterstation in einem kompakten 3D-Druck-Gehäuse oder einer ABS-Projektbox unterbringen, um sie vor Stößen im Klassenzimmer zu schützen, kommt die Konvektion zum Erliegen. Der LDO wirkt wie ein winziger 200-mW-Heizlüfter in einer geschlossenen Box. Innerhalb von zehn Minuten steigt die Lufttemperatur im Inneren des Gehäuses weit über die Raumtemperatur.
Lösungen für den Unterricht, die funktionieren
Anstatt die Firmware mit einer willkürlichen Subtraktion zu flicken, sollten Sie das Problem als praktische Lerneinheit für thermisches Design und Firmware-Energiemanagement nutzen.
| Intervention | Mechanism | Typical Temperature Reduction |
|---|---|---|
| Physical Standoff (10–15 cm jumper leads) | Eliminates board conduction and separates air volumes | 2.5°C to 4.0°C |
| Deep Sleep + Read-Before-Radio Firmware | Cuts LDO current draw and avoids RF heating spikes | 1.5°C to 3.0°C |
| BME280 Forced Mode (Low Sampling Rate) | Prevents internal MEMS self-heating | 0.5°C to 1.0°C |
| Vented Case with Thermal Baffle | Separates radio chamber from sensor intake chamber | 2.0°C to 3.5°C |
1. Räumliche Trennung (Thermischer Abstand)
Die mit Abstand wirksamste Maßnahme ist räumliche Distanz. Entfernen Sie den DHT22 oder BME280 vollständig vom Steckbrett des Mikrocontrollers. Wenn Sie den Sensor über ein 10 cm oder 15 cm langes Flachbandkabel anschließen oder ihn auf einem separaten thermischen Abstandshalter montieren, wird er sofort von der Wärmeleitung der Leiterplatte entkoppelt. Da warme Luft nach oben steigt, sollten Sie den Sensor zudem immer unterhalb oder seitlich des ESP32 anbringen, niemals direkt darüber.
2. Firmware-Ablauf anpassen: Erst lesen, dann senden
Der meiste Einsteiger-Code für IoT folgt diesem Muster: Verbindung zum WLAN herstellen, MQTT- oder HTTP-Verbindung aufbauen, Sensor auslesen, Datenpaket senden, zwei Sekunden warten, wiederholen. Weil das WLAN dabei permanent aktiv bleibt, kühlt das Board nie ab.
Strukturieren Sie den Ablauf stattdessen so um, dass Deep Sleep genutzt wird – insbesondere bei Datenlogger-Stationen:
- Wecken Sie den ESP32 aus dem Deep Sleep auf (das WLAN-Funkmodul bleibt ausgeschaltet).
- Lesen Sie den Temperatur- und Feuchtigkeitssensor sofort aus, solange das Board noch kalt ist.
- Initialisieren Sie das WLAN-Modul, verbinden Sie sich mit dem Schulnetzwerk, übertragen Sie die Nutzdaten und schalten Sie das Funkmodul sofort wieder ab.
- Versetzen Sie den ESP32 für 60 bis 300 Sekunden wieder in den Deep Sleep.
Im Deep Sleep fällt die Stromaufnahme von ~100 mA bei reinen Modulen auf wenige Mikroampere ab (oder auf 1–3 mA bei Entwicklungsboards mit passiven USB-Bridges). Der LDO kühlt vollständig ab, und die Messwerte spiegeln die tatsächliche Umgebungsluft wider statt der Abwärme des Silizium-Chips.
3. Sensoren für Stromsparmodi konfigurieren
Wenn Sie den BME280 über Bibliotheken wie die BME280-Bibliothek von Adafruit ansteuern, belassen Sie ihn nicht im kontinuierlichen Abtastmodus. Schalten Sie den Sensor in den „Forced Mode“. Im Forced-Modus schläft der Sensor, führt bei Bedarf eine einzelne Messung durch, liefert die Daten zurück und wechselt automatisch wieder in den Ruhezustand. Für Umgebungsmessungen im Klassenzimmer ist ein Messwert alle 30 bis 60 Sekunden mehr als ausreichend.
Gute ingenieurtechnische Praxis vermitteln
Wenn Lernende beobachten, dass ihre Wetterstation 26 °C meldet, während das Wandthermometer eindeutig 22 °C anzeigt, liegt die Versuchung nahe, dies auf Bauteiltoleranzen billiger Komponenten zu schieben. Das ist jedoch selten der Grund. Überprüft man das System mit einem Infrarot-Thermometer, zeigt sich schnell, dass das ESP32-SoC an einem warmen Nachmittag mit 35 °C oder mehr läuft.
Lernenden beizubringen, die physische Wärmequelle zu diagnostizieren, den Spannungsabfall über dem Regler zu messen und ihre physischen Layouts neu zu konzipieren, baut echte Ingenieurkompetenz auf. Wenn Ihre Schule vernetzte Telemetrieknoten in Klassenräumen oder Folientunneln installiert, bietet die Auseinandersetzung mit standardisierten Sensorhalterungen und stromsparenden IoT-Architekturen über die Sheen IoT learning modules einen strukturierten Weg, diese bewährten Hardware-Praktiken umzusetzen, ohne die Schaltung jedes Mal von Grund auf neu erfinden zu müssen.



