ESP32 - Capteur de pluie

Le capteur de pluie est capable de détecter et de mesurer le niveau de pluie/neige. Le capteur de pluie fournit deux sorties : une sortie numérique (BAS/HAUT) et une sortie analogique.

Dans ce tutoriel, nous apprendrons à utiliser un ESP32 et un capteur de pluie pour détecter et mesurer la pluie. Plus précisément, nous aborderons les points suivants :

capteur de pluie esp32

Ensuite, vous pouvez modifier le code pour activer un moteur ou une alerte lorsqu'il détecte de la pluie/de la neige.

Préparation du matériel

1×ESP-WROOM-32 Dev Module
1×USB Cable Type-C
1×Rain Sensor
1×Breadboard
1×Jumper Wires
1×(Recommended) ESP32 Screw Terminal Adapter

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 pluie

Le capteur de pluie peut être utilisé pour détecter la présence de pluie ou mesurer le niveau d'eau déposé par la pluie. Le capteur de pluie offre deux options via une broche de sortie numérique et une broche de sortie analogique.

Le capteur de pluie comprend deux parties :

  • Le tapis de détection
  • Le module électronique
Schéma des broches du capteur de pluie
image source: diyables.io

Le tapis de détection

Le tapis de détection est placé à l'extérieur et peut être exposé à la pluie ou à la neige (par exemple, sur le toit). Le tapis de détection possède une série de pistes en cuivre exposées, divisées en deux groupes : les pistes d'alimentation et les pistes de détection. Ces pistes d'alimentation et de détection ne sont pas connectées à moins qu'elles ne soient pontées par l'eau ou la neige. Il n'y a aucune différence entre la piste d'alimentation et la piste de détection. Vous pouvez choisir l'une comme piste d'alimentation et l'autre deviendra la piste de détection.

Le module électronique

Le module électronique du capteur de pluie convertit le signal provenant du pavé de détection en une valeur analogique ou numérique qui peut être lue par l'ESP32. Il comprend quatre broches :

  • Broche VCC : Elle doit être connectée à VCC (3,3V à 5V).
  • Broche GND : Elle doit être connectée à GND (0V).
  • Broche DO : C'est une broche de sortie numérique. Elle est HAUTE si la pluie n'est pas détectée et BASSE si elle est détectée. La valeur seuil pour la détection de la pluie peut être ajustée à l'aide d'un potentiomètre intégré.
  • Broche AO : C'est une broche de sortie analogique. La valeur de sortie diminue à mesure que l'eau dans le coussinet de détection augmente, et elle augmente à mesure que l'eau dans le coussinet de détection diminue.

De plus, il possède deux indicateurs LED :

  • Un indicateur PWR-LED pour l'alimentation.
  • Un indicateur DO-LED pour l'état de pluie sur la broche DO : il est activé en présence de pluie.

Comment ça marche

Pour la broche DO :

  • Le module dispose d'un potentiomètre intégré pour régler le seuil (sensibilité).
  • Lorsque l'intensité dépasse la valeur seuil, la pluie est détectée, la broche de sortie du capteur est à l'état BAS, et la LED DO est allumée.
  • Lorsque l'intensité est inférieure à la valeur seuil, la pluie n'est PAS détectée, la broche de sortie du capteur est à l'état HAUT, et la LED DO est éteinte.

Pour la broche AO :

  • Plus il y a d'eau dans le tampon de détection, plus la valeur lue sur la broche AO est basse.
  • Moins il y a d'eau dans le tampon de détection, plus la valeur lue sur la broche AO est élevée.

Notez que le potentiomètre n'affecte pas la valeur sur la broche AO.

Diagramme de câblage

Comme mentionné ci-dessus, la broche VCC du capteur doit être connectée à 3,3V ou 5V. Si nous connectons cette broche directement à la broche 3,3V ou 5V de l'ESP32, la durée de vie du capteur sera réduite en raison de la corrosion électrochimique. La meilleure manière est de connecter la broche VCC du capteur de pluie à une broche de sortie de l'ESP32. Nous pouvons programmer cette broche pour alimenter le capteur de pluie uniquement lors de la lecture. Cela peut minimiser l'impact de la corrosion électrochimique.

