Bodenfeuchtigkeit messen

Die LED-Ampel zeigt, wie feucht der Boden ist

Kurzanleitung: Bodenfeuchtigkeit messen (3 LEDs)

Die LED-Ampel zeigt, wie feucht der Boden ist?

Zielgruppe Dauer Level Gruppengröße
ab 8 Jahren 5 bis 10 Stunden 3 3 TN's

Kurzbeschreibung

Im Projekt werden ein kapazitiver Bodenfeuchtesensor und ein Raspberry Pi Pico zur Messung der Bodenfeuchtigkeit genutzt. LEDs in Rot, Gelb und Grün zeigen den Feuchtigkeitszustand an. Ein Breadboard ermöglicht lötfreies Arbeiten, und der Sensor sendet analoge Signale an den Mikrocontroller. Mit MicroPython wird die Funktionsweise programmiert und getestet.

Ziele
- MicroPython erlernen
- Thema Stromkreisläufe kennenlernen
- über Technik und Sensoren reflektieren
- Teamarbeit fördern
- Wechselwirkungen von Umwelt und Technologie verstehen

Material Werkzeug
  • Raspberry Pi Pico Set
  • Breadboard
  • Jumper, Dupont Kabel Set
  • Relais 5V KY-019
  • 3V-5V DC Wasserpumpe
  • Schlauch
  • Lötset/-station
  • Schraubenzieherset
  • Sortier-/Projektbox

Ablauf

  1. Vorbereitung:
    Die Workshopleitung bereitet Materialien und Werkzeuge vor, testet die Bauteile und baut ein Demomodell (siehe QR-Code). Für die Programmierung des Picos wird die Programmierumgebung Thonny benötigt, die auf einen Computer, Laptop oder Raspberry Pi 400 installiert werden sollte. Je nach Alter, Vorwissen und Beziehungsarbeit kann die Workshopzeit kürzer ausfallen (z.B. in den Phasen Projektvorbereitung und Projektstart).
  2. Projektstart:
    Zu Beginn erfolgt eine Willkommensrunde, in der Gruppenregeln aufgestellt und Ziele für den Tag formuliert werden. Die Teilnehmenden erkunden Einsatzmöglichkeiten des Projekts und tauschen Ideen aus. Projektrollen wie z.B. Programmierer/in oder Tester/in werden verteilt, um die Zusammenarbeit zu strukturieren.
  3. Praktische Arbeit: Aufbau und Test:
    Die Teilnehmenden setzen die Projekt-Sets in Dreiergruppen zusammen, unterstützt durch die Anleitung und individuelle Betreuung der Workshopleitung. Mit simulierten Bodenfeuchtigkeitswerten testen sie die Funktionsweise der LED-Anzeigen.
  4. Programmierung:
    Die Gruppen schließen den Raspberry Pi Pico an und arbeiten mit der
    Programmierumgebung Thonny. Sie  ändern Schwellenwerte für die LEDs, fügen Debugging-Funktionen hinzu und erweitern den Code, um aktuelle Messwerte anzuzeigen. Dabei experimentieren sie mit verschiedenen Programmierkonzepten.
  5. Reflexion:
    Im Abschluss reflektieren die Gruppen ihre Zusammenarbeit und diskutieren Verbesserungsmöglichkeiten. Ergebnisse und Erfahrungen werden geteilt, Perspektiven für zukünftige Projekte entwickelt. Feedback und Rituale fördern eine positive Atmosphäre und stärken die Motivation der Teilnehmenden.

Autor*in: Shelly Pröhl (Büro Berlin des JFF)

Detaillierte Anleitung: Bodenfeuchtigkeit messen (1 LED)

Detaillierte Anleitung: Bodenfeuchtigkeit messen (1 LED)

Installation Thonny

Wir programmieren das Raspberry Pi Pico mit der Skriptsprache MicroPython in der kostenlosen Entwicklungsumgebung (IDE) Thonny. Dafür verwenden wir einen Computer oder Laptop.

Thonny https://thonny.org/
Micropython https://micropython.org/

