ESP32 - Capteur de pluie

Ce tutoriel vous explique comment utiliser un capteur de pluie avec un ESP32 et MicroPython pour détecter la pluie ou la neige. Nous allons apprendre ce qui suit :

Capteur de pluie ESP32 MicroPython

Vous pouvez modifier le code afin qu'il active un moteur ou une alarme lorsqu'il détecte la pluie ou la neige.

Préparation du matériel

1×Module de développement ESP32 ESP-WROOM-32
1×Câble USB Type-A vers Type-C (pour PC USB-A)
1×Câble USB Type-C vers Type-C (pour PC USB-C)
1×Capteur de pluie
1×Fils de connexion
1×Recommandé: Carte d'extension à bornier à vis pour ESP32
1×Recommandé: Breakout Expansion Board for ESP32
1×Recommandé: Répartiteur d'alimentation pour ESP32

Ou vous pouvez acheter les kits suivants:

1×Kit de Démarrage DIYables ESP32 (ESP32 inclus)
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 pluie

Le capteur de pluie peut détecter et mesurer la quantité de pluie ou de neige qui tombe. Il fournit deux types de signaux de sortie : un signal numérique (LOW ou HIGH) et un signal analogique.

Le capteur de pluie est composé de deux parties :

  • Le tapis du capteur
  • Le module électronique
Schéma de brochage du capteur de pluie
image source: diyables.io

Le Tapis Sensoriel

La plaque de détection est placée à l'extérieur, où elle peut être exposée à la pluie ou à la neige, comme sur un toit. Elle se compose de plusieurs lignes en cuivre, qui sont divisées en deux types : les lignes d'alimentation et les lignes de capteur. Ces lignes restent séparées et ne se connectent que lorsque l'eau ou la neige les touche. Les deux types de lignes fonctionnent de la même manière, vous pouvez donc désigner n'importe quelle ligne comme ligne d'alimentation et une autre comme ligne de capteur.

Le Module Électronique

Le module électronique du capteur de pluie convertit le signal provenant de la plaque de détection en une forme (analogique ou numérique) que l'ESP32 peut interpréter. Il possède quatre broches :

  • Broche VCC : Se connecte à VCC (entre 3,3 V et 5 V).
  • Broche GND : Se connecte à GND (0 V).
  • Broche DO : Une broche de sortie numérique qui passe à un niveau élevé lorsqu'il n'y a pas de pluie et à un niveau bas lorsqu'il y a de la pluie détectée. Le potentiomètre peut être ajusté pour modifier la sensibilité de détection de la pluie.
  • Broche AO : Une broche de sortie analogique dont la valeur de sortie diminue à mesure que plus d'eau s'accumule sur la pastille de détection et augmente lorsque l'eau diminue.

Le module comprend également deux voyants LED :

  • Un indicateur d’alimentation (PWR-LED) qui s’allume lorsque le module est sous tension.
  • Un indicateur de détection de pluie (DO-LED) connecté à la broche DO, qui s’allume lorsque la pluie est détectée.

Comment cela fonctionne

Pour la broche DO :

  • Le module comprend un potentiomètre pour ajuster la sensibilité.
  • Lorsque le niveau de pluie est élevé, la broche de sortie du capteur passe à l'état bas, et la lumière DO-LED s'allume.
  • Lorsque le niveau de pluie est faible, la broche de sortie du capteur reste à l'état haut, et la lumière DO-LED reste éteinte.

Concernant la broche AO :

  • À mesure que le capteur détecte plus d'eau, la valeur de la broche AO diminue.
  • À mesure que le capteur détecte moins d'eau, la valeur de la broche AO augmente.
  • Le potentiomètre n'affecte pas la valeur de la broche AO.

Diagramme de câblage

Connectez la broche VCC du capteur à une broche 3,3 V ou 5 V sur l'ESP32. Cependant, une connexion directe pourrait réduire la durée de vie du capteur en raison de la corrosion électrochimique. Au lieu de cela, connectez la broche VCC à une broche de sortie programmable sur l'ESP32, alimentant le capteur uniquement lors de la prise de mesures. Cette approche contribue à réduire la corrosion électrochimique.

  • Comment connecter l'ESP32 et le capteur de pluie en utilisant planche d'essai

Le module de capteur de pluie dispose de deux sorties. Vous pouvez utiliser l'une ou les deux selon vos besoins.

Schéma de câblage du capteur de pluie ESP32 MicroPython

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

Comment connecter l'ESP32 et le capteur de pluie

Code MicroPython ESP32 - Lire la valeur de la broche DO

/* * Ce code ESP32 MicroPython a été développé par newbiely.fr * Ce code ESP32 MicroPython 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-micropython/esp32-micropython-rain-sensor */ from machine import Pin import utime # Import utime for delay functions # Define the pins POWER_PIN = Pin(19, Pin.OUT) # The ESP32 pin GPIO19 provides the power to the rain sensor DO_PIN = Pin(21, Pin.IN) # The ESP32 pin GPIO21 connected to the DO pin of the rain sensor while True: POWER_PIN.value(1) # Turn the rain sensor's power ON utime.sleep_ms(10) # Wait 10 milliseconds rain_state = DO_PIN.value() POWER_PIN.value(0) # Turn the rain sensor's power OFF if rain_state == 1: print("The rain is NOT detected") else: print("The rain is detected") utime.sleep(1) # Pause for 1 second to avoid reading sensors frequently

