Automatisches Raspberry Pi Gewächshaus selber bauen

30. April 2017
74 Comments

In immer mehr Städten geht der Trend zu biologisch oder gar selbst-angebautem Obst und Gemüse. Ein Grund, der vielleicht abschreckt, ist der zeitliche Aufwand für die Pflege der Pflanzen. Daher geht es in diesem Projekt um das Erstellen eines automatisierten Raspberry Pi Gewächshaus, welches die Arbeit auf ein Minimum reduziert.

Durch automatisches Gießen, Lüften und Belichten muss lediglich am Ende das Ernten von Hand übernommen werden. Alle Aktionen (wie das bewässern) werden dabei von Sensoren gesteuert, um ein optimales Ergebnis zu liefern. Durch den geringen Platzverbrauch (ca 1/2 m²) eignet es sich außerdem auch für den städtischen Balkon.

 

Einkaufsliste

Niedrig wachsende Pflanzen sind besonders für das automatische Raspberry Pi Gewächshaus geeignet.

Da das Raspberry Pi Gewächshaus möglichst autonom arbeiten soll, soll alles nötige automatisiert werden. Dazu ist natürlich einiges an Zubehör vonnöten. Für einen Balkon kann am besten jenes Zubehör genutzt werden:

Ich nutze zwei der Wasserpumpen, da ich in zwei Blumenkästen etwas gesät habe. Du kannst die Anzahl der Sensoren für die Bodenfeuchtigkeit variieren.

Natürlich kannst du die Teile auf dein Projekt anpassen. Wenn du bspw. ein größeres Frühbeet / Gewächshaus hast, so kannst du den Code unten natürlich für deine Zwecke anpassen / optimieren.

Falls du den unten gezeigten Aufbau für die Stromversorgung per GPIOs nachbauen willst, benötigst du außerdem noch dies:

Inhaltsverzeichnis:

 

Installation der benötigten Bibliotheken

Zu allen der benötigten Module findest du auch eigenständige Tutorials, falls du die Funktionsweise im Detail verstehen möchtest:

Am besten du nimmst ein frisch installiertes Raspbian Jessie und öffnest darauf ein Terminal (z.B. per SSH). Zunächst updaten wir alles und installieren ein paar Packages:

sudo apt-get update --yes && sudo apt-get upgrade --yes
sudo apt-get install build-essential python-dev python-pip python-smbus python-openssl git --yes

Der Vorgang kann etwas Zeit in Anspruch nehmen. Währenddessen kannst du bereits mit dem Aufbau des Frühbeet Kastens anfangen.

Gib nun sudo raspi-config ein und wähle „Interfacing Options“ -> „SPI“ und aktiviere es. Selbes machst du mit „I2C“. Starte danach neu.

Anschließend installieren wir die benötigten Bibliotheken.

  • SpiDev:
    git clone https://github.com/doceme/py-spidev
    cd py-spidev
    sudo python setup.py install
    cd ..
  • Adafruits Bibliothek für den DHT11/DHT22 (alternativ direkt aus GitHub laden):
    sudo pip install adafruit_python_dht

Stromversorgung über GPIOs

Prinzipiell hast du zwei Möglichkeiten, den Raspberry Pi mit Strom zu verbinden. Die eine Möglichkeit ist gewöhnlich über den Micro USB Port. Der Nachteil darin ist aber, dass du normalerweise zwei Steckdosen brauchst.

Daher zeige ich erst einmal, wie man den Raspberry Pi über die GPIOs mit Strom versorgt. Hierbei ist Vorsicht geboten, da eine zu hohe Spannung den Pi kaputt machen kann! Falls du dich unsicher fühlst, wähle lieber die Stromversorgung per USB Kabel.

Der L7805 Spannungsregulator (Datenblatt) kann Spannungen von 7 bis 25V auf 5V herunter regulieren. Dazu werden allerdings noch zwei Kondensatoren benötigt. Der Anschluss ist folgender:

Raspberry Pi Greenhouse L7805 SteckplatineBevor du es an den Raspberry Pi anschließt, kannst du mit einem Multimeter die Spannung nachmessen.

Details dazu können hier nachgelesen werden.

 

Raspberry Pi Gewächshaus – Komponenten

Vorweg gesagt: Du kannst entweder jedem einzelnen Schritt folgen und so den Programmcode erweitern, oder wie am Ende des Tutorials beschrieben, den Code auf einmal aus dem Github Repository herunterladen und danach anpassen.

Dieses Tutorial soll möglichst individualisierbar sein, da jeder andere Bedingungen vorliegen hat. Daher ist der kommende Teil in verschiedene, einzelne Abschnitte unterteilt. Falls du also bestimmte Komponenten weglassen möchtest (z.B. keine Real Time Clock oder keine Beleuchtung), so kannst du diesen Teil weglassen bzw. entsprechend anpassen.

Zunächst aber die Einstellungen der GPIOs usw. In einem neuen Ordner (mkdir Raspberry-Pi-Greenhouse && cd Raspberry-Pi-Greenhouse) erstellen wir eine neue Datei (sudo nano greenhouse.py) mit folgendem Inhalt:

Falls du andere GPIOs oder andere Einstellungen möchtest, kannst du dies hier anpassen.