Was ist eine IDE?

Eine IDE (Integrated Development Environment) ist eine Software, die euch beim Schreiben, Testen und Ausführen von Code (Programmen) unterstützt. Sie vereint viele hilfreiche Werkzeuge an einem Ort, darunter:

Was ist Thonny?

Thonny ist eine einfache und benutzerfreundliche IDE, die speziell für Python entwickelt wurde. Sie eignet sich besonders gut für Einsteiger*innen, die das Programmieren gerade erst lernen. Thonny bietet eine übersichtliche Benutzeroberfläche und viele hilfreiche Funktionen, die den Einstieg ins Programmieren erleichtern. Es ist ein großartiges Tool, um erste Schritte mit Python und MicroPython zu machen. 

drawing drawing

Installation von Thonny auf verschiedenen Betriebssystemen

Installation auf Windows

Installation auf Linux (Ubuntu)

sudo apt update
sudo apt install thonny

Installation auf macOS

Übung

Versuche nach der Installation, siehe unten, über die IDE Thonny eine Bibliothek zu installieren, zum Beispiel die Bibliothek 'NeoPixel'.

Detaillierte Anleitung: Bodenfeuchtigkeit messen (1 LED)

Das Raspberry Pi Pico mit Thonny programmieren

Um ein neues Raspberry Pi Pico zu programmieren, müssen wir es zunächst vorbereiten. Es mag anfangs nach vielen Schritten klingen, aber sobald ihr es einmal gemacht habt, geht der Rest richtig schnell! (。•́‿ •̀。) Wir teilen den Prozess in drei Schritte auf:

  1. Installation von MicroPython auf dem Raspberry Pi Pico
  2. Raspberry Pi Pico mit Thonny öffnen
  3. Ein Programm auf dem Raspberry Pi Pico speichern/laden

Installation von Micropython auf dem Raspberry Pi Pico

Während der Installation oder dem Laden von MicroPython auf das Raspberry Pi Pico trennt sich das Laufwerk automatisch vom Computer. Dies zeigt an, dass die Installation abgeschlossen ist. Zieht auf keinen Fall das Kabel während dieses Prozesses vom Pico ab, da dies die Installation unterbrechen und zu Fehlern führen könnte.

Sicherheit geht vor – lasst das Pico in Ruhe arbeiten! (˶ᵔ ᵕ ᵔ˶)

pico-click_v2.gif

Mit Thonny ein Programm auf dem Raspberry Pi Pico speichern/laden

Nachdem ihr Thonny geöffnet habt, könnt ihr über das Menü die Option Dateien/Files auswählen, um Dateien zu verwalten.

So könnt ihr eure Programme einfach verwalten und sicherstellen, dass sie immer an der richtigen Stelle gespeichert sind!

Achtet beim Speichern auf dem Raspberry Pi Pico darauf, dass die Datei den Namen main.py hat. Nur mit diesem Dateinamen erkennt das Pico euer Programm automatisch und führt es nach dem Starten aus. ᓚ₍ ^. .^₎

thonny-open-save_pico_002.pngRaspberry Pi Pico mit Thonny öffnen

Normalerweise kommuniziert Thonny automatisch mit dem Raspberry Pi Pico, sobald es angeschlossen ist. Wenn ihr Thonny geöffnet habt, geht wie folgt vor:

  1. Wählt im Menü die Option Dateien/Files aus.
  2. Im neuen Dialog könnt ihr das Raspberry Pi Pico als Speicherort auswählen.
  3. Anschließend könnt ihr eure main.py-Datei auf dem Pico finden, auswählen und öffnen.

So könnt ihr sicherstellen, dass euer Programm korrekt geladen und ausgeführt wird!

Nachdem ihr eure main.py zum Öffnen ausgewählt habt, könnt ihr das Programm in Thonny bearbeiten. Wenn ihr Änderungen vornehmt und auf Speichern klickt, wird das Programm automatisch auf dem Raspberry Pi Pico aktualisiert und gespeichert. So bleiben eure Änderungen direkt auf dem Pico erhalten! ¯\_(ツ)_/¯

