# 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/](https://thonny.org/) |
Micropython | [https://micropython.org/](https://micropython.org/) |
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! (˶ᵔ ᵕ ᵔ˶)
[](https://wiki.gestaltwasdigital.org/uploads/images/gallery/2024-11/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. - Mit der Option **Öffnen/Open** öffnet sich ein Dialog, in dem ihr auswählen könnt, ob ihr eine Datei von eurem Computer oder direkt vom Raspberry Pi Pico laden möchtet. - Mit der Option **Speichern/Save** öffnet sich ein Dialog, in dem ihr auswählen könnt, wo ihr euer Programm speichern möchtet – entweder auf dem Computer oder auf dem Raspberry Pi Pico. 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. ᓚ₍ ^. .^₎
[](https://wiki.gestaltwasdigital.org/uploads/images/gallery/2024-11/thonny-open-save-pico-002.png)**Raspberry 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! ¯\\\_(ツ)\_/¯
[](https://wiki.gestaltwasdigital.org/uploads/images/gallery/2024-11/thonny-open-save-pico-003.png)**Programm 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: - **Starten:** Klickt in der Symbolleiste auf den runden **grünen Button**, um das Programm auf dem Raspberry Pi Pico zu starten. Alternativ könnt ihr die **Taste F5** drücken. - **Stoppen:** Klickt in der Symbolleiste auf den **roten Stop-Button**, um das Programm zu stoppen. Alternativ könnt ihr die Tastenkombination **Strg + F2** verwenden. **[](https://wiki.gestaltwasdigital.org/uploads/images/gallery/2024-11/thonny-pico-004.png)** # Zusammenbau [](https://wiki.gestaltwasdigital.org/uploads/images/gallery/2024-11/0LQfritzing-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:** - Verbinde den **5V-Pin** des Raspberry Pi Pico mit der **positiven Leiste** (rote Linie) des Breadboards. - Verbinde einen **GND-Pin** des Raspberry Pi Pico mit der **negativen Leiste** (blaue Linie) des Breadboards. Jetzt können alle Bauteile auf dem Breadboard mit Strom versorgt werden. **2) Bodenfeuchtigkeitssensor:** - Stecke ein Jumper-Kabel vom **VCC-Pin** des Relaismoduls in die **positive Leiste** des Breadboards. - Verbinde den **GND-Pin** des Relaismoduls mit der **negativen Leiste** des Breadboards. - **Analogausgang (AO):** Verbinde den **AO-Pin** (manchmal auch A0 genannt) des Sensors mit **GPIO-Pin 26 (ADC0)** des Pico. **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:** - **Anode (+)** (längeres Beinchen) über einen **270 Ω Widerstand** mit **GPIO-Pin 15** (GP15) des Pico verbinden. - **Kathode (-)** (kürzeres Beinchen) mit einem **GND-Pin** des Pico verbinden. **b) Gelbe LED:** - **Anode (+)** über einen **270 Ω Widerstand** mit **GPIO-Pin 14** (GP14) verbinden. - **Kathode (-)** mit **GND** verbinden. **c) Grüne LED:** - **Anode (+)** über einen **270 Ω Widerstand** mit **GPIO-Pin 13** (GP13) verbinden. - **Kathode (-)** mit **GND** verbinden. # Der Code Hier ist ein Beispielcode für eure Programmierung in Micropython in der IDE Thonny auf dem Raspberry Pi Pico. ```python # 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)