Arduino Nano - Wassersensor

Dieses Tutorial zeigt dir, wie du den Wassersensor mit dem Arduino Nano verwendest. Wir werden lernen:

Dies lässt sich auf Anwendungen anwenden, die Wasserleckagen, Niederschläge und Tanküberläufe erkennen.

Erforderliche Hardware

1×Official Arduino Nano
1×Alternativ: DIYables ATMEGA328P Nano Development Board
1×USB-A-zu-Mini-B-Kabel
1×Water level sensor
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano

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 den Wasserstandssensor

Wasserstandssensor Pinbelegung

Der Wasserstandssensor hat 3 Pins:

  • Der S (Signal) Pin ist ein analoger Ausgang, der mit einem der analogen Eingänge Ihres Arduino Nano verbunden wird.
  • Der + (VCC) Pin versorgt den Sensor mit Strom, und es wird empfohlen, eine Spannung zwischen 3,3 V und 5 V zu verwenden.
  • Der - (GND) Pin ist eine Masseverbindung.
Wassersensor-Pinbelegung

Wie ein Wasserstandssensor funktioniert

Kurz gesagt: Je mehr Wasser der Sensor eingetaucht ist, desto höher ist die Spannung am Signalpin.

Schauen wir genauer hin.

Dieser Abschnitt widmet sich vertieftem Wissen. Machen Sie sich KEINE Sorgen, wenn Sie es nicht verstehen. Überspringen Sie diesen Abschnitt, wenn er Sie überfordert, und kommen Sie an einem anderen Tag zurück. Lesen Sie weiter mit den folgenden Abschnitten.

Der Sensor verfügt über zehn freiliegende Kupferbahnen:

  • Fünf davon sind Power-Tracks.
  • Die übrigen fünf sind Sinnes-Spuren.

Die Gleise sind parallel angeordnet, wobei zwischen je zwei Stromgleisen jeweils eine Sense-Spur liegt. Sofern sie beim Eintauchen nicht durch Wasser überbrückt werden, sind die Gleise nicht verbunden.

Die Leiterbahnen wirken wie ein variabler Widerstand, ähnlich einem Potentiometer, dessen Widerstand sich mit dem Wasserstand ändert:

  • Der Widerstand wird durch den Abstand vom oberen Teil des Sensors bis zur Wasseroberfläche bestimmt.
  • Der Widerstand ist umgekehrt proportional zur im Sensor vorhandenen Wassermenge:
  • Wenn mehr Wasser vorhanden ist, verbessert sich die Leitfähigkeit und der Widerstand sinkt.
  • Wenn weniger Wasser vorhanden ist, verringert sich die Leitfähigkeit und der Widerstand erhöht sich.
  • Der Sensor erzeugt eine Ausgangsspannung, die vom Widerstand abhängt.

Die Bestimmung des Wasserstands kann durch Messung der Spannung erfolgen.

Verdrahtungsdiagramm

Theoretisch können die VCC- und GND-Pins des Sensors mit den 5V- und GND-Pins des Arduino Nano verbunden werden, um den Sensor mit Strom zu versorgen.

Es wird jedoch nicht empfohlen, diesen Ansatz in der Praxis anzuwenden. In einer feuchten Umgebung, in der der Sensor kontinuierlich mit Strom versorgt wird, korrodiert er elektrochemisch schneller, wodurch seine Lebensdauer verkürzt wird.

Um dies zu vermeiden, schlagen wir vor, den Sensor nicht die ganze Zeit über mit Strom zu versorgen, sondern nur, wenn sein Wert ausgelesen wird. Dies kann erreicht werden, indem man den VCC-Pin des Sensors mit einem digitalen Pin eines Arduino Nano verbindet und den Pin des Arduino vor dem Auslesen auf HIGH und danach auf LOW setzt.

Schaltplan für Arduino Nano-Wassersensor

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

