Arduino - Regensensor

Der Regensensor ist in der Lage, Regen- bzw. Schneehöhe zu erkennen und zu messen. Er liefert zwei Ausgänge: einen digitalen Ausgang (LOW/HIGH) und einen analogen Ausgang.

In diesem Tutorial lernen wir, wie man einen Arduino und einen Regensensor verwendet, um Regen zu erkennen und zu messen. Insbesondere werden wir Folgendes behandeln:

Arduino-Regensensor

Anschließend können Sie den Code so ändern, dass ein Motor oder eine Warnung aktiviert wird, wenn Regen oder Schnee erkannt wird.

Erforderliche Hardware

1×Arduino Uno R3
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×Regensensor
1×Verbindungskabel
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V3 Starter-Kit (Arduino enthalten)
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 den Regensensor

Der Regensensor kann verwendet werden, um das Vorhandensein von Regen zu erkennen oder den durch den Regen verursachten Wasserstand zu messen. Der Regensensor bietet zwei Optionen über einen digitalen Ausgangspin und einen analogen Ausgangspin.

Der Regensensor besteht aus zwei Teilen:

  • Das Sensorpad
  • Das Elektronikmodul
Pinbelegung des Regensensors
image source: diyables.io

Die Sensorfläche

Das Sensorpad wird im Freien platziert und kann Regen und Schnee ausgesetzt sein (z. B. auf dem Dach). Das Sensorpad verfügt über eine Reihe offener Kupferbahnen, die in zwei Gruppen unterteilt sind: Leistungsbahnen und Messbahnen. Diese Leistungsbahn und Messbahn sind nicht verbunden, es sei denn, sie werden durch Wasser oder Schnee überbrückt. Es gibt keinen Unterschied zwischen der Leistungsbahn und der Messbahn. Sie können eine als Leistungsbahn auswählen, und die andere wird zur Messbahn.

Das Elektronikmodul

Das elektronische Modul des Regensensors wandelt das Signal des Sensorpads in einen analogen oder digitalen Wert um, der vom Arduino gelesen werden kann. Es umfasst vier Pins:

  • Der VCC-Pin muss mit VCC verbunden werden (3,3 V bis 5 V).
  • Der GND-Pin muss mit GND (0 V) verbunden werden.
  • DO-Pin: Es handelt sich um einen digitalen Ausgangspin. Er ist HIGH, wenn kein Regen erkannt wird, und LOW, wenn Regen erkannt wird. Der Schwellenwert für die Regen-Erkennung kann durch ein eingebautes Potentiometer angepasst werden.
  • AO-Pin: Es handelt sich um einen analogen Ausgangspin. Der Ausgangswert sinkt, wenn im Sensorpad mehr Wasser vorhanden ist, und steigt, wenn im Sensorpad weniger Wasser vorhanden ist.

Außerdem verfügt es über zwei LED-Anzeigen:

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

Wie es funktioniert

Für den DO-Pin:

  • Das Modul verfügt über ein integriertes Potentiometer zur Einstellung des Schwellenwerts (Empfindlichkeit).
  • Wenn die Intensität den Schwellenwert überschreitet, wird Regen erkannt, der Ausgangspin des Sensors ist niedrig, und die DO-LED leuchtet.
  • Wenn die Intensität unter dem Schwellenwert liegt, wird kein Regen erkannt, der Ausgangspin des Sensors ist hoch, und die DO-LED ist aus.

Für den AO-Pin:

  • Je mehr Wasser im Sensorpad ist, desto niedriger ist der am AO-Pin gemessene Wert.
  • Je weniger Wasser im Sensorpad ist, desto höher ist der am AO-Pin gemessene Wert.

Beachten Sie, dass das Potentiometer den Wert am AO-Pin nicht beeinflusst.

Verdrahtungsdiagramm

Wie oben erwähnt, sollte der VCC-Pin des Sensors mit 3,3 V oder 5 V verbunden werden. Wenn wir diesen Pin direkt mit dem 3,3-V- oder 5-V-Pin des Arduino verbinden, verkürzt sich die Lebensdauer des Sensors aufgrund elektrochemischer Korrosion. Der beste Weg ist, den VCC-Pin des Regensensors mit einem Ausgangspin des Arduino zu verbinden. Wir können diesen Pin so programmieren, dass er den Regensensor nur beim Auslesen mit Strom versorgt. Dies kann den Einfluss der elektrochemischen Korrosion minimieren.

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

  • Der Schaltplan zwischen dem Arduino und dem Regensensor, wenn nur DO verwendet wird.
Arduino-Regen-Sensor-Schaltplan

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

  • Das Verdrahtungsdiagramm zwischen Arduino und dem Regensensor, wenn nur AO verwendet wird.
Schaltplan zur Regen-Erkennung mit Arduino

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

  • Der Schaltplan zwischen Arduino und dem Regensensor, wenn sowohl AO als auch DO verwendet werden.
Arduino-Regenmelder-Schaltplan

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

Arduino-Code - Wert des DO-Pins auslesen

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino 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/arduino/arduino-rain-sensor */ #define POWER_PIN 3 // The Arduino pin that provides the power to the rain sensor #define DO_PIN 4 // The Arduino's pin connected to DO pin of the rain sensor void setup() { // initialize serial communication Serial.begin(9600); // initialize the Arduino'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

  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE.
  • Klicken Sie auf die Schaltfläche Hochladen in der Arduino IDE, um den Code auf den Arduino hochzuladen.
  • Gießen Sie etwas Wasser auf den Regensensor.
  • Sehen Sie das Ergebnis im seriellen 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 der LED-Status dauerhaft eingeschaltet bleiben kann oder auch dann ausgeschaltet ist, wenn der Sensor dem Regen ausgesetzt ist. Sie können das Potentiometer einstellen, um die Empfindlichkeit des Sensors fein abzustimmen.

Arduino-Code - Wert vom AO-Pin lesen

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino 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/arduino/arduino-rain-sensor */ #define POWER_PIN 3 // The Arduino pin that provides the power to the rain sensor #define AO_PIN A0 // Arduino's pin connected to AO pin of the rain sensor void setup() { // initialize serial communication 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

  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE.
  • Klicken Sie in der Arduino IDE auf die Hochladen-Schaltfläche, um den Code auf den Arduino hochzuladen.
  • Gießen Sie etwas Wasser auf den Regensensor.
  • Sehen 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  

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!