ESP32 - Regensensor
Dieses Tutorial zeigt Ihnen, wie Sie einen Regensensor mit einem ESP32 und MicroPython verwenden, um Regen oder Schnee zu erkennen. Wir lernen Folgendes:
- Wie man einen Regensensor an einen ESP32 anschließt.
- Wie man MicroPython-Code für den ESP32 schreibt, um Regen mithilfe des digitalen Signals des Regensensors zu erkennen.
- Wie man MicroPython-Code für den ESP32 schreibt, um mithilfe des analogen Signals des Regensensors zu messen, wie stark es regnet.

Sie können den Code so anpassen, dass er einen Motor oder einen Alarm aktiviert, wenn er Regen oder Schnee erkennt.
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables ESP32 Starter-Kit (ESP32 enthalten) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Überblick über Rain Sensor
Der Regensensor kann die Menge an fallendem Regen oder Schnee erkennen und messen. Er liefert zwei Arten von Ausgangssignalen: ein digitales Signal (LOW oder HIGH) und ein analoges Signal.
Der Regensensor besteht aus zwei Teilen:
- Der Sensorplatte
- Dem Elektronikmodul

Die Sensorplatte
Die Sensorplatte wird im Freien platziert, wo sie Regen oder Schnee ausgesetzt ist, zum Beispiel auf einem Dach. Sie besteht aus mehreren Kupferbahnen, die in zwei Arten unterteilt sind: Versorgungsbahnen und Sensorbahnen. Diese Bahnen bleiben getrennt und verbinden sich nur, wenn Wasser oder Schnee sie berührt. Beide Arten von Bahnen funktionieren identisch, sodass Sie jede Bahn als Versorgungsbahn und eine andere als Sensorbahn festlegen können.
Das Elektronikmodul
Das Elektronikmodul des Regensensors wandelt das Signal der Sensorplatte in eine Form (analog oder digital) um, die der ESP32 auswerten kann. Es hat vier Pins:
- VCC-Pin: Wird mit VCC verbunden (zwischen 3,3V und 5V).
- GND-Pin: Wird mit GND verbunden (0V).
- DO-Pin: Ein digitaler Ausgangspin, der HIGH ist, wenn kein Regen fällt, und LOW, wenn Regen erkannt wird. Mit dem Potentiometer kann die Empfindlichkeit der Regenerkennung eingestellt werden.
- AO-Pin: Ein analoger Ausgangspin, dessen Ausgangswert sinkt, je mehr Wasser sich auf der Sensorplatte sammelt, und steigt, wenn das Wasser weniger wird.
Das Modul verfügt außerdem über zwei LED-Anzeigen:
- Eine Betriebsanzeige (PWR-LED), die leuchtet, wenn das Modul mit Strom versorgt wird.
- Eine Regenstatusanzeige (DO-LED), die mit dem DO-Pin verbunden ist und leuchtet, wenn Regen erkannt wird.
Funktionsweise
Für den DO-Pin:
- Das Modul enthält ein Potentiometer zur Einstellung der Empfindlichkeit.
- Wenn die Regenmenge hoch ist, geht der Ausgangspin des Sensors auf LOW, und die DO-LED leuchtet.
- Wenn die Regenmenge niedrig ist, bleibt der Ausgangspin des Sensors auf HIGH, und die DO-LED bleibt aus.
Für den AO-Pin:
- Je mehr Wasser die Sensorplatte erfasst, desto kleiner wird der Wert am AO-Pin.
- Je weniger Wasser die Sensorplatte erfasst, desto größer wird der Wert am AO-Pin.
- Das Potentiometer beeinflusst den Wert am AO-Pin nicht.
Verdrahtungsdiagramm
Verbinden Sie den VCC-Pin des Sensors mit einem 3,3V- oder 5V-Pin des ESP32. Eine direkte Verbindung kann jedoch die Lebensdauer des Sensors durch elektrochemische Korrosion verkürzen. Verbinden Sie den VCC-Pin stattdessen mit einem programmierbaren Ausgangspin des ESP32, sodass der Sensor nur während der Messung mit Strom versorgt wird. Dieser Ansatz hilft, die elektrochemische Korrosion zu verringern.
- So verbinden Sie ESP32 und Regensensor mithilfe eines Steckbretts
Das Regensensormodul bietet zwei Ausgänge. Sie können je nach Bedarf einen oder beide verwenden.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
- So verbinden Sie ESP32 und Regensensor mithilfe einer Schraubklemmen-Breakout-Platine

