sheen.bot-Logo

← Einblicke

Warum Ihr analoger ESP32-Sensor verrücktspielt, sobald eine WLAN-Verbindung besteht

15. Okt. 2026·Sheen Robotics
Warum Ihr analoger ESP32-Sensor verrücktspielt, sobald eine WLAN-Verbindung besteht

Liefert Ihr analoger Sensor nur noch unbrauchbare Werte, sobald das WLAN startet, haben Sie ihn an einen ADC2-Pin angeschlossen. Das WLAN-Funkmodul des ESP32 belegt ADC2 exklusiv; das Umstecken des Sensors auf ADC1 behebt das Problem sofort.

Beim Testen über die serielle USB-Schnittstelle liefert Ihr analoger Sensor saubere, plausible Werte. Doch sobald Ihr Code WiFi.begin() ausführt und eine Verbindung herstellt, springen die Messwerte unkontrolliert, bleiben bei 4095 hängen oder fallen direkt auf null ab. Der Sensor ist nicht beschädigt, es fehlt kein Pull-up-Widerstand und Ihr Board ist nicht defekt. Sie haben Ihren Sensor an einen ADC2-Pin angeschlossen.

Der Silizium-Engpass: ADC1 versus ADC2

Der Standard-ESP32-Chip enthält zwei separate 12-Bit-Analog-Digital-Wandler-Peripherieeinheiten (ADC): ADC1 und ADC2. Zusammen bedienen sie auf dem reinen Chip bis zu 18 analoge Eingangspins, wobei Entwicklungsboards eine Untergruppe davon herausführen.

ADC1 arbeitet unabhängig. ADC2 hingegen teilt sich interne Hardwareressourcen mit dem WLAN- und Bluetooth-Funksubsystem des ESP32. Sobald der WLAN-Treiber aktiv wird – sei es beim Scannen nach einer SSID, bei der DHCP-Aushandlung oder beim Übertragen eines MQTT-Telemetriepakets –, beansprucht der Netzwerk-Stack den exklusiven Zugriff auf ADC2 für die Hochfrequenzkalibrierung und interne Leistungsmessungen.

Ruft Ihr Code analogRead() an einem ADC2-Pin auf, während der WLAN-Treiber läuft, unterbricht oder blockiert der Treiber den Lesevorgang. In Arduino-Core- und MicroPython-Umgebungen äußert sich dies auf eine von zwei Arten: Die Lesefunktion schlägt fehl und gibt einen Null- oder fehlerhaften Datenmüll-Wert zurück, oder der HF-Burst des Funkmoduls koppelt starkes elektrisches Rauschen direkt in die Peripherie ein, wodurch die Wandlung zwischen Sättigung (4095) und Masse (0) schwankt.

Die Pin-Neubelegung: Sichere versus unsichere Pins

Die Fehlerbehebung erfordert keinerlei Behelfslösungen im Code: Stecken Sie die Signalleitung Ihres Sensors von ADC2 auf einen ADC1-Pin um. Die ADC1-Kanäle sind vom WLAN-Basisband elektrisch unabhängig und wandeln Signale unabhängig von der Netzwerkaktivität zuverlässig um.

ADC-EinheitGPIO-NummernWLAN-sicher?Hinweise für den Unterricht
ADC1GPIO 32, 33, 34, 35, 36 (VP), 39 (VN)JaSicher für jeden analogen Sensor während der WLAN-Übertragung. Beachten Sie, dass GPIO 34, 35, 36 und 39 reine Eingangspins sind (keine internen Pull-up-/Pull-down-Widerstände).
ADC2GPIO 0, 2, 4, 12, 13, 14, 15, 25, 26, 27NeinFür die analoge Abtastung unbrauchbar, sobald WiFi.begin() aufgerufen wird. Viele dienen zusätzlich als Bootstrapping-Pins.

GPIO 36 und 39 sind auf gängigen 30-Pin- und 38-Pin-ESP32-NodeMCU/DevKit-Boards häufig als VP und VN beschriftet. Diese bilden zusammen mit GPIO 32, 33, 34 und 35 Ihre primären Pins für die analoge Messwerterfassung.

Ein funktionierendes Pinout-Beispiel

Betrachten wir ein typisches IoT-Schulprojekt: ein automatisches Pflanzenüberwachungssystem, das die Bodenfeuchtigkeit erfasst, oder ein Umgebungslichtsensor. Eine Schülerin oder ein Schüler schließt eine analoge Bodenfeuchtesonde an GPIO 4 (ADC2 Kanal 0) an, weil dieser Pin praktischerweise direkt neben dem Ground-Pin liegt. Im Offline-Test gibt der serielle Monitor saubere Werte zwischen 1500 und 2800 aus. Sobald sich das Board jedoch mit dem Access Point der Schule verbindet, um Daten an ein Dashboard zu senden, frieren die Messwerte bei 4095 ein.

So beheben Sie das Problem:

  • Stecken Sie das Signal-Jumperkabel von GPIO 4 auf GPIO 34 (oder 32, 33, 35) um.
  • Aktualisieren Sie die Pin-Definition im Code: const int sensorPin = 34;.
  • Halten Sie GPIO 4 für digitale Ausgänge frei, beispielsweise zur Ansteuerung eines Relaismoduls oder eines Transistors für eine 5V-Tauchpumpe.

Wenn Sie Multisensor-Stationen für die Umweltüberwachung entwerfen, können Sie strukturierte Lehrplanhardware und Pinbelegungspläne auf Sheen IoT entdecken.

Zweiter Faktor: Spannungseinbruch auf der Versorgungsleitung

Haben Sie Ihren Sensor auf ADC1 (z. B. GPIO 32) verlegt und beobachten während der Übertragung immer noch kleinere unregelmäßige Spitzen, liegt eher ein Problem der Spannungsstabilität als eine ADC-Blockade vor. Wenn der ESP32 seinen Funksender aktiviert, schnellt die Stromaufnahme für wenige Millisekunden schlagartig von ca. 50 mA auf über 300–400 mA hoch.

Wird das Board über einen unsauberen USB-Anschluss eines alten Laptopwagens im Klassenzimmer oder über dünne Steckplatinen-Jumperkabel versorgt, bricht die 3,3V-Versorgungsschiene kurzzeitig ein. Da analoge Wandlungen die Spannung relativ zur Versorgungsschiene (der Referenzspannung) messen, lässt ein Einbruch der Versorgungsspannung externe Analogspannungen scheinbar nach oben springen. Ein Elektrolytkondensator mit 100 µF zwischen den 3V3- und GND-Schienen Ihres Steckbretts glättet diese vorübergehenden Funkspitzen vollständig.

#esp32#iot#elektronik#fehlersuche#sensoren

Mehr aus Einblicke