Arduino - Capteur d'eau
Le capteur d'eau ou capteur de niveau d'eau est utilisé pour détecter les fuites d'eau, les précipitations, le débordement de réservoir, ou pour mesurer le niveau d'eau. Dans ce tutoriel, nous allons apprendre :
- Comment utiliser le capteur d'eau avec Arduino
- Comment connecter le capteur d'eau à Arduino
- Comment programmer Arduino pour lire l'état à partir du capteur d'eau
- Comment détecter les fuites d'eau, les précipitations, le débordement du réservoir
- Comment mesurer le niveau d'eau
- Comment étalonner le capteur d'eau
Préparation du matériel
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
À propos du capteur de niveau d'eau
Brochage du capteur de niveau d'eau
Le capteur de niveau d'eau possède 3 broches :
- Broche S (Signal) : il s'agit d'une sortie analogique qui sera connectée à l'une des entrées analogiques de votre Arduino.
- Broche + (VCC) : alimente le capteur. Il est recommandé d'alimenter le capteur avec entre 3,3V et 5V.
- Broche - (GND) : est une connexion à la terre.
※ NOTE THAT:
La valeur de sortie analogique sur la broche de signal varie en fonction de la tension appliquée à la broche VCC du capteur.
Fonctionnement du capteur de niveau d'eau
Plus le capteur est immergé dans l'eau, plus la tension de sortie sur la broche de signal est élevée.
Voyons cela plus en profondeur.
Le capteur possède une série de dix pistes de cuivre exposées. Cinq sont des pistes de puissance et cinq sont des pistes de détection. Ces pistes sont entrelacées en parallèle de sorte qu'il y a une piste de détection entre chaque deux pistes de puissance. Ces pistes ne sont pas connectées à moins qu'elles ne soient pontées par l'eau lorsqu'elles sont immergées.
Les traces agissent comme une résistance variable (tout comme un potentiomètre) dont la résistance varie selon le niveau d'eau.
- La variation de résistance correspond à la distance entre le haut du capteur et la surface de l'eau.
- La résistance est inversement proportionnelle à la hauteur de l'eau :
- Plus le capteur est immergé dans l'eau, meilleure est la conductivité, plus faible est la résistance.
- Moins le capteur est immergé dans l'eau, plus mauvaise est la conductivité, plus élevée est la résistance.
- Le capteur produit une tension de sortie en fonction de la résistance.
En mesurant la tension, nous pouvons déterminer le niveau d'eau.
Diagramme de câblage
En théorie, pour alimenter le capteur, nous pouvons connecter les broches VCC et GND du capteur aux broches 5v et GND de l'Arduino, respectivement.
En pratique, cependant, cette méthode n'est pas recommandée. Parce que dans un environnement humide, si nous alimentons constamment le capteur, celui-ci se corrode électrochimiquement plus rapidement. Cela réduit la durée de vie du capteur. Pour surmonter ce problème, nous vous recommandons de ne pas alimenter le capteur en permanence, mais de l’alimenter uniquement lors de la lecture de la valeur du capteur. Cela peut être réalisé en connectant la broche VCC du capteur à une broche numérique d'un Arduino, et en réglant la broche de l'Arduino sur HIGH et LOW avant et après la lecture, respectivement.
This image is created using Fritzing. Click to enlarge image
Code Arduino - Lecture de la valeur provenant du capteur d'eau
Étapes rapides
- Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino.
- Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code vers Arduino.
- Immergez lentement le capteur dans l'eau (un verre d'eau).
- Consultez le résultat sur le moniteur série. La valeur 0 apparaît lorsque le capteur ne touche à rien.
※ NOTE THAT:
Le capteur n'est pas conçu pour être entièrement immergé, seules les pistes exposées sur le PCB peuvent entrer en contact avec 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, il suffit de comparer la valeur lue avec une valeur seuil. Le seuil est déterminé dans la partie étalonnage de ce tutoriel.
Prenons un exemple spécifique. Arduino allume une LED si de l'eau est détectée.
Schéma de câblage
This image is created using Fritzing. Click to enlarge image
Code Arduino - Détection de fuite d'eau
Comment mesurer le niveau d'eau
Si vous souhaitez diviser la hauteur maximale de l'eau en plusieurs niveaux et mesurer le niveau actuel, vous pouvez utiliser la méthode dans le code ci-dessous. Notez que la hauteur maximale de l'eau est égale à la hauteur du capteur. Le code ci-dessous divise la hauteur maximale en 4 niveaux.
※ 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. Si vous souhaitez la rendre précise, vous pouvez mesurer les valeurs seuils pour chaque niveau. Voir la partie calibration.
Étalonnage du capteur de niveau d'eau
La valeur de sortie du capteur dépend non seulement du niveau d'eau, mais aussi de la conductivité de l'eau. L'eau pure n'est pas conductrice. L'eau qui contient des minéraux et des impuretés est conductrice. Plus l'eau est conductrice, plus le capteur est sensible. D'autre part, la valeur de sortie varie également en fonction de la tension appliquée à la broche VCC du capteur.
Pour obtenir des mesures précises du capteur d'humidité, nous vous recommandons de calibrer le capteur pour le type spécifique d'eau que vous prévoyez de surveiller.
Avant de déterminer le seuil de déclenchement d'une action, vous devez mesurer la valeur réelle lue par le capteur en effectuant un test.
Comment faire le test :
- Utilisez l'esquisse ci-dessus pour lire la valeur du capteur.
- Plongez le capteur dans l'eau au niveau que vous souhaitez définir comme seuil.
- Notez la valeur affichée par le capteur dans le moniteur série.
- Utilisez cette valeur comme seuil pour déclencher une action.
Ce test peut nécessiter des essais et des erreurs.
Le test peut également être utilisé pour trouver :
- Valeur SENSOR_MIN, lorsque le capteur n'est pas immergé dans l'eau
- Valeur SENSOR_MAX, lorsque le capteur est complètement immergé dans l'eau
- Une valeur seuil pour détecter les fuites d'eau
- Les valeurs seuils pour chaque niveau de votre échelle de degrés.
Vidéo
Mettez-vous au défi
- Envoyez un e-mail lors de la détection d'une fuite d'eau
- Envoyez un message SMS lors de la détection d'une fuite d'eau
- Déclenchez une alarme sonore lors de la détection d'une fuite d'eau