ESP8266 - Regensensor

Der Regensensor erkennt und misst Regen-/Schneemengen und bietet sowohl digitale (LOW/HIGH) als auch analoge Ausgänge. Dieses Tutorial demonstriert, wie ein ESP8266 verwendet wird, um den Regensensor anzuschließen und zu nutzen, und deckt folgende Punkte ab:

Anschließend können Sie den Code so anpassen, dass er einen Motor aktiviert oder eine Warnung ausgibt, wenn Regen oder Schnee erkannt wird.

Erforderliche Hardware

1×ESP8266 NodeMCU
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×Regensensor
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über Regen-Sensor

Der Regensensor kann Regen erkennen oder den Wasserstand messen. Er bietet zwei Optionen: einen digitalen Ausgangspin und einen analogen Ausgangspin.

Der Sensor besteht aus zwei Bauteilen: dem Sensorpad und dem elektronischen Modul.

Pinbelegung des Regen-Sensors
image source: diyables.io

Das Sensorpad

Das Sensorpad, das im Freien platziert ist (z. B. auf dem Dach), verfügt über freiliegende Kupferspuren, die in zwei Gruppen unterteilt sind: Leistungsspuren und Sense-Spuren. Diese Spuren bleiben unverbunden, es sei denn, Wasser oder Schnee überbrückt sie. Sowohl Leistungs- als auch Sense-Spuren sind identisch, was Flexibilität bei der Zuordnung einer als Leistungsspur und der anderen als Sense-Spur ermöglicht.

Das elektronische Modul

Das elektronische Modul des Regensensors wandelt Signale von der Sensorplatte in analoge oder digitale Werte um, die vom ESP8266 NodeMCU gelesen werden können. Es umfasst vier Pins:

  • VCC-Pin: Schließt an VCC an (3,3 V bis 5 V).
  • GND-Pin: Schließt an GND an (0 V).
  • DO-Pin: Digitaler Ausgangspin, der HIGH anzeigt, wenn kein Regen erkannt wird, und LOW, wenn Regen erkannt wird. Der Schwellenwert für die Regen-Erkennung ist mit einem eingebauten Potentiometer einstellbar.
  • AO-Pin: Analoger Ausgangspin, dessen Wert mit zunehmendem Wasser auf dem Sensorpad abnimmt und mit abnehmendem Wasser zunimmt.

Darüber hinaus verfügt es über zwei LED-Anzeigen:

  • PWR-LED-Anzeige für die Stromversorgung.
  • DO-LED-Anzeige für den Regenzustand am DO-Pin, leuchtet, wenn Regen vorhanden ist.

Wie es funktioniert

Bezüglich des DO-Pins:

  • Das Modul ist mit einem integrierten Potentiometer ausgestattet, um die Empfindlichkeitsschwelle einzustellen.
  • Wenn die Intensität den Schwellenwert überschreitet, wird Regen erkannt, und der Ausgangspin des Sensors geht auf LOW, wodurch die DO-LED eingeschaltet wird.
  • Umgekehrt, wenn die Intensität unter den Schwellenwert fällt, wird kein Regen erkannt, der Ausgangspin geht auf HIGH, und die DO-LED schaltet sich aus.

Bezüglich des AO-Pins:

  • Der AO-Pin-Wert nimmt bei mehr Wasser im Sensorpad ab.
  • Umgekehrt nimmt der AO-Pin-Wert zu, wenn im Sensorpad weniger Wasser vorhanden ist.

Es ist wichtig zu beachten, dass das Potentiometer den Wert am AO-Pin nicht beeinflusst.

Verdrahtungsdiagramm

Wie bereits erwähnt, kann das direkte Anschließen des VCC-Pins des Sensors an die 3,3-V- oder 5-V-Pins des ESP8266 die Lebensdauer des Sensors durch elektrochemische Korrosion verkürzen. Der empfohlene Ansatz besteht darin, den VCC-Pin des Regensensors an einen Ausgangspin des ESP8266 anzuschließen. Indem Sie diesen Pin programmieren, kann der Regensensor nur während der Messungen mit Strom versorgt werden, wodurch die Auswirkungen der elektrochemischen Korrosion minimiert werden.

Da das Regensensor-Modul zwei Ausgänge hat, können Sie je nach Bedarf einen oder beide verwenden.

  • Der Schaltplan zwischen dem ESP8266 und dem Regensensor bei Verwendung von DO allein.
ESP8266 NodeMCU Regensensor Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

  • Das Verdrahtungsdiagramm zwischen ESP8266 und dem Regensensor, wenn nur AO verwendet wird.
Schaltplan zur Regen­erkennung mit ESP8266 NodeMCU

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

  • Das Verdrahtungsdiagramm zwischen dem ESP8266 und dem Regen-Sensor, wenn sowohl AO als auch DO verwendet werden.
