Arduino Mega - Capteur d'eau

Ce guide montre comment utiliser un capteur d'eau avec l'Arduino Mega. Un capteur d'eau peut vous indiquer s'il y a une fuite d'eau, mesurer les précipitations, voir si un réservoir déborde, ou vérifier le niveau d'eau. Voici ce que nous allons apprendre :

Arduino Mega and water sensor module

Matériel requis

1×Arduino Mega
1×Câble USB 2.0 type A/B
1×Capteur de niveau d'eau
1×Câbles de connexion
1×Recommandé: Screw Terminal Block Shield for Arduino Uno/Mega
1×Recommandé: Breadboard Shield for Arduino Mega
1×Recommandé: Enclosure for Arduino Mega

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (30 capteurs/écrans)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du capteur de niveau d'eau

Brochage du capteur de niveau d'eau

Le capteur de niveau d'eau a trois broches :

  • Broche S (Signal) : Elle envoie un signal analogique. Connectez-la à une entrée analogique de votre Arduino Mega.
  • Broche + (VCC) : Elle alimente le capteur. Utilisez 3,3V à 5V.
  • Broche - (GND) : Connexion à la masse.
water sensor pinout

※ Note:

La sortie de la broche de signal du capteur change selon la tension que vous appliquez à sa broche VCC.

Comment fonctionne le capteur de niveau d'eau

Quand il y a plus d'eau autour du capteur, la tension sur la broche de signal augmente.

Regardons cela de plus près.

Cette section est consacrée à des connaissances approfondies. NE vous inquiétez pas si vous ne comprenez pas. Ignorez cette section si elle vous surcharge, et revenez un autre jour. Continuez à lire les sections suivantes.

Le capteur a dix fils de cuivre que vous pouvez voir. Il a cinq fils d'alimentation et cinq fils de capteur. Les fils sont placés côte à côte, avec un fil de capteur entre chaque deux fils d'alimentation. Normalement les fils ne se touchent pas, mais si le capteur est mis dans l'eau, l'eau connecte les fils.

Les lignes métalliques sur le circuit imprimé agissent comme une résistance ajustable, comme un potentiomètre, et leur résistance change avec le niveau d'eau.

  • La résistance change pour montrer à quelle distance le haut du capteur se trouve de la surface de l'eau.
  • La résistance diminue quand le niveau d'eau monte.
  • Quand le capteur est plus profondément dans l'eau, il conduit mieux l'électricité, donc la résistance est plus faible.
  • Quand le capteur est moins profondément dans l'eau, il conduit moins bien l'électricité, donc la résistance est plus élevée.
  • Le capteur donne une tension de sortie qui dépend de la résistance.

Nous pouvons déterminer le niveau d'eau en mesurant la tension.

Schéma de câblage

Alimentez le capteur en connectant son VCC au 5V de l'Arduino Mega et son GND au GND de l'Arduino.

Mais ce n'est pas une bonne idée d'alimenter le capteur tout le temps dans un environnement humide, car il peut se corroder rapidement et raccourcir sa durée de vie. Pour éviter cela, nous recommandons d'alimenter le capteur seulement quand vous avez besoin de lire ses données. Vous pouvez faire cela en connectant la broche VCC du capteur à une broche numérique de l'Arduino Mega. Réglez la broche sur HIGH pour lire le capteur, puis réglez-la sur LOW quand vous avez terminé.

Arduino Mega Water Sensor wiring diagram

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Code Arduino Mega - Lecture de la valeur du capteur d'eau

/* * Ce code Arduino Mega a été développé par newbiely.fr * Ce code Arduino Mega est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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 }

Étapes rapides

Suivez ces étapes une par une :

  • Connectez le capteur d'eau à l'Arduino Mega comme montré dans le schéma.
  • Connectez l'Arduino Mega à votre ordinateur avec un câble USB.
  • Ouvrez l'IDE Arduino sur votre ordinateur.
  • Choisissez la carte Arduino Mega et le bon port COM.
  • Copiez le code donné et ouvrez-le dans l'IDE Arduino.
  • Cliquez sur le bouton Upload pour envoyer le code à l'Arduino Mega.
  • Plongez lentement le capteur dans l'eau (utilisez un verre d'eau).
  • Vérifiez le résultat dans le Moniteur Série. Il affiche 0 quand le capteur ne touche rien.
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  

※ Note:

Ne mettez pas le capteur complètement sous l'eau. Seules les parties exposées du circuit imprimé peuvent toucher l'eau. Veuillez l'installer avec précaution.

Comment détecter une fuite d'eau

Pour vérifier s'il y a une fuite d'eau, de la pluie ou si le réservoir déborde, nous comparons simplement la lecture à une limite fixe. Nous définissons cette limite lors de la configuration dans ce guide.

Code Arduino Mega - Détection de fuite d'eau

/* * Ce code Arduino Mega a été développé par newbiely.fr * Ce code Arduino Mega est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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 } }

Comment mesurer le niveau d'eau

Pour diviser le niveau d'eau le plus élevé en plusieurs étapes et vérifier à quelle étape vous êtes, utilisez la méthode montrée dans le code ci-dessous. Rappelez-vous, le niveau d'eau le plus élevé correspond à la hauteur du capteur. Ce code divise la hauteur maximale en 4 étapes.

/* * Ce code Arduino Mega a été développé par newbiely.fr * Ce code Arduino Mega est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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 }

※ Note:

  • La valeur minimale du capteur (SENSOR_MIN) et la valeur maximale du capteur (SENSOR_MAX) sont définies lors de la calibration.
  • La méthode de mappage montrée ci-dessus peut ne pas être exacte, mais elle fonctionne bien dans de nombreux cas. Pour être plus précis, mesurez les valeurs de seuil pour chaque niveau comme expliqué dans la section calibration.

Calibration du capteur de niveau d'eau

La façon dont le capteur montre les résultats dépend du niveau d'eau et de la capacité de l'eau à conduire l'électricité. L'eau pure ne conduit pas l'électricité. Mais l'eau avec des minéraux ou d'autres substances conduit l'électricité. Plus l'eau est conductrice, plus le capteur est sensible. De plus, la lecture change quand vous utilisez différentes tensions sur la broche VCC du capteur.

Pour obtenir des lectures précises du capteur d'eau, configurez-le pour le type exact d'eau que vous allez mesurer.

Avant de définir une limite pour une action, obtenez d'abord la vraie lecture du capteur en le testant.

Comment faire le test

  • Regardez l'image pour lire la valeur du capteur.
  • Mettez le capteur dans l'eau jusqu'au niveau que vous voulez.
  • Notez le nombre affiché dans le Moniteur Série.
  • Utilisez ce nombre comme limite pour déclencher une action.

Ce test peut nécessiter quelques essais pour bien le faire.

Le test peut aussi nous aider à découvrir :

  • La plus petite lecture du capteur quand le capteur est hors de l'eau.
  • La plus grande lecture du capteur quand il est complètement dans l'eau.
  • Une limite pour détecter les fuites d'eau.
  • Les limites pour chaque niveau sur votre échelle.

Vidéo

Références des fonctions

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !