Arduino Nano ESP32 - Capteur d'eau

Ce tutoriel fournit des instructions sur comment utiliser l'Arduino Nano ESP32 et le capteur d'eau pour détecter les précipitations, les fuites d'eau, le débordement des réservoirs, et mesurer le niveau d'eau.

Préparation du matériel

1×Arduino Nano ESP32
1×USB Cable Type-C
1×Water level sensor
1×Breadboard
1×Jumper Wires
1×(Optional) DC Power Jack
1×(Recommended) Screw Terminal Adapter for Arduino Nano

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
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 inclut 3 broches :

  • Broche S (Signal) : Cette broche délivre une tension analogique proportionnelle au niveau de l'eau. Cette broche doit être connectée à une broche d'entrée analogique de l'Arduino Nano ESP32.
  • Broche + (VCC) : connectez cette broche à 3,3V ou 5V.
  • Broche - (GND) : connectez cette broche à GND.
brochage du capteur d'eau

Fonctionnement du capteur de niveau d'eau

Plus le capteur est immergé dans l'eau, plus la tension de sortie sur la broche S est élevée. En mesurant cette tension, nous pouvons connaître le niveau d'eau.

Diagramme de câblage

En théorie, nous pouvons alimenter le capteur d'eau en connectant les broches VCC et GND du capteur aux broches 3.3V et GND de l'ESP32, respectivement.

Toutefois, cette méthode n'est pas recommandée en pratique. Si nous alimentons en continu le capteur d'eau, celui-ci se corrode électrochimiquement plus rapidement en raison de l'environnement humide ⇒ Il est préférable de fournir de l'énergie au capteur d'eau uniquement et seulement lors de la lecture des valeurs du capteur. Pour ce faire, nous pouvons connecter la broche VCC du capteur à une broche numérique de l'ESP32 et programmer la broche de l'ESP32 pour qu'elle soit HIGH avant la lecture et LOW après la lecture.

Schéma de câblage du capteur d'eau Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Code Arduino Nano ESP32 - Lecture de la valeur depuis un capteur d'eau

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 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-nano-esp32/arduino-nano-esp32-water-sensor */ #define POWER_PIN D4 // Pin D4 ESP32 de l'Arduino Nano connecté à la broche VCC du capteur #define SIGNAL_PIN A0 // Pin A0 ESP32 de l'Arduino Nano connecté à la broche de signal du capteur int value = 0; // variable pour stocker la valeur du capteur void setup() { Serial.begin(9600); pinMode(POWER_PIN, OUTPUT); // Configurer la broche comme une SORTIE digitalWrite(POWER_PIN, LOW); // éteindre le capteur } void loop() { digitalWrite(POWER_PIN, HIGH); // allumer le capteur delay(10); // attendre 10 millisecondes value = analogRead(SIGNAL_PIN); // lire la valeur analogique du capteur digitalWrite(POWER_PIN, LOW); // éteindre le capteur Serial.print("The water sensor value: "); Serial.println(value); delay(1000); }

Étapes rapides

  • Si c'est la première fois que vous utilisez un Arduino Nano ESP32, consultez comment configurer l'environnement pour Arduino Nano ESP32 sur Arduino IDE.
  • Copiez le code ci-dessus et collez-le dans Arduino IDE.
  • Compilez et téléchargez le code sur la carte Arduino Nano ESP32 en cliquant sur le bouton Upload dans Arduino IDE.
  • Plongez lentement le capteur dans l'eau (un verre d'eau).
  • Consultez le résultat sur le moniteur série. Il ressemble à ce qui suit : La valeur 0 lorsque le capteur ne touche rien.
COM6
Send
The water sensor value: 0 The water sensor value: 0 The water sensor value: 0 The water sensor value: 25 The water sensor value: 196 The water sensor value: 587 The water sensor value: 625 The water sensor value: 1434 The water sensor value: 1449 The water sensor value: 1454 The water sensor value: 1469 The water sensor value: 2525 The water sensor value: 2526 The water sensor value: 2558
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

Le capteur d'eau n'est pas conçu pour être complètement immergé, seules les pistes exposées sur le PCB peuvent être plongées dans l'eau. Veuillez faire attention lors de son installation.

Comment détecter une fuite d'eau

Pour détecter les fuites d'eau, les précipitations et le débordement du réservoir, nous devons simplement comparer la valeur du capteur avec un seuil. Le seuil est déterminé dans la partie étalonnage de ce tutoriel.

Faisons en sorte que l'Arduino Nano ESP32 allume une LED si une fuite d'eau est détectée.

Schéma de câblage

Schéma de câblage du capteur d'eau LED Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Code Arduino Nano ESP32 - Détection de fuite d'eau

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 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-nano-esp32/arduino-nano-esp32-water-sensor */ #define LED_PIN D9 // Broche D9 de l'Arduino Nano ESP32 connectée à la broche LED #define POWER_PIN D4 // Broche D4 de l'Arduino Nano ESP32 connectée à la broche VCC du capteur #define SIGNAL_PIN A0 // Broche A0 de l'Arduino Nano ESP32 connectée à la broche de signal du capteur #define THRESHOLD 1000 int value = 0; // variable pour stocker la valeur du capteur void setup() { Serial.begin(9600); pinMode(LED_PIN, OUTPUT); // Configurer la broche comme une SORTIE pinMode(POWER_PIN, OUTPUT); // Configurer la broche comme une SORTIE digitalWrite(POWER_PIN, LOW); // éteindre le capteur digitalWrite(LED_PIN, LOW); // éteindre la LED } void loop() { digitalWrite(POWER_PIN, HIGH); // allumer le capteur delay(10); // attendre 10 millisecondes value = analogRead(SIGNAL_PIN); // lire la valeur analogique du capteur digitalWrite(POWER_PIN, LOW); // éteindre le capteur if (value > THRESHOLD) { Serial.print("The water is detected"); digitalWrite(LED_PIN, HIGH); // allumer la LED } else { digitalWrite(LED_PIN, LOW); // éteindre la LED } }

Comment mesurer le niveau d'eau

Le code ci-dessous divise le niveau d'eau en 4 niveaux.

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 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-nano-esp32/arduino-nano-esp32-water-sensor */ #define POWER_PIN D4 // La broche D4 de l'Arduino Nano ESP32 connectée à la broche VCC du capteur #define SIGNAL_PIN A0 // La broche A0 de l'Arduino Nano ESP32 connectée à la broche de signal du capteur #define SENSOR_MIN 0 #define SENSOR_MAX 521 int value = 0; // variable pour stocker la valeur du capteur int level = 0; // variable pour stocker le niveau de l'eau void setup() { Serial.begin(9600); pinMode(POWER_PIN, OUTPUT); // Configurer la broche D7 comme une SORTIE digitalWrite(POWER_PIN, LOW); // éteindre le capteur } void loop() { digitalWrite(POWER_PIN, HIGH); // allumer le capteur delay(10); // attendre 10 millisecondes value = analogRead(SIGNAL_PIN); // lire la valeur analogique du capteur digitalWrite(POWER_PIN, LOW); // éteindre le capteur level = map(value, SENSOR_MIN, SENSOR_MAX, 0, 4); // 4 niveaux Serial.print("Water level: "); Serial.println(level); delay(1000); }

※ NOTE THAT:

  • SENSOR_MIN et SENSOR_MAX sont déterminés par le processus de calibration.
  • La méthode de mappage ci-dessus n'est pas précise. Cependant, elle est acceptable dans de nombreuses applications.

Étalonnage du capteur de niveau d'eau

Voyez comment calibrer le capteur de niveau d'eau

Vidéo

Références linguistiques

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!