ESP8266 NodeMCU-Regenmelder-Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

ESP8266-Code - Wert vom DO-Pin auslesen

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp8266/esp8266-rain-sensor */ #define POWER_PIN D7 // The ESP8266 pin that provides the power to the rain sensor #define DO_PIN D2 // The ESP8266 pin connected to DO pin of the rain sensor void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP8266's pin as an input pinMode(POWER_PIN, OUTPUT); // Configure the power pin pin as an OUTPUT pinMode(DO_PIN, INPUT); } void loop() { digitalWrite(POWER_PIN, HIGH); // turn the rain sensor's power ON delay(10); // wait 10 milliseconds int rain_state = digitalRead(DO_PIN); digitalWrite(POWER_PIN, LOW); // turn the rain sensor's power OFF if (rain_state == HIGH) Serial.println("The rain is NOT detected"); else Serial.println("The rain is detected"); delay(1000); // pause for 1 sec to avoid reading sensors frequently to prolong the sensor lifetime }

Schnelle Schritte

Um mit dem ESP8266 in der Arduino-IDE zu beginnen, folgen Sie diesen Schritten:

  • Schauen Sie sich das Tutorial zur Einrichtung der Umgebung für ESP8266 in der Arduino IDE an, falls Sie ESP8266 zum ersten Mal verwenden.
  • Verdrahten Sie die Bauteile wie im Diagramm gezeigt.
  • Schließen Sie das ESP8266-Board mit einem USB-Kabel an Ihren Computer an.
  • Öffnen Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das richtige ESP8266-Board aus, z. B. NodeMCU 1.0 (ESP-12E Module), und den entsprechenden COM-Port.
  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino-IDE.
  • Klicken Sie auf die Schaltfläche Upload in der Arduino-IDE, um den Code auf den ESP8266 hochzuladen.
  • Tropfen Sie etwas Wasser auf den Regensensor.
  • Überprüfen Sie das Ergebnis im Serial Monitor.
COM6
Send
The rain is NOT detected The rain is NOT detected The rain is NOT detected The rain is detected The rain is detected The rain is detected The rain is detected The rain is detected The rain is NOT detected The rain is NOT detected The rain is NOT detected
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Bitte beachten Sie, dass Sie feststellen, dass der LED-Status dauerhaft eingeschaltet bleibt oder auch ausgeschaltet ist, selbst wenn der Sensor dem Regen ausgesetzt ist. Sie können das Potentiometer einstellen, um die Empfindlichkeit des Sensors fein abzustimmen.

ESP8266-Code - Wert vom A0-Pin lesen

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp8266/esp8266-rain-sensor */ #define POWER_PIN D7 // The ESP8266 pin that provides the power to the rain sensor #define AO_PIN A0 // The ESP8266 pin connected to AO pin of the rain sensor void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); pinMode(POWER_PIN, OUTPUT); // Configure the power pin pin as an OUTPUT } void loop() { digitalWrite(POWER_PIN, HIGH); // turn the rain sensor's power ON delay(10); // wait 10 milliseconds int rainValue = analogRead(AO_PIN); digitalWrite(POWER_PIN, LOW); // turn the rain sensor's power OFF Serial.println(rainValue); // print out the analog value delay(1000); // pause for 1 sec to avoid reading sensors frequently to prolong the sensor lifetime }

Schnelle Schritte

  • Verdrahten Sie die Komponenten wie im Diagramm gezeigt.
  • Schließen Sie das ESP8266-Board mit einem USB-Kabel an Ihren Computer an.
  • Öffnen Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das richtige ESP8266-Board aus, z. B. NodeMCU 1.0 (ESP-12E Module), und den entsprechenden COM-Port.
  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE.
  • Klicken Sie in der Arduino IDE auf die Schaltfläche Hochladen, um den Code auf den ESP8266 hochzuladen.
  • Gießen Sie etwas Wasser auf den Regensensor.
  • Überprüfen Sie das Ergebnis im Seriellen Monitor.
COM6
Send
225 2426 236 563 687 959 975 1009 1017 1053 1078 841 743 440 279
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

Diese Anleitung verwendet die Funktion analogRead(), um Daten von einem ADC (Analog-Digital-Wandler) zu erhalten, der an einen Sensor oder eine andere Komponente angeschlossen ist. Der ADC des ESP8266 funktioniert gut für Projekte, bei denen man keine sehr genauen Messwerte benötigt. Aber denken Sie daran, dass der ADC des ESP8266 für detaillierte Messungen nicht besonders genau ist. Wenn Ihr Projekt sehr präzise sein muss, sollten Sie vielleicht einen separaten ADC wie den ADS1115 mit dem ESP8266 verwenden, oder einen Arduino wie den Arduino Uno R4 WiFi verwenden, der einen zuverlässigeren ADC besitzt.

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.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!