Arduino UNO R4 - Capteur d'eau

Ce tutoriel nous expliquera comment utiliser un capteur d'eau avec l'Arduino UNO R4. Un capteur d'eau peut détecter une fuite d'eau, mesurer les précipitations, vérifier si un réservoir déborde ou vérifier le niveau d'eau. En détail, nous apprendrons :

Arduino UNO R4 et module capteur d'eau

À propos du capteur de niveau d'eau

Schéma des broches du capteur de niveau d'eau

Le capteur de niveau d'eau comporte trois broches :

  • Broche S (Signal) : Il s'agit d'une sortie analogique. Connectez-la à une entrée analogique sur votre Arduino UNO R4.
  • Broche + (VCC) : Cette broche alimente le capteur. Utilisez 3,3 V à 5 V pour l'alimenter.
  • Broche - (GND) : Il s'agit d'une connexion à la masse.
Schéma de brochage du capteur d'eau

※ Note:

La sortie de la broche de signal du capteur varie en fonction de la tension appliquée à sa broche VCC.

Comment fonctionne le capteur de niveau d'eau

Plus le capteur est immergé dans l'eau, plus la tension de sortie sur la broche de signal augmente.

Regardons 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 comprend dix lignes de cuivre que vous pouvez voir. Il comporte cinq lignes d'alimentation et cinq lignes de capteurs. Ces lignes sont disposées les unes à côté des autres, en alternant une ligne de capteur entre chaque paire de lignes d'alimentation. Habituellement, ces lignes ne se touchent pas, mais si le capteur est plongé dans l'eau, l'eau relie les lignes.

Les traces fonctionnent comme une résistance variable (similaire à un potentiomètre) dont la résistance varie en fonction du niveau d'eau.

  • Le changement de résistance indique à quelle distance se situe le haut du capteur par rapport à la surface de l'eau.
  • La résistance diminue à mesure que le niveau d'eau augmente.
  • Lorsque le capteur est davantage immergé, il conduit l'électricité plus efficacement, ce qui fait baisser la résistance.
  • Lorsque le capteur est moins immergé, il conduit l'électricité moins bien, ce qui augmente la résistance.
  • Le capteur délivre une tension de sortie en fonction de la résistance.

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

Diagramme de câblage

Pour alimenter le capteur, connectez la broche VCC du capteur à la broche 5V de l'Arduino UNO R4 et la broche GND à la broche GND de l'Arduino.

Cependant, il n'est pas conseillé d'alimenter systématiquement le capteur dans un environnement humide, car cela peut provoquer une corrosion rapide du capteur et réduire sa durée de vie. Pour éviter cela, nous suggérons d'alimenter le capteur uniquement lorsque vous devez lire ses données. Vous pouvez le faire en reliant la broche VCC du capteur à une broche numérique sur un Arduino UNO R4. Configurez la broche de l'Arduino sur HIGH pour lire le capteur, puis sur LOW lorsque vous avez terminé.

Schéma de câblage du capteur d'eau pour Arduino UNO R4

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

Voir Comment alimenter l'Arduino UNO R4..

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

/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 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-uno-r4/arduino-uno-r4-water-sensor */ #define POWER_PIN 5 // The Arduino UNO R4 pin connected to the VCC pin of water sensor to control the power #define SIGNAL_PIN A0 // The Arduino UNO R4 pin connected to the signal pin of water sensor int value = 0; // Variable for storing the value read from the sensor void setup() { Serial.begin(9600); // Start serial communication at 9600 baud pinMode(POWER_PIN, OUTPUT); // Set POWER_PIN as an output digitalWrite(POWER_PIN, LOW); // Initially set the POWER_PIN LOW to turn the sensor off } void loop() { digitalWrite(POWER_PIN, HIGH); // Set POWER_PIN HIGH to power the sensor delay(10); // Allow sensor time to stabilize (10ms delay) value = analogRead(SIGNAL_PIN); // Read the value from the sensor digitalWrite(POWER_PIN, LOW); // Set POWER_PIN LOW to turn off the sensor Serial.print("Sensor value: "); // Print the sensor value to Serial Monitor Serial.println(value); // Display the sensor value delay(1000); // Wait for 1 second before reading again }

Étapes rapides

Suivez ces instructions étape par étape :

  • Si c’est votre première utilisation de l'Arduino Uno R4 WiFi/Minima, reportez-vous au tutoriel sur Arduino UNO R4 - Installation du logiciel..
  • Connectez le capteur d’eau à l’Arduino Uno R4 selon le schéma fourni.
  • Connectez la carte Arduino Uno R4 à votre ordinateur à l’aide d’un câble USB.
  • Lancez l’IDE Arduino sur votre ordinateur.
  • Sélectionnez la carte Arduino Uno R4 appropriée (par exemple, Arduino Uno R4 WiFi) et le port COM.
  • Copiez le code fourni et ouvrez-le dans l’IDE Arduino.
  • Appuyez sur le bouton Upload dans l’IDE Arduino pour envoyer le code vers l’Arduino UNO R4.
  • Abaissez progressivement le capteur dans l’eau (utilisez un verre d’eau).
  • Vérifiez le résultat sur le Moniteur Série. Il affiche une valeur de 0 lorsque le capteur n’est en contact avec 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:

