- Erforderliche Materialien
- Regensensor
- Funktionsweise des Regensensors
- Schaltplan
- Code Erklärung
- Funktion des Arduino-basierten Regenerkennungssystems
Ein einfaches Regenerkennungssystem kann einfach aufgebaut werden, indem ein Arduino mit dem Regensensor verbunden wird. Der Sensor erkennt jeden darauf fallenden Regen und das Arduino-Board erkennt ihn und kann die erforderlichen Aktionen ausführen. Ein solches System kann in vielen verschiedenen Bereichen eingesetzt werden, beispielsweise in der Landwirtschaft und im Automobilbereich. Die Niederschlagserkennung kann verwendet werden, um den Bewässerungsprozess automatisch zu regulieren. Auch kontinuierliche Niederschlagsdatenkann Landwirten helfen, dieses intelligente System zu verwenden, um die Ernte nur dann automatisch zu gießen, wenn dies unbedingt erforderlich ist. In ähnlicher Weise können im Automobilsektor Scheibenwischer unter Verwendung des Regenerkennungssystems vollautomatisch hergestellt werden. Die Hausautomationssysteme können auch die Regenerkennung verwenden, um Fenster automatisch zu schließen und die Raumtemperatur anzupassen. In diesem Tutorial bauen wir einen grundlegenden Regensensor mit Arduino und einem Summer. Mit diesem Setup können Sie dann alles aufbauen, was Sie möchten. Beachten Sie auch, dass das Regensensormodul je nach Verwendung auch als Regentropfensensor oder Regenmesssensor oder Regenwassersensor bezeichnet wird. Sie beziehen sich jedoch alle auf denselben Sensor, der in diesem Projekt verwendet wird, und sie arbeiten alle nach demselben Prinzip.
Wir haben auch einen einfachen Regenalarm und einen automatischen Autowischer nur mit dem 555 Timer gebaut. Vielleicht möchten Sie dies auch überprüfen, wenn Sie keinen Arduino verwenden möchten. Lassen Sie uns zu diesem Projekt zurückkehren und mit dem Bau unserer Arduino-Regenanzeige beginnen.
Erforderliche Materialien
- Arduino UNO
- Regensensor
- Summer
- Steckbrett
- Kabel anschließen
Regensensor
Das Regentropfenmodul besteht aus zwei Platinen, nämlich der Regenplatine und der Steuerplatine.
Das Rain-Board- Modul besteht aus zwei Kupferschienen, die so konstruiert sind, dass sie unter trockenen Bedingungen einen hohen Widerstand gegen die Versorgungsspannung bieten. Diese Ausgangsspannung dieses Moduls beträgt 5 V. Der Widerstand dieses Moduls nimmt im Hinblick auf eine Zunahme der Nässe auf der Platine allmählich ab. Wenn der Widerstand abnimmt, nimmt auch seine Ausgangsspannung in Bezug auf die Nässe am Modul ab. Das Rain Board-Modul besteht aus zwei Pins, die zum Anschluss an die Steuerplatine verwendet werden (siehe Abbildung unten).
Das Steuerplatinenmodul steuert die Empfindlichkeit und wandelt den analogen Ausgang in einen digitalen Ausgang um. Wenn der Analogwert unter dem Schwellenwert der Steuerplatine liegt, ist der Ausgang digital niedrig, und wenn der Analogwert höher als der Schwellenwert ist, ist der Ausgang digital hoch. Für diesen Vergleich und diese Umwandlung wird ein LM393 OP-Amp-Komparator verwendet. Ein Operationsverstärkerkomparator ist eine interessante Schaltung, mit der zwei verschiedene Spannungswerte verglichen werden können. Wir haben diese Schaltung bereits in vielen Projekten wie Smart Electronic Candle, Lasersicherheitsalarm, Line Follower Robot und vielem mehr verwendet.
Das unten gezeigte Rain-Steuermodul besteht aus 4 Pins zum Anschließen des Arduino, nämlich VCC, GND, D0, A0, und zwei weiteren Pins zum Anschließen des Rain-Board-Moduls. Zusammenfassend erkennt das Regenplatinenmodul das Regenwasser, und das Steuerplatinenmodul wird verwendet, um die Empfindlichkeit zu steuern und die analogen Werte zu vergleichen und in digitale Werte umzuwandeln.
Funktionsweise des Regensensors
Die Funktionsweise des Regensensormoduls ist einfach zu verstehen. An einem sonnigen Tag bietet es aufgrund der Trockenheit des Regenplatinenmoduls einen hohen Widerstand gegen die Versorgungsspannung. Diese Spannung erscheint am Ausgangspin des Regenplatinenmoduls als 5V. Diese 5 V werden als 1023 gelesen, wenn sie von einem analogen Pin des Arduino gelesen werden. Während des Regens verursacht das Regenwasser eine Zunahme der Nässe auf dem Regenbrett, was wiederum zu einer Abnahme des für die Versorgung angebotenen Widerstands führt. Wenn der Widerstand allmählich abnimmt, beginnt die Ausgangsspannung abzunehmen.
Wenn das Regenbrett vollständig nass ist und der von ihm gebotene Widerstand minimal ist, ist die Ausgangsspannung so niedrig wie möglich (ca. 0). Diese 0 V werden als 0-Wert gelesen, wenn sie von einem analogen Pin des Arduino gelesen werden. Wenn das Regenplatinenmodul teilweise nass ist, bezieht sich die Leistung dieses Regenplatinenmoduls auf den Widerstand, den es bietet. Wenn der vom Regenplatinenmodul gebotene Widerstand so ist, dass der Ausgang 3 V beträgt, beträgt der gelesene analoge Wert 613. Die Formel zum Ermitteln des ADC kann gegeben werden durch: ADC = (analoger Spannungswert X 1023) / 5. Mit dieser Formel können Sie jede analoge Spannung in einen analogen Arduino-Lesewert umwandeln.
Schaltplan
Das folgende Schaltbild zeigt Ihnen die Schaltungsanschlüsse für den Regentropfensensor mit Arduino. Das Design erfolgt mit Proteus, die physischen Module ähneln den im Schaltplan gezeigten Modulen.
Das im Schaltplan gezeigte Regenmessermodul wird an die Steuerplatine angeschlossen. Der VCC-Pin der Steuerplatine ist mit der 5-V-Versorgung verbunden. Der Erdungsstift ist mit Masse verbunden. Bei Bedarf wird der D0-Pin mit einem beliebigen digitalen Pin des Arduino verbunden, und dieser Pin muss im Programm als Ausgangspin deklariert werden. Das Problem mit dem D0-Pin ist, dass wir den genauen Wert der Ausgangsspannung nicht erhalten können. Wenn der Ausgang die Schwellenspannung überschreitet, kann das Steuermodul die Änderung des Ausgangs erfassen. Wir müssen den Summer bedienen, auch wenn sich die Ausgangsspannung im Regenplatinenmodul erheblich ändert. Aus diesen Gründen ist der A0-Pin mit dem analogen Pin von Arduino verbunden, was die Überwachung der Änderung des Ausgangs erleichtert. Der Summer, der als Signal an den Benutzer verwendet wird,kann an jeden digitalen Pin des Arduino angeschlossen werden. Wenn der Summer mehr als 5 V benötigt, versuchen Sie, eine Relaisschaltung oder einen Transistor anzuschließen und dann die Last daran anzuschließen.
Code Erklärung
Der Arduino-Code für den Regensensor wurde mit der Arduino-IDE geschrieben. Der vollständige Code für dieses Projekt ist am Ende der Seite angegeben.
#define Niederschlag A0 #define Summer 5 int Wert; int set = 10;
Definieren Sie Pin A0 als Niederschlag und Pin 5 als Summer und deklarieren Sie die Variablen "value" und "set" als Ganzzahlen und setzen Sie den variablen Sollwert auf 10. Dieser Wert kann je nach erforderlicher Betriebsstufe geändert werden. Wenn Sie möchten, dass der Summer aktiviert wird, stellen Sie ihn auch bei wenig Regen auf einen Mindestwert ein
void setup () {Serial.begin (9600); pinMode (Summer, OUTPUT); pinMode (Niederschlag, EINGABE); }}
Initialisieren der seriellen Kommunikation und Einstellen des Summers. Einstellen des Niederschlagsstifts als Ausgangs- und Eingangsstift.
void loop () {value = analogRead (Niederschlag); Serial.println (Wert); Wert = Karte (Wert, 0,1023,225,0);
Die Funktion analogRead liest den Wert des Regensensors. Die Funktionskarte bildet den Wert des Regensensors vom Ausgangspin ab und weist der Variablen einen Wert zwischen 0 und 225 zu.
if (Wert> = gesetzt) {Serial.println ("Regen erkannt"); digitalWrite (Summer, HIGH);
Wenn der Wert des Lesesensors größer als der eingestellte Wert ist, tritt das Programm in die Schleife ein, druckt die Meldung auf dem seriellen Monitor und schaltet den Summer ein
sonst {digitalWrite (Summer, LOW);
Das Programm ruft die else-Funktion nur auf, wenn der Wert kleiner als der eingestellte Wert ist. Diese Funktion schaltet den Summer aus, wenn der eingestellte Wert höher als der Wert des Sensors ist, was darauf hinweist, dass es nicht regnet.
Funktion des Arduino-basierten Regenerkennungssystems
Dieses System arbeitet so, dass bei Regen das Regenwasser als Auslöser fungiert, der den Summer einschaltet. Im Arduino-Code des Regentropfensensors haben wir definiert, dass die Pins 5 und A0 Summer und Niederschlag sind. Auf diese Weise können wir die Pins im definierten Teil der Funktion ändern, und der verbleibende Teil des Codes bleibt unberührt. Dies erleichtert dem Programmierer das Bearbeiten der Stifte.
In der Void-Schleife liest der Befehl analogRead den Wert vom Sensor. In der nächsten Zeile gibt der Befehl Serial.println (Wert) den Wert auf dem seriellen Monitor aus. Dies ist beim Debuggen hilfreich. Die Zuordnungsfunktion bildet den eingehenden Wert zwischen 0 und 225 ab. Das Funktionsformat für die Karte ist eine Karte (Wert, Minimalwert, Maximalwert, Wert, der für den Minimalwert zugeordnet werden soll, Wert, der für den Maximalwert zugeordnet werden soll). Der Summer wird abhängig vom eingestellten Wert und der Ausgabe des Sensors ein- oder ausgeschaltet. Dieser Wert wird in der if-Funktion mit dem eingestellten Wert verglichen. Wenn der Wert größer als der eingestellte Wert ist, wird der Summer eingeschaltet. Wenn der Wert kleiner als der eingestellte Wert ist, wird der Summer ausgeschaltet.
Die komplette Arbeit finden Sie in dem unten verlinkten Video. Dies ist eine Anwendung unter den vielen. Das gleiche Prinzip wird bei Scheibenwischern, anderen Hausautomations-, Landwirtschaftssektoren usw. zu beobachten sein. Ich hoffe, Sie haben das Projekt verstanden und es genossen, etwas Nützliches zu bauen. Wenn Sie Fragen haben, verwenden Sie den Kommentarbereich unten oder nutzen Sie unsere Foren für andere technische Fragen.