ESP32 S3 - Capteur d'eau
Apprenez à interfacer un capteur de niveau d'eau avec votre ESP32 S3 pour détecter des fuites d'eau, la pluie, un débordement de réservoir, et mesurer les niveaux d'eau dans ce tutoriel Arduino pour débutants.
Ce que vous allez construire :
- Un lecteur de niveau d'eau qui affiche les valeurs analogiques brutes sur le Serial Monitor
- Un détecteur de fuite d'eau qui allume une LED quand de l'eau est présente
- Un moniteur de profondeur d'eau multi-niveaux catégorisant les niveaux de vide à élevé
- Une configuration de capteur calibrée pour des mesures de niveau d'eau précises en conditions réelles

Matériel requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Démarrage DIYables ESP32 S3 (ESP32 S3 inclus) | |
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À propos du capteur de niveau d'eau
Un capteur de niveau d'eau est un capteur analogique qui détecte la présence et la profondeur de l'eau en mesurant la résistance entre des pistes conductrices exposées sur son PCB. Lorsque l'eau relie davantage de ces pistes, la résistance électrique diminue et la tension de sortie augmente proportionnellement. Cela le rend simple à associer avec l'ADC intégré de l'ESP32 S3 pour une gamme d'applications de détection et de mesure d'eau.
Caractéristiques principales
Le capteur fonctionne en 3,3V ou 5V, ce qui le rend directement compatible avec les niveaux logiques de l'ESP32 S3 sans circuit d'adaptation de niveau. Il expose trois broches — Signal, VCC et GND — et produit une tension analogique qui s'échelonne avec la profondeur de contact avec l'eau. La zone de détection est constituée de pistes conductrices alternées ; seule cette zone exposée doit être immergée dans l'eau, gardant l'électronique embarquée au sec en permanence.
Brochage du capteur de niveau d'eau
Le capteur de niveau d'eau a trois broches pour la connexion à votre ESP32 S3.
- Broche S (Signal) : Produit une tension analogique proportionnelle au niveau d'eau — connectez-la à une broche d'entrée analogique de l'ESP32 S3
- Broche + (VCC) : Broche d'alimentation — connectez-la à 3,3V ou à une broche GPIO configurée en sortie numérique pour des lectures à alimentation gérée
- Broche - (GND) : Référence de masse — connectez-la à GND