In den folgenden Abschnitten erweitern wir die Funktionen (sofern gewünscht). Eine Belegung der GPIOs kannst du in dieser Abbildung finden.

 

Vorbereitung für das Raspberry Pi Gewächshaus

Bevor wir die elektronischen Komponenten anbringen, sollte das Frühbeet aufgebaut sein. Darin können (je nach Größe) 2-3 große Blumenkästen platziert werden. In diese kannst du entweder Jungpflanzen oder Samen setzen. Achte dabei auf die Hinweise auf der Verpackung.

Zusätzlich bietet es sich an, die Erde zu düngen. Wer möchte kann außerdem noch spezielle Tomaten- oder Gemüseerde nehmen, in der mehr Mineralien vorhanden sind.

 

Uhrzeit anpassen

Gerade wenn der Raspberry Pi außerhalb kein Internet zur Verfügung hat (oder du es ausschaltest), so ist es von Vorteil die aktuelle Zeit zu kennen.Wenn der Pi (nach einem Stromausfall oder ähnlichem) neu startet, so kennt er die aktuelle Uhrzeit und das Datum nicht. Dafür gibt es Real-Time-Clock (Echtzeituhr) Module, welche eine Batterie haben und den Zeitstempel dauerhaft speichern. Dieser Schritt ist optional und kann auch übersprungen werden, sofern dauerhaft eine Internetverbindung besteht.

Wichtig ist, dass bei den Tiny RTC (I2c modules) die beiden Widerstände (R2 und R3) mit einem Lötkolben abgemacht werden (Details hier). Normalerweise geben diese Module 5V Signale zurück, was zu viel für den Raspberry Pi ist. Alternativ kannst du einen 3.3V-5V TTL nutzen.

Fangen wir also an mit dem Anschluss:

RTC Modul Raspberry Pi
SCL GPIO 3 / SCL (Pin 5)
SDA GPIO 2 / SDA (Pin 3)
VCC / 5V 5V (Pin 2 oder Pin 4)
GND GND (Pin 6) bzw. jeder andere GND Pin

Raspberry Pi RTC Real Time Clock Aufbau

Zunächst laden wir das benötigte Skript:

wget https://raw.githubusercontent.com/tutRPi/Raspberry-Pi-Greenhouse/master/SDL_DS1307.py

Anschließend legen wir die richtige Uhrzeit und Zeitzone fest:

sudo raspi-config

Unter „Localisation Options“ kannst du deine Zeitzone festlegen. Anschließend kannst du mit date überprüfen, ob die Uhrzeit stimmt. Öffne nun die Python Konsole (sudo python) und gib folgendes ein, um die RTC Uhrzeit einzustellen:

import SDL_DS1307
ds1307 = SDL_DS1307.SDL_DS1307(1, 0x68)
ds1307.write_now()
exit()

Damit ist die aktuelle Uhrzeit gespeichert.

Jetzt können wir unser eigentliches Skript erweitern (sudo nano greenhouse.py):

Speichere mit STRG+O.

 

Helligkeit anpassen

Raspberry Pi MCP3008 Pinout

Auf der linken Seite des MCP3008 befinden sich die 8 analog auslesbaren Channels.

Damit die Pflanzen auch an bewölkten Tagen genug Licht erhalten, erweitern wir das Gewächshaus um eine helle lange LED. Du könntest auch einen (wasserfesten) LED Streifen nutzen und diesen als zusätzliche Beleuchtung nutzen. Allerdings soll die künstliche Beleuchtung nur angeschaltet werden, wenn es dunkel ist. Daher nutzen wir einen Lichtsensor, der einen analogen Helligkeitswert ausgibt, welchen wir mit einem MCP3008 ADC auslesen können.

Alternativ gibt es auch Lichtsensor Module, welche bereits einen digitalen Wert ausgeben, ob der Helligkeitswert über/unter einem Schwellwert liegt. Falls du diesen nutzen willst, so musst du den Code etwas anpassen.

Der MCP3008 IC hat 8 Eingänge, an denen analoge Signale ausgelesen werden können.  Zunächst schließen wir alles an:

RaspberryPi MCP3008
Pin 1 (3.3V) Pin 16 (VDD)
Pin 1 (3.3V) Pin 15 (VREF)
Pin 6 (GND) Pin 14 (AGND)
Pin 23 (SCLK) Pin 13 (CLK)
Pin 21 (MISO) Pin 12 (DOUT)
Pin 19 (MOSI) Pin 11 (DIN)
Pin 24 (CE0) Pin 10 (CS/SHDN)
Pin 6 (GND) Pin 9 (DGND)

Einen der 8 Kanäle nutzen wir für den Lichtsensor (Kanal 0). Diesen schließen wir wie in der Abbildung gezeigt über einen Pull-Up Widerstand an. Weiterhin schließen wir das Relay an (VCC an 5V, GND an GND und z.B.IN1 an GPIO17). Falls du den Raspberrry Pi über den L7805 mit Strom versorgst, so kannst du die 5V Spannung auch direkt von dort nehmen.

Auf der anderen Seite des Relais kommt an den mittleren Anschluss der Pluspol der 12V Verbindung und an den unteren die Verbindung (+) zur LED. GND des LED Streifens wird ebenfalls an GND des Steckers angeschlossen.