thonny-open-save_pico_003.pngProgramm starten/stoppen

Nachdem ihr ein Programm erfolgreich auf das Raspberry Pi Pico gespeichert oder übertragen habt, könnt ihr es ausführen und bei Bedarf stoppen:

thonny_pico_004.png

Detaillierte Anleitung: Bodenfeuchtigkeit messen (1 LED)

Zusammenbau

bodenfeuchtigkeitssensor_Steckplatine.png

Beispiel-Verkabelung (siehe Abbildung oben):
In der Abbildung werden rote, schwarze und grüne Kabel (Jumper) verwendet, die jeweils eine spezifische Funktion haben:

- Rot (Power/PWR): Liefert Energie an das Bauteil, damit es funktioniert.
- Schwarz (Ground/GRD): Schließt den Stromkreis und leitet überschüssige Energie ab.
- Grün (Data): Überträgt die Daten zwischen dem Raspberry Pi Pico und dem Bauteil.

1) Stromversorgung einrichten:

2) Bodenfeuchtigkeitssensor:

3) LED Dioden (rot, gelb, grün):

Wir verbinden die Anode (+) jeder LED über einen Vorwiderstand mit einem GPIO-Pin des Pico und die Kathode (-) mit der Masse (GND).

a) Rote LED:

Detaillierte Anleitung: Bodenfeuchtigkeit messen (1 LED)

Der Code

Hier ist ein Beispielcode für eure Programmierung in Micropython in der IDE Thonny auf dem Raspberry Pi Pico.

# Bibliotheken laden
#---------------------------------------------------------------------
from machine import Pin, ADC
import time

# Pins für die LEDs
led_red = Pin(13, Pin.OUT)
led_yellow = Pin(14, Pin.OUT)
led_green = Pin(15, Pin.OUT)

# ADC-Pin für den Bodenfeuchtigkeitssensor
#---------------------------------------------------------------------
soil_sensor = ADC(28)

# Schwellenwerte für Feuchtigkeit
#---------------------------------------------------------------------
DRY_THRESHOLD = 65000    # Über diesem Wert wird es als trocken betrachtet
MOIST_THRESHOLD = 43000  # Über diesem Wert wird es als feucht betrachtet
WATERED_THRESHOLD = 41000 # Über diesem Wert wird es als gegossen betrachtet

def read_soil_moisture():
    # Bodenfeuchtigkeit auslesen
    return soil_sensor.read_u16()

while True:
    moisture_level = read_soil_moisture()

# Boden ist trocken, rote LED leuchtet
#---------------------------------------------------------------------
    if moisture_level > DRY_THRESHOLD:
        led_red.value(1)
        led_yellow.value(0)
        led_green.value(0)
#print("Status: Der Boden ist trocken")

# Boden hat wenig Feuchtigkeit, gelbe LED leuchtet
#---------------------------------------------------------------------
    elif moisture_level > MOIST_THRESHOLD:
        led_red.value(0)
        led_yellow.value(1)
        led_green.value(0)
#print("Status: Der Boden ist mäßig feucht")

# Boden ist feucht genug, grüne LED leuchtet
#---------------------------------------------------------------------
    else:
        led_red.value(0)
        led_yellow.value(0)
        led_green.value(1)
#print("Status: Der Boden ist feucht")

# Trennlinie für bessere Lesbarkeit
#---------------------------------------------------------------------
#print("------------------------------")
    
# Warte eine Sekunde bevor der nächste Wert gemessen wird
#---------------------------------------------------------------------
    time.sleep(1)
    # Aktuellen Feuchtigkeitswert und Schwellenwerte ausgeben
    print("Feuchtigkeitswert:", moisture_level)

Detaillierte Anleitung: Bodenfeuchtigkeit messen (3 LEDs)

Detaillierte Anleitung: Bodenfeuchtigkeit messen (3 LEDs)

Installation Thonny

