Raspberry Pi - Capteur d'eau

Ce tutoriel vous explique comment utiliser le Raspberry Pi avec le capteur d'eau. En détail, nous apprendrons :

Préparation du matériel

1×Raspberry Pi 4 Model B
1×ADS1115 ADC Module
1×Water level sensor
1×Jumper Wires
1×(Optional) Screw Terminal Block Shield for Raspberry Pi
1×(Optional) USB-C Power Cable with On/Off Switch for Raspberry Pi 4B
1×(Optional) Plastic Case and Cooling Fan for Raspberry Pi 4B
1×(Optional) HDMI Touch Screen Monitor for Raspberry Pi

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 niveau d'eau

Brochage du Capteur de Niveau d'Eau

Le capteur de niveau d'eau a 3 broches :

  • Le pin S (Signal) : C'est une sortie analogique qui doit être connectée à l'une des entrées analogiques de votre Raspberry Pi.
  • Le pin + (VCC) : Cela alimente le capteur et il est recommandé d'utiliser entre 3,3V et 5V.
  • Le pin - (GND) : C'est une connexion de masse.
brochage du capteur d'eau

※ Note:

La broche de signal du capteur produit une sortie analogique qui dépend de la tension fournie à la broche VCC.

Comment fonctionne un capteur de niveau d'eau

En bref, la tension de sortie sur la broche de signal augmente à mesure que la quantité d'eau dans laquelle le capteur est immergé augmente.

Jetons un coup d'œil plus attentif.

Cette section est consacrée à des connaissances approfondies. NE vous inquiétez pas si vous ne comprenez pas. Ignorez cette section si elle vous surcharge, et revenez un autre jour. Continuez à lire les sections suivantes.

Le capteur possède dix pistes de cuivre exposées, dont cinq sont des pistes d'alimentation et les cinq autres sont des pistes de détection. Ces pistes sont disposées en parallèle, avec une piste de détection entre chaque deux pistes d'alimentation. À moins qu'elles ne soient reliées par l'eau lorsqu'elles sont immergées, ces pistes restent non connectées.

Les traces agissent comme une résistance variable, semblable à un potentiomètre, dont la résistance dépend du niveau d'eau :

  • La résistance est déterminée par la distance entre le haut du capteur et la surface de l'eau.
  • La résistance est inversement proportionnelle à la quantité d'eau présente :
  • Plus d'eau est immergée dans le capteur, plus la conductivité augmente et la résistance diminue.
  • Moins d'eau est immergée dans le capteur, plus la conductivité diminue et la résistance augmente.
  • La tension de sortie du capteur est basée sur la résistance.

La détermination du niveau d'eau peut être effectuée en mesurant la tension.

Diagramme de câblage

Diagramme de câblage du capteur d'eau Raspberry Pi

This image is created using Fritzing. Click to enlarge image

Pour simplifier et organiser votre câblage, nous vous recommandons d'utiliser un Screw Terminal Block Shield pour Raspberry Pi. Ce shield garantit des connexions plus sûres et plus faciles à gérer, comme illustré ci-dessous :

Raspberry Pi Screw Terminal Block Shield

Code Raspberry Pi - Lecture de la valeur du capteur d'eau

Étapes rapides

  • Assurez-vous d'avoir Raspbian ou tout autre système d'exploitation compatible avec Raspberry Pi installé sur votre Pi.
  • Assurez-vous que votre Raspberry Pi est connecté au même réseau local que votre PC.
  • Assurez-vous que votre Raspberry Pi est connecté à internet si vous avez besoin d'installer des bibliothèques.
  • Si c'est la première fois que vous utilisez un Raspberry Pi, consultez Installation du logiciel - Raspberry Pi..
  • Connectez votre PC au Raspberry Pi via SSH en utilisant le client SSH intégré sous Linux et macOS ou PuTTY sous Windows. Consultez comment connecter votre PC au Raspberry Pi via SSH.
  • Assurez-vous d'avoir la bibliothèque RPi.GPIO installée. Sinon, installez-la en utilisant la commande suivante :
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Installez la bibliothèque Adafruit_ADS1x15 en exécutant les commandes suivantes dans le terminal de votre Raspberry Pi :
sudo pip install Adafruit-ADS1x15
  • Créez un fichier de script Python water_sensor.py et ajoutez le code suivant :
# Ce code Raspberry Pi a été développé par newbiely.fr # Ce code Raspberry Pi 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/raspberry-pi/raspberry-pi-water-sensor import time import Adafruit_ADS1x15 # Create an ADS1115 ADC instance ADC = Adafruit_ADS1x15.ADS1115() # Specify the ADC channel (0-3) based on your connection ADC_CHANNEL = 3 # A3 of ADS1115 module # Set the gain (input voltage range) for your application GAIN = 1 # Gain of 1 corresponds to +/-4.096V # Define the conversion factor for water level calculation MIN_ADC_VALUE = 0 # Replace with the minimum ADC value for your sensor MAX_ADC_VALUE = 32767 # Replace with the maximum ADC value for your sensor try: while True: # Read the raw ADC value adc_value = ADC.read_adc(ADC_CHANNEL, gain=GAIN) # Convert the raw ADC value to a water level percentage water_level = (adc_value - MIN_ADC_VALUE) / (MAX_ADC_VALUE - MIN_ADC_VALUE) * 100 print(f"ADC Value: {adc_value} | Water Level: {water_level:.2f}%") time.sleep(1) # Wait for a second before the next reading except KeyboardInterrupt: print("\nScript terminated by user.")
  • Enregistrez le fichier et exécutez le script Python en entrant la commande suivante dans le terminal :