Arduino Nano Code – Auslesen des Wertes des Wassersensors

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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-nano/arduino-nano-water-sensor */ #define POWER_PIN 4 // The Arduino Nano pin connected to the power pin of water sensor #define SIGNAL_PIN A0 // The Arduino Nano pin connected to the signal pin of water sensor int value = 0; // variable to store the water sensor value void setup() { Serial.begin(9600); pinMode(POWER_PIN, OUTPUT); // Configure D7 pin as an OUTPUT digitalWrite(POWER_PIN, LOW); // turn the sensor OFF } void loop() { digitalWrite(POWER_PIN, HIGH); // turn the water sensor ON delay(10); // wait 10 milliseconds value = analogRead(SIGNAL_PIN); // read the analog value from sensor digitalWrite(POWER_PIN, LOW); // turn the water sensor OFF Serial.print("Water sensor value: "); Serial.println(value); delay(1000); }

Schnelle Schritte

  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE.
  • Klicken Sie in der Arduino IDE auf die Hochladen-Schaltfläche, um den Code an den Arduino Nano zu senden.
  • Senken Sie den Sensor vorsichtig in ein Glas Wasser.
  • Überprüfen Sie den seriellen Monitor, um das Ergebnis zu sehen; es sollte 0 sein, wenn der Sensor nichts berührt.
COM6
Send
Water sensor value: 0 Water sensor value: 0 Water sensor value: 0 Water sensor value: 25 Water sensor value: 97 Water sensor value: 284 Water sensor value: 428 Water sensor value: 435 Water sensor value: 441 Water sensor value: 455 Water sensor value: 467 Water sensor value: 521 Water sensor value: 528 Water sensor value: 553
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

Der Sensor sollte nicht vollständig in Wasser eingetaucht werden; nur die freiliegenden Leiterbahnen auf der Leiterplatte sollten mit Wasser in Berührung kommen. Bitte seien Sie bei der Installation vorsichtig.

Wie man Wasserleckagen erkennt

Um Wasserleckagen, Niederschlag und Tanküberlauf zu identifizieren, müssen wir lediglich den Messwert mit einem Schwellenwert vergleichen, der im Kalibrierungsabschnitt dieses Tutorials festgelegt wird.

Schauen wir uns einen bestimmten Fall an. Wenn Wasser erkannt wird, schaltet der Arduino Nano eine LED ein.

Schaltplan

Arduino Nano Wassersensor LED Verdrahtungsdiagramm

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

Siehe Der beste Weg, den Arduino Nano und andere Komponenten mit Strom zu versorgen.

Arduino Nano Code - Wasserleckageerkennung

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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-nano/arduino-nano-water-sensor */ #define LED_PIN 9 // The Arduino Nano pin connected to the led #define POWER_PIN 4 // The Arduino Nano pin connected to the power pin of water sensor #define SIGNAL_PIN A0 // The Arduino Nano pin connected to the signal pin of water sensor #define THRESHOLD 300 int value = 0; // variable to store the sensor value void setup() { Serial.begin(9600); pinMode(LED_PIN, OUTPUT); // Configure D2 pin as an OUTPUT pinMode(POWER_PIN, OUTPUT); // Configure D7 pin as an OUTPUT digitalWrite(POWER_PIN, LOW); // turn the sensor OFF digitalWrite(LED_PIN, LOW); // turn LED OFF } void loop() { digitalWrite(POWER_PIN, HIGH); // turn the sensor ON delay(10); // wait 10 milliseconds value = analogRead(SIGNAL_PIN); // read the analog value from sensor digitalWrite(POWER_PIN, LOW); // turn the sensor OFF if (value > THRESHOLD) { Serial.print("The water is detected"); digitalWrite(LED_PIN, HIGH); // turn LED ON } else { digitalWrite(LED_PIN, LOW); // turn LED OFF } }

Wie man den Wasserstand misst

