Arduino Mega - Wassersensor

Diese Anleitung zeigt, wie Sie einen Wassersensor mit dem Arduino Mega verwenden. Ein Wassersensor kann Ihnen mitteilen, ob es ein Wasserleck gibt, Niederschlag messen, sehen ob ein Tank überläuft, oder den Wasserstand prüfen. Hier ist, was wir lernen werden:

Arduino Mega und Wassersensor-Modul

Erforderliche Hardware

1×Arduino Mega
1×USB 2.0 Kabel Typ A/B
1×Wasserstandssensor
1×Verbindungskabel
1×(Empfohlen) Screw Terminal Block Shield for Arduino Uno/Mega
1×(Empfohlen) Breadboard Shield for Arduino Mega
1×(Empfohlen) Enclosure for Arduino Mega

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 Pinout

Der Wasserstandssensor hat drei Pins:

  • S (Signal) Pin: Er sendet ein analoges Signal. Verbinden Sie ihn mit einem analogen Eingang Ihres Arduino Mega.
  • + (VCC) Pin: Er versorgt den Sensor mit Strom. Verwenden Sie 3,3V bis 5V.
  • - (GND) Pin: Masse-Anschluss.
Wassersensor Pinout

※ Notiz:

Das Ausgangssignal des Signal-Pins des Sensors ändert sich je nach der Spannung, die Sie an seinen VCC-Pin anlegen.

Wie der Wasserstandssensor funktioniert

Wenn mehr Wasser um den Sensor ist, steigt die Spannung am Signal-Pin.

Schauen wir uns das genauer an.

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 hat zehn Kupferdrähte, die Sie sehen können. Er hat fünf Stromdrähte und fünf Sensordrähte. Die Drähte sind nebeneinander angeordnet, mit einem Sensordraht zwischen jeweils zwei Stromdrähten. Normalerweise berühren sich die Drähte nicht, aber wenn der Sensor in Wasser gelegt wird, verbindet das Wasser die Drähte.

Die Metallleitungen auf der Platine wirken wie ein einstellbarer Widerstand, wie ein Potentiometer, und ihr Widerstand ändert sich mit dem Wasserstand.

  • Der Widerstand ändert sich, um zu zeigen, wie weit die Oberseite des Sensors von der Wasseroberfläche entfernt ist.
  • Der Widerstand sinkt, wenn der Wasserstand steigt.
  • Wenn der Sensor tiefer im Wasser ist, leitet er Elektrizität besser, daher ist der Widerstand niedriger.
  • Wenn der Sensor weniger tief im Wasser ist, leitet er Elektrizität schlechter, daher ist der Widerstand höher.
  • Der Sensor gibt eine Ausgangsspannung ab, die vom Widerstand abhängt.

Wir können den Wasserstand bestimmen, indem wir die Spannung messen.

Schaltplan

Versorgen Sie den Sensor mit Strom, indem Sie seinen VCC mit dem 5V des Arduino Mega und sein GND mit dem GND des Arduino verbinden.

Aber es ist nicht ratsam, den Sensor in einer feuchten Umgebung die ganze Zeit mit Strom zu versorgen, da er schnell korrodieren und seine Lebensdauer verkürzen kann. Um dies zu vermeiden, empfehlen wir, den Sensor nur dann mit Strom zu versorgen, wenn Sie seine Daten lesen müssen. Sie können dies tun, indem Sie den VCC-Pin des Sensors mit einem digitalen Pin eines Arduino Mega verbinden. Setzen Sie den Pin auf HIGH, um den Sensor zu lesen, und dann auf LOW, wenn Sie fertig sind.

Arduino Mega Wassersensor Schaltplan

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

Arduino Mega Code - Wert vom Wassersensor lesen

/* * Dieser Arduino Mega Code wurde von newbiely.de entwickelt * Dieser Arduino Mega 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-mega/arduino-mega-water-sensor */ #define POWER_PIN 5 // Pin used to supply power to the water sensor (VCC control) #define SIGNAL_PIN A0 // Analog input connected to the water sensor's output signal int value = 0; // Stores the most recent reading from the sensor void setup() { Serial.begin(9600); // Initialize serial communication at 9600 baud pinMode(POWER_PIN, OUTPUT); // Configure POWER_PIN as an output to switch the sensor power digitalWrite(POWER_PIN, LOW); // Ensure the sensor is powered off at startup } void loop() { digitalWrite(POWER_PIN, HIGH); // Power the sensor by setting POWER_PIN high delay(10); // Wait briefly for the sensor to stabilize value = analogRead(SIGNAL_PIN); // Read the sensor's analog signal digitalWrite(POWER_PIN, LOW); // Power down the sensor to save energy Serial.print("Sensor value: "); // Output a label for the reading Serial.println(value); // Print the numeric sensor value delay(1000); // Wait 1 second before the next reading }

Schnelle Schritte

Befolgen Sie diese Schritte Schritt für Schritt:

  • Verbinden Sie den Wassersensor mit dem Arduino Mega wie im Schaltplan gezeigt.
  • Verbinden Sie den Arduino Mega mit Ihrem Computer über ein USB-Kabel.
  • Öffnen Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das Arduino Mega Board und den korrekten COM-Port.
  • Kopieren Sie den gegebenen Code und öffnen Sie ihn in der Arduino IDE.
  • Klicken Sie auf die Upload Taste, um den Code an den Arduino Mega zu senden.
  • Senken Sie den Sensor langsam in das Wasser (verwenden Sie ein Glas Wasser).
  • Überprüfen Sie das Ergebnis im Serial Monitor. Es zeigt 0, wenn der Sensor nichts berührt.
