Raspberry Pi - Capteur d'humidité du sol

Ce tutoriel vous apprend à utiliser un capteur d'humidité avec un Raspberry Pi. Plus précisément, nous examinerons :

Préparation du matériel

1×Raspberry Pi 4 Model B
1×Capacitive Soil Moisture Sensor
1×ADS1115 ADC Module
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 d'humidité du sol

Capteur d'humidité capacitif vs capteur d'humidité résistif

Il existe deux types de capteurs d'humidité : le capteur d'humidité résistif et le capteur d'humidité capacitif.

Les deux capteurs offrent des informations sur l'humidité du sol. Cependant, leurs méthodes de fonctionnement ne sont pas similaires. Nous vous recommandons fortement d'utiliser le capteur d'humidité capacitif, pour les raisons suivantes :

  • Le capteur d'humidité du sol résistif est sujet à la corrosion au fil du temps. Cela est dû au fait qu'un courant électrique passe entre ses sondes, ce qui conduit à une corrosion électrochimique.
  • Le capteur d'humidité du sol capacitif se corrode avec le temps beaucoup plus lentement que le capteur d'humidité du sol résistif. Cela est dû au fait que ses électrodes ne sont pas exposées et sont relativement résistantes à la corrosion.

Ceci est une photo d'un capteur d'humidité du sol résistif qui a été endommagé par la corrosion.

capteur d'humidité du sol résistif corrodé

Le reste de ce tutoriel utilisera le capteur capacitif d'humidité du sol.

Disposition des broches du capteur d'humidité du sol capacitif

Le capteur capacitif d'humidité du sol possède trois broches :

  • Broche GND : Cela doit être connecté à GND (0V)
  • Broche VCC : Cela doit être connecté à VCC (5V ou 3,3V)
  • Broche AOUT : Il s'agit de la broche de sortie du signal analogique qui produit une tension proportionnelle au niveau d'humidité du sol. Cela doit être connecté à une broche d'entrée analogique du Raspberry Pi.
Brochage du capteur d'humidité du sol capacitif

Comment ça marche

La quantité d'eau dans le sol a un effet sur la tension de la broche AOUT ; plus la teneur en eau est élevée, plus la tension sera basse.

Diagramme de câblage

Diagramme de câblage du capteur d'humidité du sol 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

Le code Raspberry Pi lit la valeur du capteur d'humidité du sol.

Étapes rapides

  • Assurez-vous d'avoir Raspbian ou tout autre système d'exploitation compatible 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 le Raspberry Pi, consultez Installation du logiciel - Raspberry Pi..
  • Connectez votre PC au Raspberry Pi via SSH en utilisant le client SSH intégré sur Linux et macOS ou PuTTY sur Windows. Consultez comment connecter votre PC au Raspberry Pi via SSH.
  • Assurez-vous que vous avez la bibliothèque RPi.GPIO installée. Si ce n'est pas le cas, 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 sur le terminal de votre Raspberry Pi :
sudo pip install Adafruit-ADS1x15
  • Créez un fichier script Python soil_moisture.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-soil-moisture-sensor import time import Adafruit_ADS1x15 # Create an ADS1115 ADC object adc = Adafruit_ADS1x15.ADS1115() # Set the gain to ±4.096V (adjust if needed) GAIN = 1 # Main loop to read the analog value from the soil moisture sensor and print the raw ADC value try: while True: # Read the raw analog value from channel A3 raw_value = adc.read_adc(3, gain=GAIN) # Print the raw ADC value print("Raw Value: {}".format(raw_value)) # Add a delay between readings (adjust as needed) time.sleep(1) except KeyboardInterrupt: print("\nExiting the program.")
  • Enregistrez le fichier et exécutez le script Python en saisissant la commande suivante dans le terminal :
python3 soil_moisture.py
  • Enterrez le capteur dans le sol, puis versez de l'eau sur le sol. Ou immergez-le lentement dans une tasse d'eau salée.
  • Vérifiez le résultat sur le Terminal.
PuTTY - Raspberry Pi
Raw Value: 48520 Raw Value: 47235 Raw Value: 46032 Raw Value: 44047 Raw Value: 43195 Raw Value: 42074 Raw Value: 41084 Raw Value: 41072 Raw Value: 40808 Raw Value: 40634 Raw Value: 40800 Raw Value: 40512

※ Note:

  • N'utilisez PAS l'eau pure pour les tests car elle ne conduit pas l'électricité, ce qui signifie qu'elle n'affectera pas les lectures du capteur.
  • Les lectures du capteur ne descendent généralement pas à zéro. Il est normal qu'elles restent dans la plage de 40000 à 50000, mais cela peut changer en fonction de facteurs tels que la profondeur à laquelle le capteur est placé, le type de sol ou d'eau, et la tension de l'alimentation électrique.
  • Ne jamais enterrer la partie du circuit (située sur le dessus du capteur) dans le sol ou l'eau, car cela pourrait endommager le capteur.

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

Étalonnage pour capteur capacitif d'humidité du sol

La valeur obtenue du capteur d'humidité n'est pas absolue. Elle varie en fonction de la composition du sol et de son contenu en eau. Par conséquent, il est nécessaire d'effectuer un étalonnage afin de déterminer une frontière entre les conditions humides et sèches.

Instructions pour l'étalonnage du capteur capacitif d'humidité du sol :

  • Exécutez le code sur Raspberry Pi
  • Placez le capteur d'humidité dans le sol
  • Ajoutez progressivement de l'eau au sol
  • Surveillez les valeurs sur le terminal
  • Notez la valeur lorsque vous sentez que le sol passe de sec à humide, par exemple : 45000. Cela est appelé le « SEUIL ».

Déterminer si le sol est humide ou sec

  • Créez un fichier script Python soil_moisture_dry_wet.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-soil-moisture-sensor import time import Adafruit_ADS1x15 # Create an ADS1115 ADC object adc = Adafruit_ADS1x15.ADS1115() # Set the gain to ±4.096V (adjust if needed) GAIN = 1 # Single threshold for wet/dry classification (adjust as needed) THRESHOLD = 45000 # Function to determine the wet-dry level based on the soil moisture percentage def wet_dry_level(soil_moisture): if soil_moisture > THRESHOLD: return "DRY" else: return "WET" # Main loop to read the analog value from the soil moisture sensor try: while True: # Read the raw analog value from channel A3 raw_value = adc.read_adc(3, gain=GAIN) # Determine the wet-dry level based on the raw ADC value level = wet_dry_level(raw_value) # Print the results print("Raw Value: {} \t Wet-Dry Level: {}".format(raw_value, level)) # Add a delay between readings (adjust as needed) time.sleep(1) except KeyboardInterrupt: print("\nExiting the program.")
  • Mettez à jour la valeur THRESHOLD qui a été notée lors de l'étalonnage dans le code.
  • Enregistrez le fichier et exécutez le script Python en exécutant la commande suivante dans le Terminal :
python3 soil_moisture_dry_wet.py

La sortie affichée sur le terminal.

PuTTY - Raspberry Pi
Raw Value: 48520 Wet-Dry Level: DRY Raw Value: 47235 Wet-Dry Level: DRY Raw Value: 46032 Wet-Dry Level: DRY Raw Value: 44047 Wet-Dry Level: WET Raw Value: 41072 Wet-Dry Level: WET Raw Value: 40634 Wet-Dry Level: WET Raw Value: 40512 Wet-Dry Level: WET

Vidéo

Tutoriels connexes

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