Zunächst laden wir eine Datei mit einer Python Klasse für den MCP3008, die wir einbinden können:

wget https://raw.githubusercontent.com/tutRPi/Raspberry-Pi-Greenhouse/master/MCP3008.py

Nun erweitern wir wieder den Code:

 

 

Automatische Bewässerung

Kleine 12V Pumpe zum Bewässern der Pflanzen.

Die Bewässerung anhand der Bodenfeuchtigkeit ist das Kernelement des Gewächshaus. Dazu benötigen wir die Tauchpumpen und für jede Pumpe einen Schlauch sowie ein Relais. Die Bodenfeuchtigkeitssensoren werden über den vorher angeschlossenen MCP3008 ausgelesen.

Da diese Minipumpen ebenfalls mit 12V betrieben werden, werden ebenfalls Relais benötigt. In meinem Fall habe ich zwei Pumpen (jeweils eine pro Blumenkasten). Falls du mehr als 3 nutzt, so solltest du ein Relais Board mit mehr Kanälen wählen.

Zunächst befestigen wir den Schlauch an der Pumpe. Neben dem Frühbeet habe ich einen Eimer mit Wasser gestellt. Der Schlauch sollte lang genug sein, um von diesem Eimer bis zum Ende des Blumenkastens zu gelangen. Das Ende des Schlauches habe ich mit etwas Heißkleber abgedichtet und stattdessen alle 10-15cm kleine Löcher in den Schlauch gebohrt. Da der Druck durch die Pumpe ansteigt, sollten die Löcher nur sehr klein sein. Ich habe eine Bohrstärke von 2mm genutzt.

Anschließend habe ich den Schlauch an den Rand des Blumenkastens befestigt. Auf der jeweils anderen Seite eines Lochs habe ich einen Bodenfeuchtigkeitssensor gesetzt. Später wird die durchschnittliche Bodenfeuchtigkeit berechnet und anhand dessen entschieden, ob gegossen werden sollte, oder nicht. Die analogen Pins der Bodenfeuchte-Sensoren kommen jeweils an den MCP3008. Über einen 10k Ohm Widerstand führt jeweils außerdem eine Leiterbahn zu GND.

Falls du mehr als 7 Sensoren nutzt, benötigst du einen weiteren MCP3008 ADC (der erste Platz ist für den Lichtsensor reserviert). Außerdem wird jeder Sensor mit 3.3V des Raspberry Pi’s versorgt:

Die GPIOs, welche die Relais steuern kannst du ebenfalls in den Einstellungen am Anfang der Datei einstellen. Bei meinen beiden Pumpen sind dies GPIO 23 und 24.

Hier noch der entsprechende Code:

 

Belüftung

Je nach Frühbeet oder Gewächshaus sind mehrere aufklappbare Fenster vorhanden. Bei einem Frühbeet sind es normalerweise nicht mehr als zwei. Um so ein Fenster zu öffnen nutze ich einen Servo, an dessen Achse ein längerer Holzstab befestigt ist. Im Anfangszustand sollte der Winkel 0° betragen. Falls du dir unsicher bist, solltest du den Servo einmalig per Skript auf 0° stellen und erst dann befestigen:

Der Servo wird an der Innenseite mit starkem doppelseitigen Klebeband angebracht.

Zur Steuerung dient der Temperaturwert innerhalb. Dafür müssen wir noch den DHT11 Temperatursensor noch an GPIO 27 anschließen, wohingegen der Servo Motor an GPIO 22 kommt. Da der Motor wahrscheinlich mehr als 3.3V braucht (siehe im Datenblatt nach, falls du unsicher bist), schließen wir diesen an die 5V Spannung an:

Ich habe den DHT Sensor einfach an dem wasserfesten Gehäuse angebracht (nächster Punkt). Um die Temperatur zu ändern, bei der die Luke geöffnet werden soll, kannst du die anfangs angelegten Einstellungen verändern.

Außerdem muss der Code natürlich noch erweitert werden:

Falls du Probleme beim Auslesen hast („ImportError: No module named Raspberry_Pi_Driver„), hilft eventuell dieser Post. Alternativ kannst du auch GPIO 4 verwenden, welcher in meinem Aufbau noch frei ist.

 

Wasserfestes Gehäuse & Befestigung

Im letzten Schritt der Montage packen wir die wichtigen Steuerungselemente in ein wasserfestes Gehäuse. Hier sollte das Raspberry Pi sowie die Relais und alles weitere, was wasserempfindlich ist hinein. Ich habe an die untere Seite ein Loch gebohrt und alle Kabel, welche hinein oder hinaus müssen, dadurch geführt.

Außerdem bietet es sich an die Komponenten auf eine Lochrasterplatine zu löten, sobald alles einmal getestet wurde.

Nichtsdestotrotz sollte die Elektronik und die potentiell gefährdeten Anschlüsse vom Wasser fern gehalten werden. Am besten wählst du einen überdachten Bereich aus.

 

Raspberry Pi Gewächshaus in Betrieb nehmen

Nachdem wir nun alle Komponenten angeschlossen und angebracht haben, wollen wir es nun automatisch arbeiten lassen. Dazu ergänzen wir das Skript, indem wir die angelegten Funktionen der Reihe nach aufrufen:

