ESP32 - Capteur d'eau
Ce guide vous montrera comment utiliser un capteur d’eau avec l’ESP32 et MicroPython pour détecter les fuites d’eau, mesurer les précipitations, vérifier si un réservoir déborde ou surveiller les niveaux d’eau. En détail, nous apprendrons.
- Comment connecter le capteur d'eau à l'ESP32
- Comment écrire du code MicroPython pour l'ESP32 afin de lire les valeurs du capteur d'eau
- Comment écrire du code MicroPython pour l'ESP32 afin de détecter les fuites d'eau, la pluie et le débordement du réservoir avec l'ESP32
- Comment écrire du code MicroPython pour l'ESP32 afin de mesurer le niveau d'eau avec l'ESP32

Préparation du matériel
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) |
À propos du capteur de niveau d'eau
Schéma de brochage du capteur de niveau d'eau
Le capteur de niveau d'eau a trois broches :
- Broche S (Signal) : Sortie analogique. Connectez-la à l’entrée analogique de l’ESP32.
- Broche + (VCC) : Fournit de l’alimentation au capteur. Utilisez entre 3,3 V et 5 V.
- Broche - (GND) : Connexion à la masse.

※ Note:
Le signal du capteur change lorsque la tension sur sa broche VCC est ajustée.
Comment fonctionne le capteur de niveau d'eau
Le capteur est composé de dix fils de cuivre que vous pouvez voir. Cinq de ces fils servent à l'alimentation, et les cinq autres servent à la détection. Ils sont disposés selon un motif, avec un fil de capteur entre chaque paire de fils d'alimentation. Normalement, ces fils ne se touchent pas, mais lorsque le capteur est dans l'eau, l'eau agit comme un pont entre eux.
Considérez les fils comme une sorte de bouton spécial qui change sa résistance en fonction de la quantité d'eau qui l'entoure.
- Plus le niveau d'eau est élevé, plus la résistance est faible.
- Plus d'eau signifie une meilleure conductivité, ce qui signifie une résistance plus faible.
- Moins d'eau signifie une conductivité moindre, ce qui entraîne une résistance plus élevée.
Le capteur utilise cette résistance pour produire une tension de sortie. En mesurant cette tension, nous pouvons déterminer à quelle hauteur se situe le niveau d'eau.
Diagramme de câblage
Connectez la broche VCC du capteur à la broche 5V de l'ESP32 et la broche GND à la broche GND de l'ESP32 pour l'alimenter. Il n’est pas conseillé de laisser le capteur sous tension dans un environnement humide, car cela peut rapidement l’endommager et réduire sa durée de vie. Pour éviter cela, n’alimentez le capteur que lorsque vous avez besoin de lire ses données. Connectez la broche VCC du capteur à une broche numérique de l'ESP32. Pour lire le capteur, définissez la broche de l'ESP32 sur un niveau logique élevé, puis après la lecture, sur un niveau logique bas.
- Comment connecter l'ESP32 et le capteur d'eau en utilisant planche de prototypage

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
- Comment connecter l'ESP32 et le capteur d'eau à l'aide de carte d'extension avec borniers à vis (alimentée via un câble USB)

Code MicroPython ESP32 - Lecture de la valeur d'un capteur d'eau
Étapes rapides
Voici des instructions sur la manière de configurer et d’exécuter votre code MicroPython sur l’ESP32 en utilisant l’IDE Thonny :
- Assurez-vous que Thonny IDE est installé sur votre ordinateur.
- Confirmez que le firmware 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.
- Connectez la carte ESP32 au capteur d'eau selon le schéma fourni.
- Connectez la carte ESP32 à votre ordinateur avec un câble USB.
- Ouvrez Thonny IDE sur votre ordinateur.
- Dans Thonny IDE, allez dans Outils Options.
- Sous l'onglet Interpréteur, choisissez MicroPython (ESP32) dans le menu déroulant.
- Assurez-vous que le bon port est sélectionné. Thonny IDE le détecte généralement automatiquement, mais vous pourriez avoir besoin de le sélectionner manuellement (comme COM12 sous Windows ou /dev/ttyACM0 sous 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.
- Placez lentement le capteur dans un verre d'eau.
- Consultez le message dans le Shell en bas de Thonny.
※ Note:
N'immergez pas complètement le capteur; laissez uniquement les parties visibles de la carte électronique toucher l'eau. Faites attention lors de l'installation.
※ Note:
Ce tutoriel démontre comment utiliser la fonction adc.read() pour lire des valeurs d'un ADC (convertisseur analogique-numérique) connecté à un capteur d'eau. L'ADC de l'ESP32 est adapté pour des projets qui ne nécessitent pas une grande précision. Cependant, si votre projet nécessite des mesures précises, gardez ceci à l'esprit :
- 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 pourrait ne pas toujours donner les résultats exacts que vous souhaitez.
Pour les 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 tout de même calibrer l'ADC de l'ESP32, reportez-vous au pilote de calibration ADC ESP32.
Comment détecter une fuite d'eau
Pour détecter les fuites d'eau, la pluie ou des cuves qui débordent, nous comparons la valeur mesurée à une limite prédéfinie. Cette limite est définie au cours de la phase de calibration de ce tutoriel. Le code MicroPython pour ESP32 ci-dessous montre comment détecter les fuites d'eau.
Comment mesurer le niveau d'eau
Pour décomposer le niveau d'eau le plus élevé en différentes étapes et identifier l'étape actuelle, suivez la méthode décrite dans le code ci-dessous. Gardez à l'esprit que le niveau d'eau le plus élevé correspond au capteur entièrement immergé dans l'eau. Ce code divise la hauteur totale en 4 étapes.
※ Note:
- SENSOR_MIN et SENSOR_MAX sont définis pendant l'étalonnage.
- La méthode de cartographie expliquée peut ne pas être très précise, mais elle est suffisante pour la plupart des utilisations. Pour une meilleure précision, mesurez les valeurs de seuil pour chaque niveau comme expliqué dans la section d'étalonnage.
Calibration du capteur de niveau d'eau
La sortie du capteur dépend à la fois du niveau d'eau et de sa conductivité. L'eau pure ne conduit pas l'électricité, mais l'eau contenant des minéraux et des impuretés conduit l'électricité. Plus l'eau est conductrice, plus le capteur devient sensible. De plus, la sortie peut changer en fonction de la tension fournie à la broche VCC du capteur.
Pour obtenir des lectures précises du capteur d'eau, il vaut mieux le calibrer pour le type d'eau spécifique que vous prévoyez de surveiller. Avant de définir un seuil pour déclencher une action, vous devriez tester la valeur réelle que lit le capteur.
Comment effectuer le test :
- Utilisez le croquis ci-dessus pour lire la valeur du capteur.
- Plongez le capteur dans l'eau au niveau où vous souhaitez définir le seuil.
- Notez la valeur affichée dans le Shell en bas de Thonny.
- Utilisez cette valeur comme seuil pour déclencher une action.
- Il se peut que vous ayez besoin d'essayer ce test plusieurs fois pour que cela fonctionne.
Le test peut aussi vous aider à trouver :
- La valeur SENSOR_MIN, lorsque le capteur n'est pas dans l'eau.
- La valeur SENSOR_MAX, lorsque le capteur est complètement immergé.
- Une valeur seuil pour détecter les fuites d'eau.
- Des valeurs seuil pour différents niveaux sur votre échelle.