COM6
Send
Sensor value: 0 Sensor value: 0 Sensor value: 0 Sensor value: 25 Sensor value: 97 Sensor value: 284 Sensor value: 428 Sensor value: 435 Sensor value: 441 Sensor value: 455 Sensor value: 467 Sensor value: 521 Sensor value: 528 Sensor value: 553
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

Tauchen Sie den Sensor nicht vollständig unter Wasser. Nur die freiliegenden Teile auf der Platine dürfen Wasser berühren. Bitte installieren Sie ihn vorsichtig.

Wie man Wasserlecks erkennt

Um zu prüfen, ob es ein Wasserleck gibt, es regnet oder der Tank überläuft, vergleichen wir einfach die Messung mit einem festen Grenzwert. Wir setzen diesen Grenzwert während der Einrichtung in dieser Anleitung fest.

Arduino Mega Code - Wasserleck-Erkennung

/* * Dieser Arduino Mega Code wurde von newbiely.de entwickelt * Dieser Arduino Mega 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-mega/arduino-mega-water-sensor */ #define POWER_PIN 5 // Arduino Mega pin that powers the water sensor by feeding its VCC #define SIGNAL_PIN A0 // Arduino Mega analog pin connected to the sensor's output signal #define THRESHOLD 300 int value = 0; // Holds the latest sensor reading void setup() { Serial.begin(9600); pinMode(POWER_PIN, OUTPUT); // Configure the power control pin as an output digitalWrite(POWER_PIN, LOW); // Start with the sensor powered down } void loop() { digitalWrite(POWER_PIN, HIGH); // Turn on the sensor power delay(10); // Short delay for sensor stabilization value = analogRead(SIGNAL_PIN); // Read sensor voltage from the signal pin digitalWrite(POWER_PIN, LOW); // Turn off the sensor power if (value > THRESHOLD) { // Compare the reading to the threshold Serial.print("The water is dedected"); // Output status to the serial monitor } }

Wie man den Wasserstand misst

Um den höchsten Wasserstand in mehrere Stufen zu unterteilen und zu prüfen, auf welcher Stufe Sie sich befinden, verwenden Sie die im Code unten gezeigte Methode. Denken Sie daran, der höchste Wasserstand entspricht der Höhe des Sensors. Dieser Code teilt die höchste Höhe in 4 Stufen auf.

/* * Dieser Arduino Mega Code wurde von newbiely.de entwickelt * Dieser Arduino Mega 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-mega/arduino-mega-water-sensor */ #define POWER_PIN 5 // Controls power to the water sensor by feeding its VCC from the Arduino Mega #define SIGNAL_PIN A0 // Reads the sensor output from analog pin A0 #define SENSOR_MIN 0 // Sensor's minimum value used for mapping #define SENSOR_MAX 521 // Sensor's maximum value used for mapping int value = 0; // Stores the most recent raw ADC value int level = 0; // Stores the computed water level indicator (0-4) void setup() { Serial.begin(9600); // Initialize serial communication pinMode(POWER_PIN, OUTPUT); // Configure the power control pin as an output digitalWrite(POWER_PIN, LOW); // Ensure the sensor is powered off on startup } void loop() { digitalWrite(POWER_PIN, HIGH); // Power the sensor on delay(10); // Allow sensor to stabilize value = analogRead(SIGNAL_PIN); // Read the sensor's analog value digitalWrite(POWER_PIN, LOW); // Turn the sensor off to save power level = map(value, SENSOR_MIN, SENSOR_MAX, 0, 4); // Convert the sensor value to a 0-4 scale Serial.print("Water level: "); // Output the label Serial.println(level); // Output the calculated level delay(1000); // Wait for 1 second before the next reading }

※ Notiz:

  • Der minimale Sensorwert (SENSOR_MIN) und der maximale Sensorwert (SENSOR_MAX) werden während der Kalibrierung festgelegt.
  • Die oben gezeigte Mapping-Methode ist möglicherweise nicht exakt, aber sie funktioniert in vielen Fällen gut. Um genauer zu sein, messen Sie die Schwellenwerte für jede Stufe, wie im Kalibrierungsabschnitt erklärt.

Wasserstandssensor Kalibrierung

Wie der Sensor Ergebnisse anzeigt, hängt vom Wasserstand und davon ab, wie gut das Wasser Elektrizität leitet. Reines Wasser leitet keine Elektrizität. Aber Wasser mit Mineralien oder anderen Substanzen leitet Elektrizität. Je leitfähiger das Wasser, desto empfindlicher ist der Sensor. Außerdem ändert sich die Messung, wenn Sie verschiedene Spannungen am VCC-Pin des Sensors verwenden.

Um genaue Messungen vom Wassersensor zu erhalten, richten Sie ihn für die exakte Art von Wasser ein, die Sie messen werden.

Bevor Sie einen Grenzwert für eine Aktion setzen, holen Sie sich zuerst die echte Messung vom Sensor, indem Sie ihn testen.

Wie man den Test durchführt

  • Schauen Sie auf das Bild, um den Sensorwert zu lesen.
  • Setzen Sie den Sensor bis zu dem gewünschten Level ins Wasser.
  • Notieren Sie die im Serial Monitor angezeigte Zahl.
  • Verwenden Sie diese Zahl als Grenzwert, um eine Aktion auszulösen.

Dieser Test kann einige Versuche brauchen, um richtig zu werden.

Der Test kann uns auch dabei helfen herauszufinden:

  • Die kleinste Sensormessung, wenn der Sensor außerhalb des Wassers ist.
  • Die größte Sensormessung, wenn er vollständig im Wasser ist.
  • Einen Grenzwert zur Erkennung von Wasserlecks.
  • Die Grenzwerte für jede Stufe auf Ihrer Skala.

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!