Übrigens: Falls du alle vollständigen Dateien auf einmal herunterladen möchtest, kannst du dies über meine GitHub Bibliothek:

git clone https://github.com/tutRPi/Raspberry-Pi-Greenhouse

 

Damit das Skript automatisch alle 10 Minuten aufgerufen wird, nutzen wir Cron:

crontab -e

Hier fügen wir am Ende eine Zeile hinzu, wodurch unser Skript alle 10 Minuten aufgerufen wird:

*/10 *    * * *   sudo python /home/pi/Raspberry-Pi-Greenhouse/greenhouse.py > /dev/null 2>&1

Mit STRG+O speichern wir und kehren mit STRG+X zurück ins Terminal.
Übrigens: Den absoluten Pfad eines Verzeichnisses findest du, indem du mit cd dorthin wechselst und anschließend pwd eingibst.

Nun musst du nichts weiter machen, als zu warten. Um Strom zu sparen, kannst du das WLAN und weitere nicht benötigte Services deaktivieren.

 

Mögliche Erweiterungen des Raspberry Pi Gewächshauses

Auch wenn schon einiges vorhanden ist, kann man sicherlich noch einiges mehr hinzufügen. Mir sind folgende Punkte eingefallen, wovon ich bei Bedarf auch das ein oder andere umsetzen kann. Wer weitere Ideen hat, kann gerne einen Kommentar hinterlassen.

  • Wasserfüllstand: Zwar bewässern wir die Pflanzen automatisch, allerdings muss immer noch per Hand Wasser in den Eimer nachgegossen werden. Mit einer Füllstandsmessung könnte man sich z.B. per Telegram App benachrichtigen, sobald Wasser nachgefüllt werden muss. Alternativ kann man auch eine Warnleuchte (LED) anbringen.
  • Luftfeuchte messen: Der DHT11 bzw. DHT22 Sensor kann neben der Temperatur auch die Luftfeuchtigkeit messen. Dies nutzen wir allerdings im Moment nicht. Denkbar wäre, dass man die Luftfeuchtigkeit mit Wasserspritzern auf ein bestimmtes Level bringt. Wobei dies natürlich abhängig von den Pflanzen ist.
  • Heizen: Gerade im kälteren Frühjahr oder im Herbst kann es auch mal kühler werden. Um optimale Verhältnisse für die Pflanzen zu schaffen, kann man auch die Luft im Gewächshaus heizen.
  • Aktiv kühlen: Bisher kühlen wir nur passiv (Fenster auf/zu). Durch einen Lüfter könnten wir bei hohen Temperaturen zusätzlich auch noch aktiv kühlen.
  • LCD Anzeige: Daneben könnten wir außerdem noch eine Anzeige per LCD Display bauen, sodass wir die aktuellen Daten auch auf einem Bildschirm angezeigt bekommen.

PS: Ihr seid gerne dazu eingeladen Bilder eures automatischen Raspberry Pi Gewächshauses bzw. Frühbeetes zu verlinken.