Étapes rapides

Voici des instructions sur la façon de configurer et d’exécuter votre code MicroPython sur l’ESP32 en utilisant l’IDE Thonny :

  • Assurez-vous que l'IDE Thonny est installé sur votre ordinateur.
  • Confirmez que le micrologiciel MicroPython est chargé sur votre carte ESP32.
  • Si c'est la première fois que vous utilisez un ESP32 avec MicroPython, consultez le guide ESP32 - Premiers pas. pour des instructions étape par étape.
  • Branchez la carte ESP32 au capteur de pluie selon le diagramme fourni.
  • Branchez la carte ESP32 à votre ordinateur avec un câble USB.
  • Ouvrez l'IDE Thonny sur votre ordinateur.
  • Dans Thonny IDE, allez dans Outils Options.
  • Sous l'onglet Interpreter, choisissez MicroPython (ESP32) dans le menu déroulant.
  • Assurez-vous que le bon port est sélectionné. L'IDE Thonny le détecte généralement automatiquement, mais vous devrez peut-être le sélectionner manuellement (comme COM12 sur Windows ou /dev/ttyACM0 sur Linux).
  • Copiez le code MicroPython fourni et collez-le dans l'éditeur de Thonny.
  • Enregistrez le code sur votre ESP32 en:
    • En cliquant sur le bouton Enregistrer ou en appuyant sur Ctrl+S.
    • Dans la boîte de dialogue d'enregistrement, choisissez périphérique MicroPython.
    • Nommez le fichier main.py.
  • Cliquez sur le bouton vert Exécuter (ou appuyez sur F5) pour exécuter le script.
  • Déposez quelques gouttes d'eau sur le capteur de pluie. N'utilisez pas d'eau pure.
  • Consultez le message dans le Shell en bas de Thonny.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot 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
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

Veuillez noter que si la lumière LED reste constamment allumée ou reste éteinte, même sous la pluie, ajustez la sensibilité du capteur en faisant varier le potentiomètre.

Code MicroPython pour ESP32 - Lire la valeur de la broche AO

/* * Ce code ESP32 MicroPython a été développé par newbiely.fr * Ce code ESP32 MicroPython 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-micropython/esp32-micropython-rain-sensor */ from machine import Pin, ADC import utime # Import utime for delay functions # Define the pins POWER_PIN = Pin(19, Pin.OUT) # The ESP32 pin GPIO19 provides the power to the rain sensor AO_PIN = ADC(Pin(36)) # The ESP32 pin GPIO36 (ADC0) for reading analog input (corresponds to ADC2) # Set the ADC width (resolution) to 12 bits AO_PIN.width(ADC.WIDTH_12BIT) # Set the attenuation to 11 dB, allowing input range up to ~3.3V AO_PIN.atten(ADC.ATTN_11DB) while True: POWER_PIN.value(1) # Turn the rain sensor's power ON utime.sleep_ms(10) # Wait 10 milliseconds rain_value = AO_PIN.read() # Read the analog value from the sensor POWER_PIN.value(0) # Turn the rain sensor's power OFF print(rain_value) # Print out the analog value utime.sleep(1) # Pause for 1 second to avoid reading sensors frequently

Étapes rapides

  • Copiez le code et ouvrez-le dans l'IDE Thonny.
  • Cliquez sur le bouton vert Exécuter (ou appuyez sur F5) pour exécuter le script. Le script s'exécutera.
  • Versez un peu d'eau sur le capteur de pluie.
  • Consultez le message dans la Shell en bas de Thonny.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot 900 9711 944 2253 2750 3838 3902 4038 4070 4215 4315 3366 2974 1761 1116
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

※ Note:

Ce tutoriel montre comment utiliser la fonction adc.read() pour lire des valeurs à partir d'un ADC (convertisseur analogique-numérique) connecté à un capteur de pluie. L'ADC de l'ESP32 est adapté pour des projets qui n'exigent pas une grande précision. Cependant, si votre projet nécessite des mesures précises, gardez à l'esprit les points suivants :

  • L'ADC de l'ESP32 n'est pas parfaitement précis et peut nécessiter une calibration pour des résultats précis. Chaque carte ESP32 peut varier légèrement, il est donc nécessaire de calibrer chaque carte individuellement.
  • La calibration peut être difficile, surtout pour les débutants, et peut ne pas toujours donner les résultats exacts souhaités.

Pour des projets nécessitant une grande précision, envisagez d'utiliser un ADC externe (par exemple ADS1115) avec l'ESP32 ou optez pour un Arduino, qui possède un ADC plus fiable. Si vous souhaitez malgré tout calibrer l'ADC de l'ESP32, reportez-vous au Pilote de calibration de l'ADC ESP32.

Vidéo

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