ESP32 MicroPython Code - Wert vom DO-Pin lesen
Schnelle Schritte
Hier finden Sie eine Anleitung, wie Sie Ihren MicroPython-Code auf dem ESP32 mit der Thonny IDE einrichten und ausführen:
- Stellen Sie sicher, dass Thonny IDE auf Ihrem Computer installiert ist.
- Vergewissern Sie sich, dass die MicroPython-Firmware auf Ihrem ESP32-Board geladen ist.
- Wenn Sie zum ersten Mal einen ESP32 mit MicroPython verwenden, lesen Sie die Anleitung ESP32 MicroPython Erste Schritte für eine Schritt-für-Schritt-Anleitung.
- Verbinden Sie das ESP32-Board gemäß dem bereitgestellten Schaltplan mit dem Regensensor.
- Verbinden Sie das ESP32-Board mit einem USB-Kabel mit Ihrem Computer.
- Öffnen Sie Thonny IDE auf Ihrem Computer.
- Gehen Sie in Thonny IDE zu Tools Options.
- Wählen Sie im Tab Interpreter aus dem Dropdown-Menü MicroPython (ESP32).
- Stellen Sie sicher, dass der richtige Port ausgewählt ist. Thonny IDE erkennt ihn normalerweise automatisch, aber möglicherweise müssen Sie ihn manuell auswählen (z. B. COM12 unter Windows oder /dev/ttyACM0 unter Linux).
- Kopieren Sie den bereitgestellten MicroPython-Code und fügen Sie ihn in den Editor von Thonny ein.
- Speichern Sie den Code auf Ihrem ESP32:
- Klicken Sie auf den Save-Button oder drücken Sie Ctrl+S.
- Wählen Sie im Speicherdialog MicroPython device.
- Nennen Sie die Datei main.py.
- Klicken Sie auf den grünen Run-Button (oder drücken Sie F5), um das Skript auszuführen.
- Geben Sie einige Wassertropfen auf den Regensensor. Verwenden Sie kein reines Wasser.
- Sehen Sie sich die Meldung in der Shell unten in Thonny an.
Bitte beachten Sie: Wenn die LED ständig leuchtet oder selbst bei Regen aus bleibt, passen Sie die Empfindlichkeit des Sensors durch Drehen am Potentiometer an.
ESP32 MicroPython Code - Wert vom AO-Pin lesen
Schnelle Schritte
- Kopieren Sie den Code und öffnen Sie ihn in Thonny IDE.
- Klicken Sie auf den grünen Run-Button (oder drücken Sie F5), um das Skript auszuführen. Das Skript wird ausgeführt.
- Geben Sie etwas Wasser auf den Regensensor.
- Sehen Sie sich die Meldung in der Shell unten in Thonny an.
※ Notiz:
Dieses Tutorial zeigt, wie Sie mit der Funktion adc.read() Werte von einem ADC (Analog-Digital-Wandler) auslesen, der mit einem Regensensor verbunden ist. Der ADC des ESP32 eignet sich für Projekte, die keine hohe Präzision erfordern. Wenn Ihr Projekt jedoch genaue Messungen benötigt, beachten Sie Folgendes:
- Der ESP32-ADC ist nicht perfekt genau und muss für präzise Ergebnisse möglicherweise kalibriert werden. Jedes ESP32-Board kann leicht abweichen, daher ist eine Kalibrierung für jedes einzelne Board erforderlich.
- Die Kalibrierung kann schwierig sein, besonders für Anfänger, und liefert möglicherweise nicht immer genau die gewünschten Ergebnisse.
Für Projekte, die hohe Präzision erfordern, sollten Sie einen externen ADC (z. B. ADS1115) mit dem ESP32 verwenden oder einen Arduino wählen, der einen zuverlässigeren ADC hat. Wenn Sie den ESP32-ADC dennoch kalibrieren möchten, lesen Sie den ESP32 ADC Calibration Driver.
Video Tutorial
Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.