74 Kommentare

  1. Hallo,
    Habe mir gerade Dein Tutorial angesehen.
    Das ist absolut genial und zwar deshalb weil ich schon lange so etwas suche.
    Nur —– wie visualisierst Du dieses Projekt.
    Ich habe in meinem gewächshaus HM Temperaturfühler die ich in Fhem darstelle.
    Könnte dein Projekt ebenfalls in Fhem implementiert werden?
    Gruß Michael

    Antworten
    • Hi Michael,
      danke 🙂 was meinst du mit visualisieren? Ich lasse mir die Daten nirgends anzeigen, da ich auch die Wifi Verbindung gekappt habe. In der Box befindet sich nur ein Raspberry Pi Zero, wobei das Signal da drin sowieso sehr schlecht ist. Du könntest sicherlich die Daten auch loggen oder anderweitig speichern, falls sie dich zur Überwachung interessieren.

      Antworten
  2. Hallo Felix,

    super Aktion an der du da dran bist. Werde ich im Sommer auch mal angehen.
    Zur Bewässerung von Zimmerpflanzen habe ich lange nach einer guten Lösung als Bodenfeuchtesensor gesucht und bin letztendlich beim Giess-O-Mat-Sensor gelandet :
    ramser-elektro.at/shop/bausaetze-und-platinen/giess-o-mat-sensor-bausatz/

    Details habe ich hier gefunden:
    https://www.mikrocontroller.net/topic/335407

    Dieser arbeitet kapazitiv und löst sich daher nicht auf. Ich denke gerade wenn es um Essen geht, möchte man keine Metallverbindungen in der Erde haben.

    Hast du eine Beleuchtung mit LEDs schon getestet? Ich hätte jetzt erwartet, dass man spezielle Pflanzenlampen benötigt, die die richtige Wellenlänge ausstrahlen.

    Danke für das tolle Tutorial!

    Gruß Wallace

    Antworten
    • Hi Wallace,
      ich muss dazu sagen, dass ich die Erfahrung (noch) nicht gemacht habe, aber sah, dass es sehr unterschiedliche Bodenfeuchtigkeitssensoren gibt (auch was die Qualität angeht).
      Auf die genauen LED Spezifikationen habe ich auch nicht all zu sehr geachtet. Da ich kein Botaniker o.ä. bin ist mein Wissen in dem Bereich auch nur begrenzt. Die Motivation war eher, falls es einmal eine kurze Weile sehr bewölkt ist, weiter genug Helligkeit zu haben. Als Dauerlösung hatte ich es nicht gedacht (daher mit Fotowiderstand), aber kann bestimmt auch so umgesetzt werden. Andererseits kosten spezielle Pflanzenlampen sicherlich auch einiges mehr als die 5-10€, welche die 12V LED gekostet hat.
      LG, Felix

      Antworten
  3. Hallo Felix,
    Danke für dein Tut. Es gibt mir neue Ideen zum Basteln.
    Als „Umsteiger“ von Homematic zu FHEM bin ich wie auch Michael an einer Visualisierung interessiert.
    Aktuell bewässere ich meine Balkonkästen und die restl. Pflanzen ohne Bodenfeuchteeinfluss, gesteuert über 4Kanal HM-Schaltakor und 3 Magnetventilen (3 Bewässungskreise) plus 1 Düngerbeimischpume [nur sonntags :-)]
    Zwecks Bodenfeuchte habe ich mal eine Idee mit einem DHT22 in einem kleinen Becher sehen, der verkehrtherum auf dem Boden aufliegt und somit indirekt und metallfrei misst.
    Leider tue ich mich mit den DHT22 in FHEM noch sehr schwer, DS18B20 hingegen sind ein Kinderspiel.
    Das Wasser pumpe ich aus meiner Zysterne (HM-Schaltsteckdose) und den Wasserstand prüfe ich mit dem HM-Füllstandssensor (geht gewiss per Ultraschall viiiel billiger).
    Pflanzentechnisch gieße ich Tomaten und Paprika (saufen beide viel), die Balkonkästen, Himbeere, etc und den Vorgarten – im letzten Jahr war meine Frau nach 4 Testwochen sehr zufrieden 🙂

    Antworten
  4. Sehr schönes Tutorial, auf so etwas habe ich lang gewartet. Mich würde die Visualisierung und steuerung über eine Weboberfläche interessieren. Ich hoffe das zu der PWM steuerung von Lüftern noch ein Tutorial kommt, da ich bis jetzt keine möglichkeit gefunden habe einen 230v ventilator über den raspberry zu dimmen.

    Antworten
  5. Hallo Felix,
    wieder mal ein sehr gutes Tutorial! Danke dafür, auch weil ich gerade auch an dergleichen dran bin und so ein bissel „spicken“ kann :D. Ich plane aber noch mit zwei Lüftern, einer Wärmequelle (Ich habe noch keine wirkliche Ahnung was ich da nehme), „Fullspectrum“-Licht, History-Datenbank und „Fotoüberwachung“

    Antworten
  6. Hi Felix,
    mein minigewächshaus ist bereits in Betrieb, alles aus Deinen Tutorials und Codeschnipseln zusammen gebastelt.
    Die Codes unübersichtlich und unsortiert, die Lötarbeiten eher künstlerisch und die Bauweise nicht sehr hübsch. Aber es läuft.
    Dieses Tutorial ist mal wieder Klasse und wesendlich aufgeräumter.
    Einiges kann ich aus eigener Erfahrung schonmal beisteuern.
    Der Bodenfeuchtesensor mit den 2 „Forken“ birgt doch einige Risiken, das ist bedingt durch die entstehende Elektrolyse. Den chemischen Aspekt (vllt. für Pflanzen schädliche Metallverbindungen) mal ausser Acht gelassen, kann der Sensor recht früh ausfallen, da bei fortschreitender Zersetzung der Widerstand bis stetig bis zur Unendlichkeit steigt. Dieses führt dann schlussendlich zur Dauerbewässerung, was zumindestens auf der Fensterbank im Minigewächshaus oder ähnlichem zu ungewollten Ergebnissen führt, zumindestens was den Teppich angeht.
    Wenn der Sensor doch zum einsatz kommt, sollte man ihn vllt durch einen Transistor ausserhalb der Messungen Stromlos legen und ab und zu die Polung des Fühlers durch umstecken drehen. So verlängert man die Lebensdauer vllt um einiges. Ich für meinen Teil Bewässer wieder eigenhändig, wenn ich das ganze nochmal automatisieren würde, wäre meine Wahl ein kapazitiver Sensor, wenn ich sogar in Verschwendung übergehe, würde ich den Vegetronix VH-400 nehmen, der funzt auch über den mcp3008.

    Beim DHT22 fiel mir auf, daß er sich nach unterschiedlich langen fehlerfreien Perioden aufhängt.
    Die Hänger ließen sich nur durch Stromlos legen beheben, ein Reboot reichte nicht aus. Von den im Netz befindlichen Lösungen, würde ich warschl. auch eine Transistorschaltung zum gelegentlichem Stromlos legen bevorzugen auch ein Kondensator zum glätten soll helfen. Das Hauptproblem des Aufhängens ist nicht das ausbleiben von Daten, sondern, wie in meinem Fall, das Steuern einer Heizmatte, wenn diese durch ausbleiben von Werten auf dem Status Heizen stehen bleibt, reicht auch eine Minigewächshaus Heizmatte um Tomaten- oder Chilippflanzen zu garen. Das kann man Softwareseitig (wenn -kein Wert vom DHT- dann Heizmatte aus) lösen. Ich habe lieber gleich zum DS18B20 gegriffen, den gibt es auch in wasserdichter Ausführung , die man sonst auch durch Gefriebeutel, Silikon, Schrumpfschlauch oder ähnlichem selber hinbasteln könnte. Die Wasserdichte Version kommt mit 2m Kabel und zäpfchenänlicher Edelstahlsonde (Das Tutorial von Felix „Fiebermessen über ThingSpeak“ folgt bestimmt bald *grins).

    So, das war es erstmal auf die schnelle.

    MfG Hauschi

    Antworten
    • Hey Hauschi,
      danke für deine ausführlichen Infos!
      An welchem GPIO hattest du den DHT22? Ich habe nach einer Weile ähnliches Verhalten festgestellt. Dann habe ich aber GPIO4 genommen und seither keine Probleme (mehr).
      LG, Felix

      Antworten
      • Hi Felix,
        anfänglich auch an GPIO4, da hatte ich das Problem schon und zur Zeit an 17 (glaub ich) aber nur zur Informativen Wetteraufzeichnung. Da an 4 der DS18B20 fürs Gewächshaus hängt, irgendwie finde ich den, wenns nur um Temperatur geht auch besser und preislich ist das ja auch egal.

        LG Hauschi

      • Moin Felix,
        mein DHT läuft jetzt auch stabil…
        Die einzige Veränderung ist, daß zur zeit nur temp/Feuchtigkeit gemessen werden und keine relais geschaltet werden. kann das relais schalten vllt durch sowas wie spannungsschwankungen den DHT stören (stichwort kapazitive last)?
        hab da mal irgendwo irgendwas gelesen.

        MfG Hauschi

      • Wenns noch aktuell ist: Der Sensor kann manchmal nicht richtig ausgelesen werden, wenn der Pi sehr beschäftigt ist und keine Rechenpower mehr zur Verfügung hat. Das auslesen der DHT erfordert präzises Timing und wenn der Pi dabei gerade gestört wird, dann regnet es „None“ werte. Das der Pi keine Rechenpower mehr hat, geschieht unter anderem auch wenn der Strom zum rechnen Fehlt. Also sollten möglicht keine großen Ampere-Fresser, zur zeit der Messung, am pi hängen.

      • Stromfressende Geräte sollten sowieso immer über eine externe Stromversorgung gespeist werden 🙂

  7. Hallo,

    wäre es möglich das Ganze mit einer Solarzelle und einer Autobatterie zu erweitern?
    so wäre das Ganze autark und man müsste keine Kabel ziehen.
    hierzu wäre ein Tutorial klasse.

    gruß Bernd

    Antworten
    • Möglich ja, aber dafür ist ziemlich viel Zubehör nötig, was auch nicht all zu günstig ist. Ich kann aber leider nicht versprechen, dass dazu in naher Zukunft was kommt 🙁

      Antworten
    • vielleicht einen fertigen KFZ-Solarlader von Conrad oder Pollin, die Idee kam mir auch grade.
      Die Dinger muss es ja auch in versch. Größen oder Leistungsklassen geben.

      MfG Hauschi

      Antworten
  8. P.S.
    Hi Felix,
    würde der L7805 sich nicht auch für eine Neuauflage zum Thema USV eignen?

    So circa Kleines Batterieladegerät, kleiner Bleiakku, L7805.

    Antworten
  9. Wäre echt klasse, wenn man den Code für den kapazitiven Sensor als Alternative einfügen könnte,
    so könnte jeder verwenden was er möchte.

    Gruß Bernd

    Antworten
  10. Hallo,
    Ich habe folgendes Problem:
    Wenn ich das greenhouse.py script, welches ich mir von Github gedownloadet habe starte, sieht alles ganz OK. aus, doch der Schein trübt, denn es kommt zwar keine Fehlermeldung aber es passiert garnichts. Ob die Sensoren im Wasser stecken oder nicht, es fließt trotzdem kein Wasser, das Relais schaltet auch nicht. Es ist alles korrekt angeschlossen, das habe ich heute schon gefühlt 1000 mal geprüft! Die Sensoren lassen sich ansprechen und geben auch scheinbar richtige werte aus (Ich habe es mit dem Einzeltutorial welches ganz oben verlinkt ist versucht). Das Relais lässt sich auch schlaten, wenn ich ein LED-Blinklicht Skript starte. Die Hardware ist also OK.

    Ich benutze den Raspberry Pi 2 und die neuste Raspbian Pixel Version (frisch Installiert).

    Über sehr schnelle und kompetente Hilfe, würde ich mich sehr freuen!!!

    Vielen Dank!

    Antworten
      • Tut mir leid, ich weiß leider nicht wie das geht. Ich bin auch kein Profi.
        Ich möchte eigentlich kein Gewächshaus bauen, sondern nur eine automatische Bewässerungsanlage.

  11. Ist es villeicht möglich, dass du ein fertiges, funktionierendes Immage auf z.B Github hochlädst, wenn es geht?

    Vielen, vielen Dank!!!

    Antworten
  12. Vielen Dank für den Link, jedoch habe ich keine Zeit jetz die ganze Programmiersprache zu lernen, denn die bewässerungsanlage muss schnell fertig werden, ich baue sie nämlich im Auftrag meiner Oma und sie will jetzt in ein paar Tagen, lange in den Urlaub verreisen und das Gemüse muss gegossen werden.

    Antworten
  13. ok, mache ich.
    Ich will jetzt nur noch mal fragen, ob ich es richtig gemacht habe.
    Ich habe alle Pakete installiert und dann habe ich mir die Dateien einfach per git clone gedownloaded, dann bin ich in das heruntergeladene Verzeichnis gegangen, dann habe ich sudo python ./greenhouse.py eingegeben, ja und dann passiert nichts. Ich habe nichts an den Daten geändert! Habe ich evtl etwas falsch gemacht/vergessen?

    Antworten
    • Naja, du rufst eine Funktion auf (checkLight), die du gelöscht hast. Da bricht das Programm ab, bevor es überhaupt zum Bewässern kam…

      Antworten
  14. Hallo Felix,
    ich habe mir erst vor kurzem einen Raspberry zugelegt.. So ganz verstehe ich die einzelenen Komponenten leider noch nicht.
    Entschuldige bitte meine blöde Frage, wenn ich als Spannungsquelle den Mini-USB am Raspberry nutze, dann schließe ich ausschließlich die zwei Kabel (plus und minus) der Pumpe am Ausgang meines Relais an?

    Vielen Dank für das tolle Tutorial!

    Antworten
    • Du brauchst ein externes 12V Netzteil für die Pumpe, da der Pi nicht genug Strom liefert. Den Pi kannst du per zusätzlichem Micro USB Kabel und 5V Adapter versorgen.

      Antworten
  15. Hallo,

    mal eine Frage. Was mache ich falsch, wenn der L7805 brennend heiß wird? ich hab jetzt zweimal alles neu verkbelt und neue Bauteile genommen. Jedesmal muss ich den Stecker ziehen, so heiß wird das Teil. Aber ich habe mit einem Multimeter nachgemsssen. Der RPi bekommt 5V und aus dem Netzteil kommen 12V.

    Danke für die vielen tollen Tutorials!!!

    Antworten
    • Dass der L7805 heiß wird ist normal und es gibt auch Kühlkörper dafür. Normalerweise reicht es aber ihn an eine Metallplatte anzuschrauben, damit sich die Wärme besser verteilen kann (dafür das Loch oben).

      Antworten
  16. Hi, habs alles ein wenig anders verkabelt und muss zum Projekt eine Ausarbeitung schreiben, weshalb ich uch die Verschaltungen mit fritzing darstellen wollte. Wo hast du das Relais und den MCP3008 gefunden? 🙂

    Dankeschön!

    Antworten
  17. huhu
    nun ist meine frau bei dir auf dieses projekt gestoßen
    nach dem ich das ws2801 einigermassen fertig habe, gabe es doch glatt winter hausaufgaben 🙂
    das ganze solle nur feuchtigkeit messen und bewässern ….. und als bonus soll das ganze dann noch auf dem balkon und über solar laufen 😛 ich bin gestannt was ich aus deinem projekt zweck entfremden kann … bzw ob meine kentnisse dazu reichen
    hoffen wa ma das der winter sich ziehen wird
    doku wird bestimmt drüber folgen wenn ich soweit bin

    bis dahin auf viele weitere benutzerfreundliche tuts von dir

    und danke für deine eingesezte energie bei jedem deiner projekte
    lg björn

    Antworten
  18. Hi, ich habe bei mir gerade ein DS3231 anstatt einen DS1307 RTC rumliegen und wollte den für das Programm nehmen, doch bricht es immer an der Zeile:

    def readTime():
    try:
    ds1307 = SDL_DS1307.SDL_DS1307(1, 0x68)
    return ds1307.read_datetime() ←←←←←←←ab..

    Ich dachte die beiden nutzen eigentlich die gleichen Schnittstellen. Würde das irgendwie mit dem DS3231 noch gehen?

    Antworten
    • Oder ich kann auch die Zeit vom System nehmen, denn die kann ich bei jedem Boot vom DS3231 lesen. Also müsste ich wissen wie ich für die „checkLight“ Fuktion den timestamp aus dem System bekomme. Und wie du diesen verwendest 🙂

      Antworten
      • ok ich habe es jetzt geschafft die Zeit aus dem System zu holen timestamp = time.strftime(„%H“) damit kann ich dann arbeiten. Der DS1307 stellt jetzt die richtige zeit beim boot ein. Danke nochmal!

  19. Hallo Felix
    Ich sitze jetzt schon fastr eine Woche daran und es funktioniert aber auch garnichts. Alle Teile so wie Du bestellt und verbaut. Was kann ich tun bzw. kann man nicht die einzelnen Schritte/Funktionen im einzelnen prüfen. Ich weiss mit keinen rat mehr
    Gruß Knut

    Antworten
    • Was genau funktioniert nicht? Zu fast jedem der Komponenten besteht ja ein eingenständigen Tutorial – hast du diese bereits ausprobiert getestet?

      Antworten
  20. Hallo Felix. Vielen Dank für Dein Interesse. Ich habe nun heute morgen alles wieder zerlegt und habe nur das Tutorial „Bodenfeuchtigkeit mit dem Raspberry Pi messen“ eingerichtet. Obwohl mir dieser Aufbau als doch ziemlich einfach erscheint, funktioniert wieder einmal garnichts. Als Sensor benutze ich den „Boden Hygrometer Luftfeuchtigkeit Detektor“ Ich benutze den Raspberry 3 mit einem zusätzlichem Gpio Extensions Board an einem Bread Bord. Mit stellt sich die Frage: Wie lautet der Befehl, um die Sensoren auszulesen. Damit ich überhaupt mal eine Reaktion von den sensoren erhalte.
    Gruß Knut

    Antworten
    • Wenn du einen analogen Sensor verwendest (der Name sagt leider nichts über den Sensor), musst du diesen über einen ADC auslesen. Die Befehle dafür sind im Tutorial beschrieben.

      Antworten
  21. Hallo Felix. Vielen Dank. Habe jetzt Daten bekommen. Wenn ich nun die Funktinen Licht nicht benötige, kann ich in der greenhouse.py die Zeilen Licht stehen lassen und nur in dieser
    die Zeile CheckLigh löschen. oder müssen auch dort die Zeilen gelöscht werden?

    if __name__ == '__main__':
        try:
            GPIO.setwarnings(False)
            GPIO.setmode(GPIO.BCM)
     
            # execute functions
            checkLight()
            wateringPlants()
            checkWindow()
        except:
            GPIO.cleanup()

    Mit freundlichen Grüßen
    Knut Dorendorff

    Antworten
  22. Das heisst, wenn ich nur die Belüftung un die Bewässerung möchte, kann ich zunächst trotzdem alle Dateien so belassen und dennoch sollte alles funktionieren?

    Gruß Knut

    Antworten
  23. Hallo an alle,
    habe nun einige Fortschritte gemacht. Jetzt hänge am Cronjob um die greenhouse.py zu starten. Per direktaufruf läuft das Programm aber bei Cronjob keine Reaktion.
    Kann mir hier jemand helfen?

    Antworten
  24. Hallo Felix,
    bei Auslesen der Temperatur mit dem DHT22 und dem Treiber Adafruit, erscheint die Fehlermeldung No module named Adafruit_DHT. Ich habe aber alles so installiert wie in Deiner Beschreibung. Gelesen habe ich, dass das Problem nicht ganz unbekannt ist. Eine Lösung konnte ich aber nicht herauslesen. Was kann ich tun?
    Gruß Knut

    Antworten
  25. Guten Abend,
    Ich habe ein Porblem mit dem MCP3008.
    Wenn ich das „greenhouse.py“ Programm starten möchte, bekomme ich immer folgende Fehlermeldung:

    Traceback (most recent call last):
    File „/home/pi/Raspberry-Pi-Greenhouse/greenhouse.py“, line 2, in
    From MCP3008 import MCP3008
    ImportError: No module named MCP3008

    LG

    Antworten
    • Hallo Manu,

      hat sich dein Problem bereits gelöst?
      Du musst hierzu die MCP3008.py File aus dem Git-Repository laden. Beachte, dass die Datei im selben Verzeichnis wie die greenhouse.py liegt. Das Script versucht eine Datei einzubeziehen, die nicht vorhanden ist.

      LG

      Antworten
  26. Ui, das sieht doch schon echt gut aus. Ich habe heute auch mal beschlossen etwas vergleichbares zu machen. Nur mit einer Pumpe für mehrere Kästen. Wasserleitung dann über Magnetventile steuern. Will ein System, was alle Kästen/Töpfe auf Balkonien überwacht. Werde mich wohl anhand deines Tutorials ranhangeln. Danke für dein cooles Tutorial.

    Antworten
  27. Hallo Felix,

    erstmal vorweg finde ich deine Arbeit die du in deine Tutorials steckst super!

    Ich habe jedoch noch eine Frage. Ich verwende den Bodenfeuchtigkeitssensor von Sparkfun (https://www.sparkfun.com/products/13322). Herstellerangabe ist hier, dass der Sensor sowohl unter 3.3V als auch 5V betrieben werden kann. Gehe ich strikt nach deiner Anleitung unter 3.3V bekomme ich Werte die meist zwischen 0 (im Wasserglas) und 700-800 für trockene Erde. Lasse ich den Sensor an der Luft (Erwartungswert -> 1023?!), erhalte ich jedoch den Wert 0.
    Kannst du mir sagen warum?

    LG

    Antworten
  28. Hallo erst mal großes Lob an dein Tutorial 🙂
    Ich hab ne Frage zu der Relaiskarte ich kann diese am Eingang nur mit der Masse schalten und nicht mit 3,3V am GPIO Ausgang 24. Hat die Relaiskarte einen Makken oder ist das so üblich? Wenn nein wie kann ich dann trotzdem das Relais mit dem Ausgang anteuern?
    Gruß
    Thomas

    Antworten

Hinterlasse einen Kommentar

Deine Email Adresse wird nicht veröffentlicht.

Blog abonnieren

Abonniere Raspberry Pi Tutorials, um kein Tutorial mehr zu verpassen!