Le capteur ne doit pas être entièrement immergé dans l'eau ; seules les parties exposées sur la carte électronique peuvent toucher l'eau. Veuillez l'installer avec soin.

Comment détecter une fuite d'eau

Pour savoir s'il y a une fuite d'eau, de pluie ou un débordement du réservoir, nous comparons simplement la lecture à une limite fixée. Nous avons fixé cette limite lors de l'étape de calibration de ce tutoriel.

Code Arduino UNO R4 - Détection de fuites d'eau

/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 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-uno-r4/arduino-uno-r4-water-sensor */ #define POWER_PIN 5 // The Arduino UNO R4 pin connected to the VCC pin of water sensor to control the power #define SIGNAL_PIN A0 // The Arduino UNO R4 pin connected to the signal pin of water sensor #define THRESHOLD 300 int value = 0; // Initialize variable to store the value read from the sensor void setup() { Serial.begin(9600); pinMode(POWER_PIN, OUTPUT); // Set the power pin as an output digitalWrite(POWER_PIN, LOW); // Initially turn off the power } void loop() { digitalWrite(POWER_PIN, HIGH); // Enable power to the sensor delay(10); // Allow some time for the sensor to stabilize value = analogRead(SIGNAL_PIN); // Read the sensor output digitalWrite(POWER_PIN, LOW); // Disable power to the sensor if (value > THRESHOLD) { // Check if the sensor output exceeds the threshold Serial.print("The water is dedected"); // Send a message to the serial monitor } }

Comment mesurer le niveau d'eau

Pour diviser le niveau d'eau le plus élevé en différentes étapes et vérifier l'étape actuelle, utilisez la technique dans le code suivant. N'oubliez pas que le niveau d'eau le plus élevé correspond à la hauteur du capteur. Ce code divise la hauteur maximale en 4 étapes.

/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 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-uno-r4/arduino-uno-r4-water-sensor */ #define POWER_PIN 5 // The Arduino UNO R4 pin connected to the VCC pin of water sensor to control the power #define SIGNAL_PIN A0 // The Arduino UNO R4 pin connected to the signal pin of water sensor #define SENSOR_MIN 0 // Minimum value for sensor #define SENSOR_MAX 521 // Maximum value for sensor int value = 0; // Holds the current sensor value int level = 0; // Holds the water level indicator void setup() { Serial.begin(9600); // Initialize serial communication pinMode(POWER_PIN, OUTPUT); // Set the power pin as output digitalWrite(POWER_PIN, LOW); // Initially turn off the sensor } void loop() { digitalWrite(POWER_PIN, HIGH); // Activate the sensor delay(10); // Wait for the sensor to stabilize value = analogRead(SIGNAL_PIN); // Read the sensor output digitalWrite(POWER_PIN, LOW); // Deactivate the sensor level = map(value, SENSOR_MIN, SENSOR_MAX, 0, 4); // Map sensor values to 0-4 scale Serial.print("Water level: "); // Print the label Serial.println(level); // Print the mapped water level delay(1000); // Wait one second before repeating }

※ Note:

  • SENSOR_MIN et SENSOR_MAX sont définis lors du processus d'étalonnage.
  • La méthode de cartographie ci-dessus pourrait ne pas être précise, mais elle fonctionne bien pour de nombreuses utilisations. Pour améliorer la précision, mesurez les valeurs seuils pour chaque niveau comme expliqué dans la section d'étalonnage.

Calibration du capteur de niveau d'eau

La sortie du capteur est affectée par le niveau d'eau et par la conductivité de l'eau. L'eau pure ne conduit pas l'électricité. Cependant, l'eau contenant des minéraux et des impuretés conduit l'électricité. Plus la conductivité de l'eau est élevée, plus le capteur devient sensible. De plus, la valeur de sortie varie selon les tensions appliquées à la broche VCC du capteur.

Pour obtenir des lectures précises du capteur d'eau, nous vous suggérons de le calibrer en fonction du type d'eau que vous surveillerez.

Avant de fixer la limite d'une action, mesurez d'abord la valeur réelle du capteur en effectuant un test.

Comment effectuer le test :

  • Utilisez le schéma fourni pour lire la valeur du capteur.
  • Placez le capteur dans l'eau jusqu'au niveau souhaité.
  • Notez la valeur affichée dans le moniteur série.
  • Définissez cette valeur comme seuil pour activer une action.

Ce test pourrait nécessiter quelques tentatives pour être exact.

Le test peut également aider à découvrir :

  • Valeur minimale du capteur lorsqu'il est hors de l'eau.
  • Valeur maximale du capteur lorsqu'il est complètement dans l'eau.
  • Une valeur seuil pour détecter les fuites d'eau.
  • Des valeurs seuils pour chaque niveau de 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 !