Comment fonctionne le capteur de niveau d'eau
Le capteur fonctionne sur le principe de la conductivité électrique variable. Lorsque les pistes exposées sont sèches, presque aucun courant ne circule entre elles, produisant une tension de sortie proche de zéro. À mesure que l'eau monte et recouvre progressivement plus de pistes, la conductivité augmente et la tension de sortie grimpe vers le rail d'alimentation. L'ESP32 S3 lit cette tension analogique variable via son ADC et la convertit en une valeur numérique qui reflète la profondeur d'eau actuelle.
Schéma de câblage
Connectez le capteur d'eau à votre ESP32 S3 avec soin pour garantir des lectures fiables et une longue durée de vie du capteur. Comme une alimentation constante provoque une corrosion électrochimique sur les pistes exposées, la broche VCC doit être pilotée par une sortie GPIO plutôt que par un rail 3,3V permanent — ainsi le firmware peut couper l'alimentation entre les lectures.
Notes de sécurité
Alimentez la broche VCC du capteur depuis une broche de sortie GPIO numérique plutôt que depuis la broche 3,3V de la carte. N'activez cette broche GPIO que pendant le bref instant nécessaire pour prendre une lecture, puis remettez-la immédiatement à l'état bas après. Ne submergez jamais le capteur au-delà de la zone de piste exposée ; l'électronique du PCB et l'extrémité du connecteur doivent rester complètement sèches en permanence.
| Broche du capteur d'eau | Broche ESP32 S3 |
|---|---|
| S (Signal) | GPIO12 (Entrée analogique) |
| + (VCC) | GPIO14 (Sortie numérique pour contrôle d'alimentation) |
| * (GND) | GND |

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Code ESP32 S3 - Lire la valeur depuis le capteur d'eau
Le code suivant lit la valeur analogique brute depuis le capteur d'eau sur votre ESP32 S3 et l'affiche sur le Serial Monitor. Il contrôle l'alimentation du capteur via une broche GPIO numérique, n'alimentant le capteur que pendant la fenêtre de mesure pour minimiser la corrosion électrochimique sur les pistes exposées. Après avoir pris une lecture, le firmware coupe immédiatement l'alimentation, gardant le capteur en bon état pour des déploiements à plus long terme.
Étapes rapides
- Nouveau sur ESP32 S3 ? Terminez d'abord notre guide ESP32 S3 - Premiers pas.
- Câblez le capteur à l'ESP32 S3 en suivant le tableau dans la section Schéma de câblage ci-dessus.
- Copiez le code ci-dessus et collez-le dans l'Arduino IDE.
- Sélectionnez votre carte ESP32 S3 et le bon port COM dans le menu Tools.
- Cliquez sur le bouton Upload pour compiler et téléverser le sketch sur votre carte.
- Préparez un verre ou un bol d'eau pour tester le capteur.
- Ouvrez le Serial Monitor et réglez le débit en bauds sur 115200.
- Plongez lentement les pistes de détection dans l'eau, en commençant par le bas, et observez les valeurs augmenter.
- Observez que les valeurs reviennent vers zéro lorsque vous retirez le capteur de l'eau.
- Astuce pro : Gardez l'électronique du PCB et le connecteur du capteur complètement au-dessus de la ligne de flottaison — seules les pistes conductrices exposées à l'extrémité doivent être en contact avec l'eau.
※ Note:
Le capteur d'eau n'est pas conçu pour être complètement submergé. Seules les pistes exposées sur le PCB doivent être en contact avec l'eau. Veuillez installer et tester le capteur avec soin pour éviter d'endommager l'électronique.
Comment détecter une fuite d'eau
La détection de fuite d'eau fonctionne en comparant la lecture analogique du capteur à une valeur de seuil établie lors du calibrage. Lorsque la lecture dépasse le seuil, le firmware traite cela comme un événement de fuite et peut déclencher une alerte — dans cet exemple, un indicateur LED visible. Ce schéma est la base de systèmes de détection de fuite plus sophistiqués comme des notifications Wi-Fi ou des vannes d'arrêt automatiques.
Schéma de câblage
| Composant | Broche ESP32 S3 |
|---|---|
| Capteur d'eau S | GPIO12 (Entrée analogique) |
| Capteur d'eau + | GPIO14 (Sortie numérique) |
| Capteur d'eau - | GND |
| Anode LED (+) | GPIO4 (via résistance de 220Ω) |
| Cathode LED (-) | GND |

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Code ESP32 S3 - Détecter une fuite d'eau
Le code suivant surveille en continu le capteur d'eau et compare chaque lecture à un seuil configuré. Lorsque la valeur du capteur dépasse ce seuil, l'ESP32 S3 allume la LED pour signaler une fuite ; lorsque la valeur redescend en dessous du seuil, la LED s'éteint. L'état de détection actuel est également affiché sur le Serial Monitor afin que vous puissiez observer la réponse du système en temps réel.
Comment mesurer le niveau d'eau
Cet exemple divise la plage de mesure complète en quatre catégories nommées — Empty (vide), Low (bas), Medium (moyen), et High (élevé) — pour donner une information de profondeur lisible par un humain plutôt qu'une valeur numérique brute. Le firmware fait correspondre la plage calibrée du capteur à ces quatre niveaux et affiche le nom du niveau actuel sur le Serial Monitor à chaque lecture.
※ Note:
- SENSOR_MIN et SENSOR_MAX sont déterminés par le processus de calibrage décrit dans la section ci-dessous.
- La méthode de correspondance linéaire utilisée ici n'est pas parfaitement précise, mais elle est acceptable pour la plupart des applications pratiques.
Calibrage du capteur de niveau d'eau
Des lectures de niveau d'eau précises nécessitent de calibrer le capteur pour votre configuration spécifique, car les valeurs ADC brutes varient entre les capteurs individuels et les cartes ESP32 S3. Enregistrez la valeur de sortie lorsque les pistes sont complètement sèches — c'est SENSOR_MIN — puis immergez complètement uniquement la zone de piste et enregistrez la valeur maximale comme SENSOR_MAX. Entrez les deux constantes dans votre sketch pour que les fonctions de correspondance fonctionnent correctement pour votre environnement.
Voir comment calibrer le capteur de niveau d'eau
※ Note:
Ce tutoriel utilise la fonction analogRead() pour lire des valeurs depuis un ADC (convertisseur analogique-numérique). L'ADC intégré de l'ESP32 S3 est adéquat pour les projets qui ne nécessitent pas une grande précision. Pour les projets qui nécessitent des mesures précises, gardez ceci à l'esprit :
- L'ADC de l'ESP32 S3 n'est pas parfaitement linéaire et peut nécessiter un calibrage pour des résultats précis. Chaque carte individuelle peut varier légèrement, donc le calibrage doit être effectué par carte.
- Le calibrage de l'ADC peut être difficile pour les débutants et pourrait ne pas donner une précision parfaite dans tous les cas.
Pour les applications nécessitant une haute précision, envisagez d'associer l'ESP32 S3 avec un ADC externe comme l'ADS1115. Si vous souhaitez calibrer l'ADC interne de l'ESP32 S3, consultez le pilote de calibrage ADC ESP32.
Idées d'applications
La combinaison d'un ESP32 S3 et d'un capteur de niveau d'eau ouvre la voie à une large gamme de projets pratiques de surveillance et d'automatisation.
- Détecteur d'inondation de sous-sol : Alerte un smartphone via Wi-Fi dès que de l'eau est détectée sur le sol.
- Système d'arrosage automatique de plantes : Surveille l'humidité du sol ou le niveau d'un réservoir et déclenche une pompe selon les besoins.
- Moniteur de niveau d'eau d'aquarium : Détecte l'évaporation et active une vanne de remplissage automatique pour maintenir une ligne d'eau sûre.
- Pluviomètre DIY : Mesure la profondeur de pluie accumulée pour une station météo domestique.
- Alerte de plateau d'égouttement de cafetière : Prévient le débordement en avertissant quand le plateau d'égouttement approche de sa capacité.
- Moniteur de pompe de puisard : Détecte une panne de pompe en surveillant une eau montante qui aurait dû être évacuée.
Tutoriel vidéo
Regardez le tutoriel vidéo étape par étape pour ce projet ESP32 S3 ci-dessous.
Défiez-vous
Maintenant que votre capteur d'eau fonctionne, poussez le projet plus loin en relevant l'un de ces défis progressivement plus difficiles.
- Débutant : Ajoutez un buzzer qui bipe quand de l'eau est détectée au-dessus du seuil.
- Débutant : Affichez le niveau d'eau sous forme de pourcentage de la plage calibrée sur le Serial Monitor au lieu de la valeur ADC brute.
- Intermédiaire : Construisez un détecteur de fuite compatible Wi-Fi qui envoie un email ou une notification push lorsque de l'eau est détectée.
- Intermédiaire : Créez un système multi-capteurs qui surveille plusieurs emplacements simultanément et rapporte chacun individuellement.
- Avancé : Concevez un système de remplissage automatique de réservoir d'eau qui utilise des capteurs de niveau supérieur et inférieur pour contrôler une pompe pilotée par relais.
- Avancé : Construisez un système d'enregistrement de données qui enregistre les lectures de niveau d'eau dans le temps et affiche un graphique de tendance sur un tableau de bord web servi par l'ESP32 S3.