Étant donné que le module de capteur de pluie dispose de deux sorties, vous pouvez choisir d'utiliser l'une ou les deux, selon vos besoins.

  • Le schéma de câblage entre l'ESP32 et le capteur de pluie lors de l'utilisation uniquement de DO.
Schéma de câblage du capteur de pluie ESP32

This image is created using Fritzing. Click to enlarge image

Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, vous pouvez trouver des conseils dans le tutoriel suivant : Comment alimenter l'ESP32.

  • Le schéma de câblage entre l'ESP32 et le capteur de pluie lors de l'utilisation uniquement de AO.
Schéma de câblage de détection de pluie ESP32

This image is created using Fritzing. Click to enlarge image

  • Le schéma de câblage entre l'ESP32 et le capteur de pluie lors de l'utilisation à la fois de AO et de DO.
Schéma de câblage du détecteur de pluie ESP32

This image is created using Fritzing. Click to enlarge image

Code ESP32 - Lire la valeur depuis la broche DO

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code 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/esp32/esp32-rain-sensor */ #define POWER_PIN 32 // ESP32's pin GPIO32 that provides the power to the rain sensor #define DO_PIN 13 // ESP32's pin GPIO13 connected to DO pin of the rain sensor void setup() { // initialize serial communication Serial.begin(9600); // initialize the Arduino's pin as an input pinMode(POWER_PIN, OUTPUT); // configure the power pin pin as an OUTPUT pinMode(DO_PIN, INPUT); } void loop() { digitalWrite(POWER_PIN, HIGH); // turn the rain sensor's power ON delay(10); // wait 10 milliseconds int rain_state = digitalRead(DO_PIN); digitalWrite(POWER_PIN, LOW); // turn the rain sensor's power OFF if (rain_state == HIGH) Serial.println("The rain is NOT detected"); else Serial.println("The rain is detected"); delay(1000); // pause for 1 sec to avoid reading sensors frequently to prolong the sensor lifetime }

Étapes rapides

  • Si c'est la première fois que vous utilisez un ESP32, consultez comment configurer l'environnement pour ESP32 sur Arduino IDE
  • Copiez le code ci-dessus et ouvrez-le avec Arduino IDE
  • Cliquez sur le bouton Upload dans l'Arduino IDE pour téléverser le code vers l'ESP32
  • Déposez quelques gouttes d'eau sur le capteur de pluie
  • Consultez le résultat sur le moniteur série.
COM6
Send
The rain is NOT detected The rain is NOT detected The rain is NOT detected The rain is detected The rain is detected The rain is detected The rain is detected The rain is detected The rain is NOT detected The rain is NOT detected The rain is NOT detected
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Veuillez garder à l'esprit que si vous remarquez que le statut LED reste constamment allumé ou éteint même lorsque le capteur est exposé à la pluie, vous pouvez ajuster le potentiomètre pour affiner la sensibilité du capteur.

Code ESP32 - Lire la valeur depuis la broche AO

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code 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/esp32/esp32-rain-sensor */ #define POWER_PIN 32 // ESP32's pin GPIO32 that provides the power to the rain sensor #define AO_PIN 36 // ESP32's pin GPIO36 connected to AO pin of the rain sensor void setup() { // initialize serial communication Serial.begin(9600); pinMode(POWER_PIN, OUTPUT); // configure the power pin pin as an OUTPUT } void loop() { digitalWrite(POWER_PIN, HIGH); // turn the rain sensor's power ON delay(10); // wait 10 milliseconds int rain_value = analogRead(AO_PIN); digitalWrite(POWER_PIN, LOW); // turn the rain sensor's power OFF Serial.println(rain_value); // print out the analog value delay(1000); // pause for 1 sec to avoid reading sensors frequently to prolong the sensor lifetime }

Étapes rapides

  • Copiez le code ci-dessus et ouvrez-le avec Arduino IDE
  • Cliquez sur le bouton Upload dans Arduino IDE pour téléverser le code sur ESP32
  • Déposez quelques gouttes d'eau sur le capteur de pluie
  • Consultez le résultat sur le moniteur série.
COM6
Send
225 2426 236 563 687 959 975 1009 1017 1053 1078 841 743 440 279
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vidéo

Références de fonction

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