Bewässerung vertikaler Garten

  • Hallo Zusammen,


    habe schon länger nichts mehr mit meinem Raspberry PI 3 angestellt und wollte nun ein neues Projekt starten.

    Es geht um folgendes.

    An meiner Wand hängt ein vertikaler Garten bestehend aus 3 Modulen von Karoo. Diese sind übereinander gesetzt.

    Diese Module müssen einzeln bewässert werden.

    Habe mir nun ein Tropfsystem aufgebaut, das von Hand umgeschalten werden muss

    Zur Verdeutlichung habe ich eine Skizze erstellt.


    Die meisten Bewässerungen die ich bisher gesehen habe werden mit Pumpen realisiert.

    Allerdings möchte ich es über die potentielle Energie machen. Sprich der Wasserbehälter sollte über den Modulen sein.

    Zum Einen funktioniert das System bisher sehr gut und zum Anderen würde ich Pumpen benötigen, die das Wasser in ca. 2,5m hoch pumpen können.


    Könnt ihr mich ein bisschen bei der Hand nehmen, um das Projekt zu realisieren?


    Zunächst brauche ich erstmal eine Einkaufsliste:

    1. Feuchtigkeitssensoren (3x), welchen würdet ihr empfehlen?

    2. 3-Wege Vetnil, am Besten mit sufenloser Verstellung, sodasss ich darüber gleich den Tropf regeln kann.

    3. Falls es 2 das nicht gibt brauch ich ein Ventil, das ich als Tropf verwenden kann


    Welche Software würdet ihr empfehlen?


    Wie ihr seht habe ich nicht sehr viel Erfahrung mit dem Raspberry.

    Darum werden wohl noch einige Fragen folgen ;)


    Viele Grüße!

  • Hi,

    welche 2- oder 3-Wege-Ventile meinst Du ? Die, die ich kenne und verbaue haben einen "Auf-Zu"-Weg von 13-20 Sekunden. Da wäre dein Wasserbehälter aber wohl schon leer...

    Würden Magnetventile nicht eine bessere Alternative darstellen ??


    Du musst die Ventile mittels Relais ansteuern.

    WENN das ein "12/24 Volt"-Projekt wird, dann kannst Du die Relaisplatinen aus der E-Bucht nehmen ...

  • Hey!

    Vllt hilft dir das folgende Projekt weiter:


    Hier gehts weiter


    An Software braucht man da denke ich erstmal nicht viel, ausser eines kleinen Skriptes, dass in bestimmten Zeitintervallen die Feuchtigkeitswerte abfragt und dann ggfls. eine Ventil öffnet und nach x sekunden wieder schliesst.

  • Es wird wohl schon ein 12v System werden.

    Mein Hauptproblem am Material ist erstmal ein geeignetes Ventil zu finden, dass sich stufenlos verstellen lässt, sodass ich den Tropf realisieren kann.

    Ein Magnetventil ist binär oder?


    Dann benötige ich eben noch ein Verteilerventil mit einem Eingang und 3 Ausgängen. Die können dann binär sein.

    Ich dachte dabei an sowas: Wasserventil (Affiliate-Link)


    Welchsen Feuchtigkeitssensor würded ihr empfehlen? Den: Feuchtigkeitssensor (Affiliate-Link)

  • Welchsen Feuchtigkeitssensor würded ihr empfehlen? Den: Feuchtigkeitssensor (Affiliate-Link)

    Die sind zumindest schonmal besser als die ganz billigen Dinger, reagieren jedoch stark Temperaturabhängig. Außerdem kannst Du sie, wegen des analogen Ausgangssignals , nicht direkt an den RPi anschließen. Diese hier taugen ebenfalls. Und hier haben wir im Forum ein, zwei Zeilen zu lesen... auch mit einem Bericht von user Zentris ;)

  • Hallo Zusammen,


    habe mir in der Zwischenzeit ein paar Utensilien zugelegt und die ersten Gehversuche unternommen.

    Jetzt stehe ich aber schon vor dem ersten Problem.

    Gerne möchte ich das analoge Signal des Feuchtigkeitssensors auslesen. Dafür habe ich mich an folgende Anleitung gehalten:

    https://tutorials-raspberrypi.…analoge-signale-auslesen/


    Sprich:

    - SPI aktiviert

    - python3-dev installiert

    - spi-dev-master installiert

    - neugestartet

    - Code "kopiert"


    Leider kommt bei mir immer eine 0 raus.


    Daher habe ich mich nochmal auf die Suche gemacht und ein weiteres Skript erstellt.

    Leider ebenfalls ohne Erfolg


    Der Sensor an sich funktioniert.

    Habe das ganze auch mal mit einer LED vor dem Channel 0 versucht. LED leuchtet aber kein Signal.


    Welche Möglichkeit gibt es, den Fehler herauszufinden?

    Kann ich irgendwie überprüfen, ob der MCP3008 richtig funktioniert und angesteuert wird?

  • Zeig mal deinen Schaltplan und deinen Aufbau/Verkabelung.

    Wie startest du das Script ?

    Schon mal mit dem Multimeter gemessen ?

    Ist das Script noch für Python2 ? Warum dann python3-dev und nicht python-dev ?

    Anleitung zu py-spidev-master befolgt ? Schon mal anderen Code probiert ?

  • Hallo fred0815, Danke für dein Skript, mit diesem funktioniert es.

    Kannst du mir sagen, was es macht?

    Kann es sein, dass nicht Channel 0 ausgelesen wird?


    Verkabelt ist es genau wie im Tutorial.

    Wollte Python3 statt Python2 verwenden.. Dachte mir, neuer ist besser ;)


    Habe gerade sogar noch ein sehr einfaches Skript gefunden.

    Leider habe ich immer noch keine Ahnung warum meins und das vom Tutorial nicht funktioniert.

    Code
    import time, gpiozero
    
    adc = gpiozero.MCP3008 (channel = 0)
    
    while True:
     voltage = adc.voltage
     print("Spannung am Wassersensor: %.2f V" % voltage)
     time.sleep (1)

    Edited once, last by Waischno ().

  • Hallo Zusammen,


    ich habe meinen Code wieder etwas erweitert.

    Der funktioniert auch gut mit python2, allerdings nicht mit python3.

    Habe thingspeak mit sudo pip3 install thingspeak installiert. War das falsch?

    Edited once, last by Waischno ().

    • Official Post

    Der funktioniert auch gut mit python2, allerdings nicht mit python3.

    Wo klemmts? Was sind die Fehlermeldungen bei Python3? >> https://pythonclock.org/


    Und was soll der Mischmasch mit gpiozero (:thumbup:) und RPi.GPIO (:thumbdown:)? :conf:


    Noch eine Frage. Sind die Keys Personenbezogen, also einzigartig? Dann mach die bitte unkenntlich oder und verwende neue! ;)


    Habe thingspeak mit sudo pip3 install thingspeak installiert. War das falsch?

    Wie, bzw. mit welchem Befehl startest Du das Skript?

  • Es kommt

    Quote

    >>> %Run Moisure.py

    Traceback (most recent call last):

    File "/home/pi/Python_Doc/Moisure.py", line 32, in <module>

    channel = thingspeak.Channel(id=channel_id, write_key=write_key, api_key=read_key)

    TypeError: __init__() got an unexpected keyword argument 'write_key'


    Und was soll der Mischmasch mit gpiozero ( :thumbup: ) und RPi.GPIO ( :thumbdown: )? :conf:

    Das kommt wohl aus einer alten Version

    Wie, bzw. mit welchem Befehl startest Du das Skript?

    Wollte es eigentlich über Thonny starten. Geht aber auch nicht über das Terminal mit

    Code
    python3 Moisure.py 
  • Es kommt der gleiche Fehler


    Quote

    channel = thingspeak.Channel(id=channel_id, write_key=w_key, api_key=read_key)

    TypeError: __init__() got an unexpected keyword argument 'write_key'

    Wie kann ich nachschauen, ob thingspeak auf python3 richtig installiert wurde?

  • Hallo Zusammen,


    ich habe das Problem bisher umgangen, indem ich es einfach mit Python2 laufen ließ.

    Allerdings möchte ich nun das ganze mit einer GUI versehen und über Python3 laufen lassen.


    Könnt ihr mir nochmals zu meiner obigen Fehlermeldung weiterhelfen?

    Quote

    channel = thingspeak.Channel(id=channel_id, write_key=w_key, api_key=read_key)

    TypeError: __init__() got an unexpected keyword argument 'write_key'

  • Hallo zusammen,


    Nach ein paar Umbaumaßnahmen der "Hardware" wollte ich mich wieder dem Thema Thingspeak widmen.

    Leider funktioniert das bisher immer noch nicht.


    Wenn ich das Skript über Thonny oder das Terminal laufen lasse kommt:

    Traceback (most recent call last):

    File "/home/pi/Python_Doc/Moisure4.py", line 31

    response = channel.update({'field1': moisureDown, 'field2': moisureMid, 'field3': moisureUp})

    ^

    SyntaxError: invalid syntax


    Ich habe das Gefühl, dass ich das Thingspeak Paket nicht richtig installiert habe.

    In Thonny wird es allerdings als installiert angezeigt.


    Mein Code hat sich nicht sehr verändert, dennoch hier nochmal zur Vollständigkeit:

  • Also wenn mich jemad fragen würde sieht das Argument nach json aus.

    --->{'field1': moisureDown, 'field2': moisureMid, 'field3': moisureUp}

    Json ist meiner Meinung nach immer als String zu verstehen.


    ....("{'fild1':"+str(moisureDown)+",'field2':"+str(moisureMid)+",'field3':"+str(moisureUp)+"}")

  • Du hast ein Einrückungsproblem. Deren Relevanz wird in jedem(!) Grundlagentutorial angesprochen, da musst du nochmal etwas durcharbeiten.



    Und det_lev_a’s Anmerkung ist Unfug.

  • Ah mist, vor lauter Auskommentieren hab ich das verhunst.

    Danke!


    Jetzt bekomme ich den alten Fehler:

    Traceback (most recent call last):

    File "/home/pi/Python_Doc/Moisure4.py", line 69, in <module>

    channel = thingspeak.Channel(id=channel_id, w_key=w_key, api_key=read_key)

    TypeError: __init__() got an unexpected keyword argument 'w_key'

  • Hallo,


    Wie sieht der Code jetzt aus?

    Zum Verständnis noch zwei Fragen:

    Hier war mal von Python2 und mal von Python3 die Rede. Was nutzt du jetzt und wie wurde dann das thingspeak-Modul installiert?


    Grüße

    Dennis

    ... ob's hinterm Horizont wirklich so weit runter geht oder ob die Welt vielleicht doch gar keine Scheibe ist?