Raspberry Pi - Bodemvochtigheidssensor

Deze handleiding vertelt u hoe u een vochtigheidssensor gebruikt met de Raspberry Pi. We bekijken specifiek:

Hardware vereisten

1×Raspberry Pi 5
1×Capacitieve Bodemvochtigheidssensor
1×ADS1115 ADC-Module
1×Jumperkabels
1×(Aanbevolen) Schroefklem Block Shield voor Raspberry Pi
1×(Aanbevolen) Raspberry Pi Prototyping Basisplaat & Breadboard Kit
1×(Aanbevolen) HDMI-Touchscreen-Monitor voor Raspberry Pi

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Aankoopadvies: Veel capacitieve bodemvochtsensoren op de markt zijn van lage kwaliteit, ongeacht de versie. We raden u ten zeerste aan de sensor met TLC555I-chip van het merk DIYables te kopen via de bovenstaande link. We hebben het getest en het werkte goed.

Over de Bodemvochtigheidssensor

capacitieve vochtigheidssensor vs resistieve vochtigheidssensor

Er zijn twee types vochtigheidssensoren: de resistieve vochtigheidssensor en de capacitieve vochtigheidssensor.

Beide sensoren geven informatie over de bodemvochtigheid. Hun werkingsprincipes verschillen echter sterk. Wij raden sterk aan de capacitieve vochtigheidssensor te gebruiken, vanwege het volgende:

  • De resistieve bodemvochtigheidssensor is gevoelig voor corrosie na verloop van tijd. Dit komt doordat elektrische stroom tussen de probes loopt, wat elektrochemische corrosie veroorzaakt.
  • De capacitieve bodemvochtigheidssensor corrodeert veel langzamer dan de resistieve sensor. Dit komt doordat de elektroden niet direct blootgesteld zijn en relatief corrosiebestendig zijn.

Dit is een foto van een resistieve bodemvochtigheidssensor die beschadigd is door corrosie.

resistieve bodemvochtigheidssensor gecorrodeerd

De rest van deze handleiding maakt gebruik van de capacitieve bodemvochtigheidssensor.

Pinout van de Capacitieve Bodemvochtigheidssensor

De capacitieve bodemvochtigheidssensor heeft drie pinnen:

  • GND-pin: moet verbonden worden met GND (0V)
  • VCC-pin: moet verbonden worden met VCC (5V of 3,3V)
  • AOUT-pin: dit is de analoge signaal-uitgangspin die een spanning produceert die evenredig is aan het bodemvochtgehalte. Deze moet verbonden worden met een analoge ingangspin van de Raspberry Pi.
pinout capacitieve bodemvochtigheidssensor

Hoe het werkt

De hoeveelheid water in de bodem beïnvloedt de spanning op de AOUT-pin; hoe meer water, hoe lager de spanning zal zijn.

Bedradingsschema

Raspberry Pi bodemvochtigheidssensor bedradingsschema

This image is created using Fritzing. Click to enlarge image

Om uw bekabelingsopstelling te vereenvoudigen en te organiseren, raden we het gebruik van een Schroevenklemaansluiting-shield voor Raspberry Pi aan. Deze shield zorgt voor veiligere en beter beheerbare verbindingen, zoals hieronder weergegeven:

Raspberry Pi Schroevenklemaansluiting-Shield

Raspberry Pi code leest waarden van bodemsensor uit.

Snelle stappen

  • Zorg dat u Raspbian of een ander compatibel besturingssysteem op uw Raspberry Pi hebt geïnstalleerd.
  • Zorg dat uw Raspberry Pi verbonden is met hetzelfde lokale netwerk als uw pc.
  • Zorg dat uw Raspberry Pi verbonden is met internet als u bibliotheken moet installeren.
  • Als u voor het eerst een Raspberry Pi gebruikt, zie hoe u de Raspberry Pi instelt
  • Verbind uw pc via SSH met de Raspberry Pi met de ingebouwde SSH-client op Linux en macOS of met PuTTY op Windows. Zie hoe u uw pc via SSH met Raspberry Pi verbindt.
  • Zorg dat de RPi.GPIO bibliotheek geïnstalleerd is. Zo niet, installeer deze met het volgende commando:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Installeer de Adafruit_ADS1x15 bibliotheek door de volgende commando’s uit te voeren in de terminal van de Raspberry Pi:
sudo pip install Adafruit-ADS1x15
  • Maak een Python-scriptbestand aan met de naam soil_moisture.py en voeg de volgende code toe:
# Deze Raspberry Pi code is ontwikkeld door newbiely.nl # Deze Raspberry Pi code wordt zonder enige beperking aan het publiek beschikbaar gesteld. # Voor volledige instructies en schema's, bezoek: # https://newbiely.nl/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.")
  • Sla het bestand op en voer het Python-script uit met het volgende commando in de terminal:
python3 soil_moisture.py
  • Begraaf de sensor in de bodem en giet dan water in de grond. Of dompel de sensor langzaam onder in een glas zout water.
  • Controleer het resultaat in de 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

※ Notiz:

  • Gebruik GEEN puur water voor de test, omdat dit geen elektriciteit geleidt en dus geen invloed heeft op de sensorwaarden.
  • De sensorwaarden zakken doorgaans niet naar nul. Het is normaal dat ze tussen ongeveer 40000 en 50000 blijven, maar dit kan verschillen afhankelijk van hoe diep de sensor is geplaatst, het type bodem of water en de voedingsspanning.
  • Begraaf nooit het circuitgedeelte (dat zich bovenop de sensor bevindt) in de bodem of in water, dit kan de sensor beschadigen.

Het script draait oneindig door totdat u Ctrl + C indrukt in de terminal.

Kalibratie van de Capacitieve Bodemvochtigheidssensor

De waarde die de vochtigheidssensor geeft is niet absoluut. Deze varieert afhankelijk van de samenstelling van de bodem en het watergehalte. Daarom is kalibratie noodzakelijk om een grenswaarde te bepalen tussen nat en droog.

Instructies voor kalibratie:

  • Start het programma op de Raspberry Pi
  • Plaats de vochtigheidssensor in de bodem
  • Voeg geleidelijk water toe aan de bodem
  • Houd de waarden in de Terminal in de gaten
  • Noteer de waarde waarbij u merkt dat de grond nat wordt, bijvoorbeeld: 45000. Dit wordt de THRESHOLD genoemd.

Bepalen of de bodem nat of droog is

  • Maak een Python-scriptbestand aan met de naam soil_moisture_dry_wet.py en voeg de volgende code toe:
# Deze Raspberry Pi code is ontwikkeld door newbiely.nl # Deze Raspberry Pi code wordt zonder enige beperking aan het publiek beschikbaar gesteld. # Voor volledige instructies en schema's, bezoek: # https://newbiely.nl/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.")
  • Update de THRESHOLD waarde die u bij de kalibratie hebt genoteerd in de code.
  • Sla het bestand op en voer het Python-script uit met het volgende commando in de Terminal:
python3 soil_moisture_dry_wet.py

De output die in de Terminal verschijnt:

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

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Gerelateerde Tutorials

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!