python3 water_sensor.py
  • Abaissez délicatement le capteur dans un verre d'eau.
  • Vérifiez la sortie sur le Terminal; elle devrait être à 0 lorsque le capteur n'est en contact avec rien.
PuTTY - Raspberry Pi
ADC Value: 0 | Water Level: 0.00% ADC Value: 8192 | Water Level: 10.00% ADC Value: 8192 | Water Level: 10.00% ADC Value: 13503 | Water Level: 22.30% ADC Value: 13503 | Water Level: 22.30% ADC Value: 18714 | Water Level: 34.59% ADC Value: 18714 | Water Level: 34.59% ADC Value: 23925 | Water Level: 46.89% ADC Value: 29136 | Water Level: 59.18% ADC Value: 29136 | Water Level: 59.18%

Le script s'exécute en boucle infinie jusqu'à ce que vous appuyiez sur Ctrl + C dans le terminal.

※ Note:

Le capteur n'est pas conçu pour être complètement immergé ; seules les traces exposées sur le circuit imprimé doivent entrer en contact avec l'eau. Faites preuve de prudence lors de son installation.

Comment détecter une fuite d'eau

Pour détecter une fuite d'eau, une précipitation et un débordement de réservoir, il suffit de comparer la valeur de lecture avec une valeur seuil déterminée lors de la partie étalonnage de ce tutoriel.

Considérons un cas particulier. Si de l'eau est détectée, le Raspberry Pi activera une LED. Pour le câblage, voir Raspberry Pi - LED.

Code Raspberry Pi - Détection de fuite d'eau

Étapes rapides

  • Créez un fichier script Python water_sensor_led.py et ajoutez le code suivant :
# Ce code Raspberry Pi a été développé par newbiely.fr # Ce code Raspberry Pi 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/raspberry-pi/raspberry-pi-water-sensor import time import Adafruit_ADS1x15 import RPi.GPIO as GPIO # Create an ADS1115 ADC instance ADC = Adafruit_ADS1x15.ADS1115() # Specify the ADC channel (0-3) based on your connection ADC_CHANNEL = 3 # A3 of ADS1115 module # Set the gain (input voltage range) for your application GAIN = 1 # Gain of 1 corresponds to +/-4.096V # Define the conversion factor for water level calculation MIN_ADC_VALUE = 0 # Replace with the minimum ADC value for your sensor MAX_ADC_VALUE = 32767 # Replace with the maximum ADC value for your sensor # Define the threshold ADC value for triggering the LED LED_THRESHOLD = 20000 # Replace with your desired threshold # Define the LED GPIO pin LED_PIN = 16 # Replace with the GPIO pin number you're using # Set up the GPIO mode and LED pin GPIO.setmode(GPIO.BCM) GPIO.setup(LED_PIN, GPIO.OUT) try: while True: # Read the raw ADC value adc_value = ADC.read_adc(ADC_CHANNEL, gain=GAIN) # Convert the raw ADC value to a water level percentage water_level = (adc_value - MIN_ADC_VALUE) / (MAX_ADC_VALUE - MIN_ADC_VALUE) * 100 print(f"ADC Value: {adc_value} | Water Level: {water_level:.2f}%") # Turn on the LED if the water level is greater than the threshold if adc_value > LED_THRESHOLD: GPIO.output(LED_PIN, GPIO.HIGH) else: GPIO.output(LED_PIN, GPIO.LOW) time.sleep(1) # Wait for a second before the next reading except KeyboardInterrupt: print("\nScript terminated by user.") GPIO.cleanup() # Clean up GPIO settings on exit
  • Enregistrez le fichier et exécutez le script Python en entrant la commande suivante dans le terminal :
python3 water_sensor_led.py
  • Abaissez doucement le capteur dans un verre d'eau.
  • Vérifiez l'état de la LED.

Étalonnage du Capteur de Niveau d'Eau

La sortie du capteur est non seulement affectée par le niveau d'eau, mais aussi par la conductivité de l'eau. L'eau pure n'est pas conductrice, tandis que l'eau contenant des minéraux et des impuretés l'est. Plus la conductivité de l'eau est élevée, plus le capteur est sensible. De plus, la valeur de sortie dépend également de la tension fournie à la broche VCC du capteur.

Pour garantir la précision lors de la lecture du capteur d'eau, nous suggérons de calibrer le capteur pour le type d'eau spécifique à surveiller.

Instructions pour l'étalonnage :

  • Utilisez le croquis fourni ci-dessus pour lire la valeur du capteur.
  • Immergez le capteur dans l'eau au niveau souhaité pour définir le seuil.
  • Enregistrez la valeur affichée par le capteur dans le Terminal.
  • Utilisez cette valeur comme seuil pour déclencher une action.

Le test peut également être utilisé pour découvrir :

  • Valeur MIN_ADC_VALUE, lorsque le capteur n'est pas immergé dans le liquide
  • Valeur MAX_ADC_VALUE, lorsque le capteur est complètement immergé dans le liquide

Vidéo

Dépassez vos limites

  • Lorsqu'une fuite d'eau est détectée :
  • Envoyer un e-mail
  • Envoyer un message SMS
  • Activer une alarme sonore

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