Använda en jordfuktighetssensor med Raspberry Pi

Using a Soil Moisture Sensor with the Raspberry Pi

En jordfuktighetssensor Tillåter en Raspberry Pi att övervaka jordfuktigheten, vilket gör den idealisk för Smart trädgårdsskötsel, bevattningssystem och miljöövervakning. Den här guiden kommer att leda dig genom att ställa in och använda en jordfuktighetssensor med en Raspberry Pi.


Vad du behöver

  1. Hallon (Varje modell med GPIO -stöd, t.ex. PI 3, PI 4)
  2. Jordfuktighetssensor (analog eller digital utgång)
  3. ADC -modul (t.ex. ADS1115) för analoga sensorer (vid behov)
  4. Breadboard och jumpertrådar
  5. Python installerad på Raspberry Pi

Steg 1: Förstå jordfuktighetssensorn

Det finns två typer av jordfuktighetssensorer:

  • Digitala utgångssensorer (t.ex. kapacitiva markfuktighetssensorer) - Ge en Hög/låg signal när fukt korsar en tröskel.
  • Analoga utgångssensorer - tillhandahålla en variabel spänning baserad på markfuktighet, som kräver en ADC (analog-till-digital omvandlare) som ADS1115.

Steg 2: Kopplar sensorn till Raspberry Pi

För en digital utgångsjordfuktighetssensor

Sensorstift Hallon pi
Vcc 3.3V eller 5V (stift 1 eller 2)
Gard Mark (stift 6)
D0 (digital) Alla GPIO (t.ex. GPIO17, stift 11)

För en analog utgångssensor (med ADS1115)

Sensorstift ADS1115 -stift Hallon pi
Vcc Vcc 3.3V eller 5V (stift 1 eller 2)
Gard Gard Mark (stift 6)
A0 (analog) A0 I2C (via ADS1115)

Steg 3: Aktivera i2c på Raspberry Pi

Eftersom vissa sensorer använder I2C (ADS1115 -modulen), aktivera det:

  1. Öppna Raspberry PI -konfigurationsverktyget:
    sudo raspi-config
    
  2. Navigera till Gränssnittsalternativ> i2c och aktivera det.
  3. Starta om Raspberry Pi:
    sudo reboot
    

Steg 4: Installera obligatoriska bibliotek

  1. Uppdatera din Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Installera GPIO- och I2C -biblioteken:
    sudo apt install -y python3-rpi.gpio python3-smbus python3-pip
    pip3 install adafruit-circuitpython-ads1x15
    

Steg 5: Python -kod för att läsa fuktnivåer

För en digital sensor

import RPi.GPIO as GPIO
import time

SENSOR_PIN = 17  # GPIO Pin connected to D0
GPIO.setmode(GPIO.BCM)
GPIO.setup(SENSOR_PIN, GPIO.IN)

try:
    while True:
        if GPIO.input(SENSOR_PIN):
            print("Soil is Dry!")
        else:
            print("Soil is Moist!")
        time.sleep(2)
except KeyboardInterrupt:
    print("Exiting...")
finally:
    GPIO.cleanup()

För en analog sensor (med ADS1115)

import time
import board
import busio
import adafruit_ads1x15.ads1115 as ADS
from adafruit_ads1x15.analog_in import AnalogIn

# Initialize I2C and ADS1115 ADC
i2c = busio.I2C(board.SCL, board.SDA)
ads = ADS.ADS1115(i2c)
moisture_sensor = AnalogIn(ads, ADS.P0)  # A0 on ADS1115

try:
    while True:
        moisture_level = moisture_sensor.value
        print(f"Soil Moisture Level: {moisture_level}")
        time.sleep(2)
except KeyboardInterrupt:
    print("Exiting...")

Steg 6: Tillämpningar av markfuktighetssensorer

  1. Smart bevattning - Vattenväxter automatiskt när jorden är torr.
  2. Väderstationer - Övervaka markförhållanden på distans.
  3. Växthussautomation - Optimera växttillväxten baserad på fuktnivåer.
  4. IoT -projekt - Skicka data till molnplattformar för fjärrövervakning.

Felsökning

  1. Sensor upptäcker inte fukt

    • Kontrollera ledningarna och se till korrekt spänning.
    • För analoga sensorer, se till ADS1115 -modulen upptäcks ordentligt använder:
      sudo i2cdetect -y 1
      
  2. Instabila avläsningar

    • Undvik att placera sensorn i alltför våtmiljöer för att förhindra korrosion.
    • För kapacitiva sensorer, se till rena sondytor för exakta avläsningar.

Slutsats

Jordfuktighetssensorer tillåter Raspberry PI -projekt att Övervaka och automatisera växtvattning, vilket gör dem idealiska för Smart trädgårdsskötsel och IoT -applikationer. Genom att följa den här guiden kan du Läs jordfuktighetsnivåer och utlöser automatiserade åtgärder Baserat på realtidsdata! 🌱🚀

Lämna en kommentar

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.