Wenn Sie die maximale Wasserhöhe in verschiedene Stufen unterteilen und das aktuelle Niveau messen möchten, können Sie die im untenstehenden Code verwendete Technik nutzen. Beachten Sie, dass die maximale Wasserhöhe der Sensorhöhe entspricht. Der untenstehende Code teilt die maximale Höhe in 4 Stufen auf.

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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-nano/arduino-nano-water-sensor */ #define POWER_PIN 4 // The Arduino Nano pin connected to the power pin of water sensor #define SIGNAL_PIN A0 // The Arduino Nano pin connected to the signal pin of water sensor #define SENSOR_MIN 0 #define SENSOR_MAX 521 int value = 0; // variable to store the sensor value int level = 0; // variable to store the water level void setup() { Serial.begin(9600); pinMode(POWER_PIN, OUTPUT); // Configure D7 pin as an OUTPUT digitalWrite(POWER_PIN, LOW); // turn the sensor OFF } void loop() { digitalWrite(POWER_PIN, HIGH); // turn the sensor ON delay(10); // wait 10 milliseconds value = analogRead(SIGNAL_PIN); // read the analog value from sensor digitalWrite(POWER_PIN, LOW); // turn the sensor OFF level = map(value, SENSOR_MIN, SENSOR_MAX, 0, 4); // 4 levels Serial.print("Water level: "); Serial.println(level); delay(1000); }

※ Notiz:

  • SENSOR_MIN und SENSOR_MAX werden durch Kalibrierung bestimmt.
  • Die erwähnte Mapping-Methode ist nicht präzise, eignet sich jedoch für viele Anwendungen.
  • Wenn Sie es genauer machen möchten, können Sie die Schwellenwerte für jede Stufe messen. Weitere Informationen finden Sie im Kalibrierungsabschnitt des Handbuchs.

Kalibrierung des Wasserstandssensors

Der Ausgang des Sensors wird sowohl vom Wasserstand als auch von der Leitfähigkeit des Wassers beeinflusst. Reines Wasser hat keine Leitfähigkeit, während Wasser mit Mineralien und Verunreinigungen leitfähig ist. Je höher die Leitfähigkeit des Wassers, desto empfindlicher wird der Sensor. Zusätzlich wird der Ausgangswert auch durch die an den VCC-Pin des Sensors angelegte Spannung beeinflusst.

Um bei der Messung des Wassersensors Genauigkeit zu gewährleisten, empfehlen wir, den Sensor auf den spezifischen Wassertyp zu kalibrieren, der überwacht werden soll.

Bevor der Schwellenwert für die Aktivierung einer Reaktion festgelegt wird, ist es notwendig, den tatsächlichen Wert, der vom Sensor durch ein Experiment gewonnen wird, zu bewerten.

Anweisungen für den Test:

  • Beziehe dich auf den oben bereitgestellten Sketch, wenn du Sensorwerte ausliest.
  • Platziere den Sensor im Wasser auf dem gewünschten Schwellenwert.
  • Notiere den Wert, der vom Sensor im Serial Monitor angezeigt wird.
  • Verwende diesen Wert als Schwellenwert, um eine Aktion auszulösen.

Es kann erforderlich sein, Experimente durchzuführen, um diesen Test abzuschließen. Seien Sie darauf vorbereitet, verschiedene Ansätze auszuprobieren. Seien Sie bereit, mit verschiedenen Strategien zu experimentieren. Haben Sie Geduld und geben Sie nicht auf. Haben Sie Ausdauer und geben Sie nicht auf.

Der Test kann verwendet werden, um aufzudecken:

  • SENSOR_MIN-Wert, wenn der Sensor nicht in der Flüssigkeit eingetaucht ist
  • SENSOR_MAX-Wert, wenn der Sensor vollständig in das Wasser eingetaucht ist
  • Ein Grenzwert zur Erkennung von Wasseraustritt
  • Die Schwellenwerte für jede Stufe Ihrer Gradskala

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.

Fordere dich heraus

  • Wenn ein Wasserleck erkannt wird:
  • Eine E-Mail senden
  • Eine SMS senden
  • Einen akustischen Alarm auslösen

※ 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!