Wir programmieren das Raspberry Pi Pico mit der Skriptsprache MicroPython in der kostenlosen Entwicklungsumgebung (IDE) Thonny. Dafür verwenden wir einen Computer oder Laptop.

Thonny https://thonny.org/
Micropython https://micropython.org/

Was ist eine IDE?

Eine IDE (Integrated Development Environment) ist eine Software, die euch beim Schreiben, Testen und Ausführen von Code (Programmen) unterstützt. Sie vereint viele hilfreiche Werkzeuge an einem Ort, darunter:

Was ist Thonny?

Thonny ist eine einfache und benutzerfreundliche IDE, die speziell für Python entwickelt wurde. Sie eignet sich besonders gut für Einsteiger*innen, die das Programmieren gerade erst lernen. Thonny bietet eine übersichtliche Benutzeroberfläche und viele hilfreiche Funktionen, die den Einstieg ins Programmieren erleichtern. Es ist ein großartiges Tool, um erste Schritte mit Python und MicroPython zu machen. 

drawing drawing

Installation von Thonny auf verschiedenen Betriebssystemen

Installation auf Windows

Installation auf Linux (Ubuntu)

sudo apt update
sudo apt install thonny

Installation auf macOS

Übung

Versuche nach der Installation, siehe unten, über die IDE Thonny eine Bibliothek zu installieren, zum Beispiel die Bibliothek 'NeoPixel'.

Detaillierte Anleitung: Bodenfeuchtigkeit messen (3 LEDs)

Das Raspberry Pi Pico mit Thonny programmieren

Um ein neues Raspberry Pi Pico zu programmieren, müssen wir es zunächst vorbereiten. Es mag anfangs nach vielen Schritten klingen, aber sobald ihr es einmal gemacht habt, geht der Rest richtig schnell! (。•́‿ •̀。) Wir teilen den Prozess in drei Schritte auf:

  1. Installation von MicroPython auf dem Raspberry Pi Pico
  2. Raspberry Pi Pico mit Thonny öffnen
  3. Ein Programm auf dem Raspberry Pi Pico speichern/laden

Installation von Micropython auf dem Raspberry Pi Pico

Während der Installation oder dem Laden von MicroPython auf das Raspberry Pi Pico trennt sich das Laufwerk automatisch vom Computer. Dies zeigt an, dass die Installation abgeschlossen ist. Zieht auf keinen Fall das Kabel während dieses Prozesses vom Pico ab, da dies die Installation unterbrechen und zu Fehlern führen könnte.

Sicherheit geht vor – lasst das Pico in Ruhe arbeiten! (˶ᵔ ᵕ ᵔ˶)

pico-click_v2.gif

Mit Thonny ein Programm auf dem Raspberry Pi Pico speichern/laden

Nachdem ihr Thonny geöffnet habt, könnt ihr über das Menü die Option Dateien/Files auswählen, um Dateien zu verwalten.

So könnt ihr eure Programme einfach verwalten und sicherstellen, dass sie immer an der richtigen Stelle gespeichert sind!

Achtet beim Speichern auf dem Raspberry Pi Pico darauf, dass die Datei den Namen main.py hat. Nur mit diesem Dateinamen erkennt das Pico euer Programm automatisch und führt es nach dem Starten aus. ᓚ₍ ^. .^₎

thonny-open-save_pico_002.pngRaspberry Pi Pico mit Thonny öffnen

Normalerweise kommuniziert Thonny automatisch mit dem Raspberry Pi Pico, sobald es angeschlossen ist. Wenn ihr Thonny geöffnet habt, geht wie folgt vor:

  1. Wählt im Menü die Option Dateien/Files aus.
  2. Im neuen Dialog könnt ihr das Raspberry Pi Pico als Speicherort auswählen.
  3. Anschließend könnt ihr eure main.py-Datei auf dem Pico finden, auswählen und öffnen.

So könnt ihr sicherstellen, dass euer Programm korrekt geladen und ausgeführt wird!

Nachdem ihr eure main.py zum Öffnen ausgewählt habt, könnt ihr das Programm in Thonny bearbeiten. Wenn ihr Änderungen vornehmt und auf Speichern klickt, wird das Programm automatisch auf dem Raspberry Pi Pico aktualisiert und gespeichert. So bleiben eure Änderungen direkt auf dem Pico erhalten! ¯\_(ツ)_/¯

thonny-open-save_pico_003.pngProgramm starten/stoppen

Nachdem ihr ein Programm erfolgreich auf das Raspberry Pi Pico gespeichert oder übertragen habt, könnt ihr es ausführen und bei Bedarf stoppen:

thonny_pico_004.png

Detaillierte Anleitung: Bodenfeuchtigkeit messen (3 LEDs)

Zusammenbau

fritzing_soil-moisture-v1-2.png

Beispiel-Verkabelung (siehe Abbildung oben):
In der Abbildung werden rote, schwarze und grüne Kabel (Jumper) verwendet, die jeweils eine spezifische Funktion haben:

- Rot (Power/PWR): Liefert Energie an das Bauteil, damit es funktioniert.
- Schwarz (Ground/GRD): Schließt den Stromkreis und leitet überschüssige Energie ab.
- Grün (Data): Überträgt die Daten zwischen dem Raspberry Pi Pico und dem Bauteil.

1) Stromversorgung einrichten:

2) Bodenfeuchtigkeitssensor:

3) LED Dioden (rot, gelb, grün):

Wir verbinden die Anode (+) jeder LED über einen Vorwiderstand mit einem GPIO-Pin des Pico und die Kathode (-) mit der Masse (GND).

a) Rote LED:

b) Gelbe LED:

c) Grüne LED:

Detaillierte Anleitung: Bodenfeuchtigkeit messen (3 LEDs)

Der Code

Hier ist ein Beispielcode für eure Programmierung in Micropython in der IDE Thonny auf dem Raspberry Pi Pico.

# Bibliotheken laden
#---------------------------------------------------------------------
from machine import Pin, ADC
import time

# Pins für die LEDs
led_red = Pin(13, Pin.OUT)
led_yellow = Pin(14, Pin.OUT)
led_green = Pin(15, Pin.OUT)

# ADC-Pin für den Bodenfeuchtigkeitssensor
#---------------------------------------------------------------------
soil_sensor = ADC(28)

# Schwellenwerte für Feuchtigkeit
#---------------------------------------------------------------------
DRY_THRESHOLD = 65000    # Über diesem Wert wird es als trocken betrachtet
MOIST_THRESHOLD = 43000  # Über diesem Wert wird es als feucht betrachtet
WATERED_THRESHOLD = 41000 # Über diesem Wert wird es als gegossen betrachtet

def read_soil_moisture():
    # Bodenfeuchtigkeit auslesen
    return soil_sensor.read_u16()

while True:
    moisture_level = read_soil_moisture()

# Boden ist trocken, rote LED leuchtet
#---------------------------------------------------------------------
    if moisture_level > DRY_THRESHOLD:
        led_red.value(1)
        led_yellow.value(0)
        led_green.value(0)
#print("Status: Der Boden ist trocken")

# Boden hat wenig Feuchtigkeit, gelbe LED leuchtet
#---------------------------------------------------------------------
    elif moisture_level > MOIST_THRESHOLD:
        led_red.value(0)
        led_yellow.value(1)
        led_green.value(0)
#print("Status: Der Boden ist mäßig feucht")

# Boden ist feucht genug, grüne LED leuchtet
#---------------------------------------------------------------------
    else:
        led_red.value(0)
        led_yellow.value(0)
        led_green.value(1)
#print("Status: Der Boden ist feucht")

# Trennlinie für bessere Lesbarkeit
#---------------------------------------------------------------------
#print("------------------------------")
    
# Warte eine Sekunde bevor der nächste Wert gemessen wird
#---------------------------------------------------------------------
    time.sleep(1)
    # Aktuellen Feuchtigkeitswert und Schwellenwerte ausgeben
    print("Feuchtigkeitswert:", moisture_level)