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.
Übrigens: Als Erweiterung zu diesem Tutorial gibt es die Gartenbewässerung auch mit Website. Das Tutorial baut hierauf auf und ist sicherlich auch einen Blick wert.
Einkaufsliste
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:
- Frühbeet (z.B. 100×60 cm)
- Blumenkästen
- Raspberry Pi (Version egal)
- 12V DC Stromversorgung
- DC Power Jack Adapter
- 12V Tauchpumpe / Wasserpumpe für den Teich
- 10L oder 20L Eimer (mit Abdeckung)
- 7mm Schlauch (1.5-2m)
- RTC Modul DS1307
- MCP3008 ADC
- mehrere Bodenfeuchtigkeitssensoren (je 30-40cm einen)
- Servomotor
- Lichtsensor
- 12V LED Leiste
- Reed-Relais (min. 2)
- ggf. L7805 (alternativ: Stromversorgung über ein Micro USB Kabel)
- wasserdichtes Gehäuse (o.ä.)
- Isolierklebeband
- Jumper Kabel
- Mini Breadboard (oder Lochkarte zum löten)
- Samen (am besten niedrig wachsende Pflanzen: )
- Tomaten (Balconi Red), ebay
- Pflücksalat (ebay)
- Radieschen (ebay)
- falls du weitere Sorten kennst, würde ich mich über einen Kommentar freuen
- Pflanzenerde + ggf. Düngemittel
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:
- L7805 Regulator
- 2x 10μF Kondensator
- optimal: 470Ω Widerstand
- optimal: grüne LED
Inhaltsverzeichnis:
- Installation der benötigten Bibliotheken
- Stromversorgung über GPIOs
- Komponenten
- Raspberry Pi Gewächshaus in Betrieb nehmen
- Mögliche Erweiterungen
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:
Bevor 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:
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
import RPi.GPIO as GPIO import Adafruit_DHT from MCP3008 import MCP3008 import SDL_DS1307 import time ################################################################## ##################### CUSTOMIZEABLE SETTINGS ##################### ################################################################## SETTINGS = { "LIGHT_GPIO": 17, # GPIO Number (BCM) for the Relay "LIGHT_FROM": 10, # from which time the light can be turned on (hour) "LIGHT_UNTIL": 20, # until which time (hour) "LIGHT_CHANNEL": 0, # of MCP3008 "LIGHT_THRESHOLD": 500, # if the analog Threshold is below any of those, the light will turn on "DHT_GPIO": 27, # GPIO Number (BCM) of the DHT Sensor "DHT_SENSOR": Adafruit_DHT.DHT22, # DHT11 or DHT22 "TEMP_THRESHOLD": 23.0, # in Celcius. Above this value, the window will be opened by the servo "SERVO_GPIO": 22, # GPIO Number (BCM), which opens the window "SERVO_OPEN_ANGLE": 90.0, # degree, how much the servo will open the window "PLANTS": [ { "NAME": "Tomaten", "MOISTURE_CHANNELS": [1, 2], # of MCP3008 "MOISTURE_THRESHOLD": 450, # if the average analog value of all sensors is above of this threshold, the Pump will turn on "WATER_PUMP_GPIO": 23, # GPIO Number (BCM) for the Relais "WATERING_TIME": 10, # Seconds, how long the pump should be turned on }, { "NAME": "Salat", "MOISTURE_CHANNELS": [3, 4], "MOISTURE_THRESHOLD": 450, "WATER_PUMP_GPIO": 24, "WATERING_TIME": 12, }, ] } ################################################################## ################# END OF CUSTOMIZEABLE SETTINGS ################## ################################################################## |
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 |
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
):
66 67 68 69 70 71 72 |
def readTime(): try: ds1307 = SDL_DS1307.SDL_DS1307(1, 0x68) return ds1307.read_datetime() except: # alternative: return the system-time: return datetime.datetime.utcnow() |
Speichere mit STRG+O.
Helligkeit anpassen
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:
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
def checkLight(): timestamp = readTime() if SETTINGS["LIGHT_FROM"] <= timestamp.hour <= SETTINGS["LIGHT_UNTIL"]: # check light sensors adc = MCP3008() # read 10 times to avoid measuring errors value = 0 for i in range(10): value += adc.read( channel = SETTINGS["LIGHT_CHANNEL"] ) value /= 10.0 if value <= SETTINGS["LIGHT_THRESHOLD"]: # turn light on GPIO.setup(SETTINGS["LIGHT_GPIO"], GPIO.OUT, initial=GPIO.LOW) # Relay LOW = ON else: # turn light off GPIO.setup(SETTINGS["LIGHT_GPIO"], GPIO.OUT, initial=GPIO.HIGH) else: # turn light off GPIO.setup(SETTINGS["LIGHT_GPIO"], GPIO.OUT, initial=GPIO.HIGH) |
Automatische Bewässerung
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:
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
def wateringPlants(): # read moisture adc = MCP3008() for plantObject in SETTINGS["PLANTS"]: value = 0 for ch in plantObject["MOISTURE_CHANNELS"]: # read 10 times to avoid measuring errors v = 0 for i in range(10): v += adc.read( channel = ch ) v /= 10.0 value += v value /= float(len(plantObject["MOISTURE_CHANNELS"])) if value > plantObject["MOISTURE_THRESHOLD"]: # turn pump on for some seconds GPIO.setup(plantObject["WATER_PUMP_GPIO"], GPIO.OUT, initial=GPIO.LOW) time.sleep(plantObject["WATERING_TIME"]) GPIO.output(plantObject["WATER_PUMP_GPIO"], GPIO.HIGH) |
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:
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
def checkWindow(): # read remperature humidity, temperature = Adafruit_DHT.read_retry(SETTINGS["DHT_SENSOR"], SETTINGS["DHT_GPIO"]) GPIO.setup(SETTINGS["SERVO_GPIO"], GPIO.OUT) pwm = GPIO.PWM(SETTINGS["SERVO_GPIO"], 50) if temperature > SETTINGS["TEMP_THRESHOLD"]: # open window angle = float(SETTINGS["SERVO_OPEN_ANGLE"]) / 20.0 + 2.5 pwm.start(angle) else: # close window pwm.start(2.5) # save current time.sleep(2) pwm.ChangeDutyCycle(0) |
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:
138 139 140 141 142 143 144 145 146 147 148 149 |
if __name__ == '__main__': try: GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) # execute functions checkLight() wateringPlants() checkWindow() except: GPIO.cleanup() |
Ü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.
- Überwachung per Website: Zusätzlich kannst du die Automatisierung auf einer Webseite mit allen Infos zu deinen Pflanzen anzeigen.
- Genauere Erdmessung mit Xiaomi Mi Flora: Die Feuchtigkeitssensoren haben den Nachteil, dass sie leicht erodieren und nicht all zu genau sind. Inzwischen hat Xiaomi einen Pflanzensensor vorgestellt, den MiFlora, der kabellos viele weitere Daten erheben kann.
- 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.
123 Kommentare
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
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.
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
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
Ohne hier Schleichwerbung machen zu wollen gibt es eine Möglichkeit eine Pflanzlampe LED für ich meine E14 (6W)für 9,99 und E27(10W) für 14,99 Euro beim nordischen Einrichtungshaus zu bekommen. Hier könnte man sogar darüber nachdenken diese über eine Funksteckdose bzw. Zeitschaltuhr zusätzlich laufen zu lassen.
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 🙂
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.
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“
Ich würde mich über Fotos freuen 🙂
Eine GUI sollte nicht all zu schwer mit einem Node.JS Server o.ä. realisierbar sein.
Hallo Felix,
nach einigen Arbeitsstunden bin ich fertig. Es fehlt nur noch die Programmierung und die Bewässerungsanlage. Wo kann ich dir denn die Fotos hin Senden?
Gruß
Du kannst sie auf einem Bilderhoster wie bspw. http://www.directupload.net/ hochladen und hier als Kommentar verlinken.
LG, Felix
http://www.directupload.net/file/d/4743/aouadlex_jpg.htm
http://www.directupload.net/file/d/4743/gaa366uu_jpg.htm
http://www.directupload.net/file/d/4743/lutrxniz_jpg.htm
Was baust du alles an?
Hi Andreas,
Ich habe 3W Fullspectrum LEDs auf Starplatine genommen, ca. 1-2 EUR/Stück, die aber besser über einen Konstantstrom Treiber laufen sollten. Theoretisch kämen aber 4 Stück in Reihe auch gut mit 12V zurecht. Nur löten und verbauen muss man eben selbst.
Wenn du weiße LEDs nimmst kannst du blaue (Royal Blue/Königsblau 440-450nm) und rote (Deep Red ca. 660nm) zumischen. Die Wellenlänge ist recht wichtig. wenn du Zeit zum lesen hast google mal „lichtspektrum photosynthese“)
MfG Hauschi
Da sollen meine zukünftigen Bonsai’s die ersten Jahre verbringen 😀
Hallo Andreas habe die gleichen gewächshäuschen wie du auf der Fensterbank mit direkter sonne wollte jetzt auch automatisieren da ist mir aufgefallen das dir Kunststoff Scheiben milchig geworden sind ist das bei dir auch der Fall
Brgs. Michael
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
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
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 🙂
Hallo zusammen,
Ich bräuchte mal eure Hilfe ich habe ebenfalls ein Gewächshaus gebaut. Richtig verkabelt etc. Jedoch fängt die Pumpe nicht an zu pumpen wenn ich die das Gewächshaus inbetrieb nehme.
Stehe gerade auf dem Schlauch da ich nicht weiß wo mein fehler sein könnte.
Vlt habt ihr ja eine Idee.
Danke im Voraus
Grüsse
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
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 🙁
Moin Moin ich bräuchte Unterstützung zum Aufbau des Gewächshaus
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
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.
Muss einen meiner Vorredner zustimmen:
Verwirf den Bodenfeuchtesensor.
Der ist nur Schrott.
Nimm einen kapazitiven !
Wie ich auf der Ramser Webshopseite gesehen habe gibts den bereits
vergossen:
https://www.ramser-elektro.at/shop/bausaetze-und-platinen/giess-o-mat-sensor-bausatz/
Da spart man sich einiges an Zeit, Nerven und Geld.
Die Vergussmassen sind nicht billig !!!!
Gibt es übrigends auch hier:
shop.thomasheldt.de/product_info.php?info=p90_giess-o-mat-sensor-kit.html
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
Ich habe den Sensor nicht und daher auch keinen Code. Wenn es jemand bereits angepasst hat kann ich es gerne updaten.
Das ist schade.
So teuer ist er nicht, aber dafür hält er ewig!!!
Ich habe den Sensor inzwischen gekauft und ein Tutorial daraus gemacht 😉
Kapazitiven Erdfeuchtigkeitssensor „Giess-o-Mat“ am Raspberry Pi auslesen
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!
Hast du dir die ausgelesenen Werte loggen lassen bzw. den Teil einfach mal per Hand in der Python Konsole ausprobiert?
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.
Woran hakt es? Wenn du mit der Programmierung erst beginnst, so kannst du dir dieses Tutorial ansehen.
Ist es villeicht möglich, dass du ein fertiges, funktionierendes Immage auf z.B Github hochlädst, wenn es geht?
Vielen, vielen Dank!!!
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.
Schau es dir einfach mal an, es ist wirklich nicht schwer 🙂
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?
Hast du das Skript angepasst? Das musst du schon (GPIOs, Schwellwerte, etc). Dafür solltest du es aber erst auslesen.
Ja, so sieht es aus: https://pastebin.com/hX8r1fK8
Naja, du rufst eine Funktion auf (checkLight), die du gelöscht hast. Da bricht das Programm ab, bevor es überhaupt zum Bewässern kam…
Vielen herzlichen Dank!!!!!!!!
Es läuft!
Freundliche Grüße aus Schleswig-Hollstein!
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!
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.
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!!!
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).
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!
https://github.com/adafruit/Fritzing-Library/blob/master/parts/MCP3008%208-channel%2010-bit%20ADC.fzpz
Merci! Schönen Abend noch!
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
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?
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 🙂
Das wird nicht funktionieren. Die sind nicht kompatibel. Es gibt aber auf Github eine ähnliche Bibliothek für den DS1307.
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!
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
Was genau funktioniert nicht? Zu fast jedem der Komponenten besteht ja ein eingenständigen Tutorial – hast du diese bereits ausprobiert getestet?
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
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.
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?
Mit freundlichen Grüßen
Knut Dorendorff
Die Funktion kannst du stehen lassen, den Funktionsaufruf kannst du bei Bedarf löschen.
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
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?
Du kannst den Output mal loggen lassen (Ausgabe in Datei).
Vielen Dank. das hat sich bereits erledigt.
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
Hast du es über den Paketmanager oder per git installiert?
Hallo Felix. Per git
Gruss Knut
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
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
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.
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
Hast du einen Pull-Up Widerstand eingerichtet (großer Widerstand zu GND)?
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
Ja, das ist normal: Die schalten sich genau „umgekehrt“.
Hey,
ich hoffe ich darf das hier kommentieren bzw. fragen…Ich würde meinem Freund gerne einen Pi zu Weihnachten schenken. Er liebt basteleien & hat vor längerer Zeit mal erwähnt dass er gerne einen hätte zum programmieren.
Er würde sich dann gerne eine Art Bewässerungsanlage bauen, jedoch erstmal nur für eine Pflanze testen. So jedenfalls meine Idee 🙂
Es gibt ja unzählige Anleitungen und Tutorials jedoch hab ich keins für einen „Kleinbetrieb“ gefunden.
Könnte mir jemand schnell mal meine Einkaufsliste durchschauen ob ich da alles „richtig“ drin hab oder iwas vergessen habe bzw. falsch ausgewählt?
Wäre an Weihnachten ja total schrecklich wenn dann was fehlen würde bzw falsch wäre. Ich danke euch schonmal sehr!!! :thumbup:
Also für die Messung der Bodenfeuchtigkeit hätte ich jetzt das hier rausgesucht: (alles Amazon-Links)
Feuchtigkeitssensor: (2 in der engeren Wahl, geben beide etwas von ihren Bestandteilen in die Erde ab???)
Nummer 1:
https://www.amazon.de/gp/product/B00K67Z76O?ie=UTF8&linkCode=as2&camp=1634&creative=6738&creativeASIN=B00K67Z76O
Nummer 2:
https://www.amazon.de/Kuman-Feuchtigkeitssensor-Kompatibel-Automatisches-Bew%C3%A4sserungssystem/dp/B071LDS4T6/ref=sr_1_1?ie=UTF8&qid=1511786614&sr=8-1&keywords=moisture+sensor+arduino
Analog/Digital Umwandler:
https://www.amazon.de/Mikrochip-mcp3008-i-10-Bit-ADC-16DIP/dp/B013E30CO8/ref=sr_1_fkmr0_1?s=ce-de&ie=UTF8&qid=1511785769&sr=1-1-fkmr0&keywords=MCP3008-I%2FP+Microchip%2C+A%2FD-Wandler%2C+seriell%2C+10Bit%2C+8-Kanal%2C+SPI-Interface+DIP16
Female/Female Kabel:
https://www.amazon.de/Aukru-20cm-female-female-Steckbr%C3%BCcken-Drahtbr%C3%BCcken/dp/B00OL6JZ3C/ref=sr_1_1?ie=UTF8&qid=1511785950&sr=8-1&keywords=female+female+jumper+kabel
Steckboard + Zubehör:
https://www.amazon.de/Elegoo-Electronic-Breadboard-Kondensator-Potentiometer/dp/B01J79YG8G/ref=sr_1_6?ie=UTF8&qid=1511785990&sr=8-6&keywords=Breadboard
Bewässerung:
Pumpe:
https://www.amazon.de/Neuftech-Tauchpumpe-Wasserpumpe-Aquarium-Brunnen/dp/B018OYORI4/ref=sr_1_3?ie=UTF8&qid=1511787155&sr=8-3&keywords=12V+Mini+Pumpe
Schlauch:
https://www.amazon.de/Aerzetix-Meter-Benzinschlauch-Kraftstoffschlauch-Schl%C3%A4uche/dp/B00R2PXUB2/ref=sr_1_1?ie=UTF8&qid=1511787236&sr=8-1&keywords=7mm+schlauch
Relais:
https://www.amazon.de/Yizhet-Optokoppler-4-Channel-Modul-Brett-Raspberry-Blau/dp/B076VD1D28/ref=sr_1_2?ie=UTF8&qid=1511787306&sr=8-2&keywords=4+relais+modul
Jetzt steht da natürlich noch, dass die Minipumpe mit 12Volt betrieben wird. Heißt das, dass ich noch ein Netzteil zusätzlich brauche? Wäre dann folgendes vielleicht gleich besser?
https://www.amazon.de/Neuftech-Tauchpumpe-Wasserpumpe-Aquarium-Brunnen/dp/B01MQDKRXE/ref=sr_1_3?ie=UTF8&qid=1511787155&sr=8-3&keywords=12V%2BMini%2BPumpe&th=1
Ist das oben ausgewählte Relais das richtige? Oder würdet ihr ganz andere Sachen dazunehmen?
Ach & ich dachte ich besorge ihm dann dieses Starter-Set für den Pi: (das dürfte ausreichend sein, oder?) oder doch ohne schnick schnack nur den normalen Pi?
https://www.amazon.de/Vilros-Raspberry-Pi-Ultimate-Kit/dp/B01CYQJP9O/ref=sr_1_1?ie=UTF8&qid=1511787817&sr=8-1&keywords=raspberry+pi+3+ultimate+starter+kit
Danke für eure Hilfe!
LG Isi
Hallo Isi,
die Liste sieht soweit gut aus. ggf. holst du ihm einfach ein Starterkit, da ist schon vieles zum basteln dabei (gibt welche mit und ohne Sensoren). Statt den Feuchtigkeitssensor (Beide Produkte unter deinen Links sind gleich), kannst du auch so einen Sensor nutzen. Nimm am besten die zweite Pumpe inkl. Netzteil, damit spart er sich viel Fummelei.
LG, Felix
Vielen Dank für die schnelle Antwort!
Folgendes noch:
Als Sensor jetzt natürlich den Gies-o-mat mit frequenzteiler (wie in deinem Tutorial), brauche ich denn nun auch wieder einen A/D-Wandler ( sowas: https://www.amazon.de/Mikrochip-mcp3008-i-10-Bit-ADC-16DIP/dp/B013E30CO8/ref=sr_1_fkmr0_1?s=ce-de&ie=UTF8&tag=754-21&qid=1511785769&sr=1-1-fkmr0&keywords=MCP3008-I%2FP+Microchip%2C+A%2FD-Wandler%2C+seriell%2C+10Bit%2C+8-Kanal%2C+SPI-Interface+DIP16) oder fällt der mit dem Gies-o-mat als Sensor weg?
Wie sieht es denn mit dem Relais aus….
kann ich folgendes verwenden? https://www.amazon.de/Yizhet-Optokoppler-4-Channel-Modul-Brett-Raspberry-Blau/dp/B076VD1D28/ref=sr_1_5?ie=UTF8&qid=1511869979&sr=8-5&keywords=4+relais+modul
oder ist das ein falsches weil es 4 kanäle hat?
Danke für deine Hilfe
Liebe Grüße
Beim Giessomat brauchst du keinen AD Wandler, höchstens einen Frequenzteiler, aber den auch nicht unbedingt (siehe Beschreibung).
Du kannst jedes Relais nehmen, egal wie viele Kanäle hat. Die sind alle einzeln ansprechbar und es könnte sogar für spätere Projekte von Vorteil sein mehr als nur ein Relais zu haben.
LG, Felix
Super! Danke für deine noch schnellere Antwort! Jetzt ist Weihnachten gerettet 😉
Kein Problem, da wird sich einer freuen 🙂
Hallo, ich habe die Stromversorgung mit einem L7805, so wie du oben angegeben hast nachgebaut. Ich nutze ein 12v 6a Netzteil. 5v kommt an aber sobald ich den Raspberry einschließe erscheint ein gelber Blitz oben rechts am Bilschirm (Rasbian-Stretch) . Und die Spannung bricht ab. Was könnte ich falsch gemacht haben. Scheint ja so als ob nicht genügend Ampere vom Netzteil erhalte.
Ja, das klingt sehr danach. Hast du mal nachgemessen, wie viel ankommt?
Hallo Felix,
Mein Kollege und ich sitzen auch an einer automatischen Bewässerung, wir haben uns an deiner Anleitung orientiert. Wir haben nur leider ein Problem, da die Sensoren nur Feuchtigkeitswerte von 0, 64 und 254 ausgeben, auch wenn der Sensor an der Luft ist also komplett trocken sein müsste. Als wir die Sensoren mal abgeklemmt haben haben wir trotzdem Messwerte bekommen (die gleichen) und einen neuen Signalwandler gekauft, allerdings das gleiche Problem. Ich vermute mal nicht, dass drei Wandler und 5 Sensoren alle defekt sind, deshalb mal die Frage ob es da vielleicht bereits Hilfe gibt?
Danke schonmal für deine Hilfe und dein gutes Tutorial.
Du könntest es mal mit dem kapazitiven Sensor versuchen, der um einiges besser arbeitet als die resistiven.
Alles klar, wir würden nur gern wissen ob es an der Hardware liegt oder ob an unserem Aufbau etwas falsch ist. Würde dir ein Bild von unserem Aufbau weiterhelfen? Oder von unserem Code?
Danke für die schnelle Antwort gestern.
warum das —yes hinter update && upgrade ?
Bei mir reichte es immer auch ohne diese ergänzung.
Hallo Felix,
ich glaube, wurde schon mal angefragt, jedoch finde ich bisher nicht die explizite Lösung.. Ich versuche ein automatisiertes Gewächshaus in Betrieb zu nehmen. Anstelle der analogen Sensoren habe ich den kapazitiven Giesomat wie empfohlen genommen. Mit dem Tutorial habe ich ihn getestet. Liefert plausible Ergebnisse. Nun weiß ich leider nicht, wie ich mein python-skript anpasse, um mit dem kapazitiven Sensor zu arbeiten. Als der Bereich def wateringPlants() ändert sich ja. Ich habe ja keinen Analaog-digital wandler mehr.
Ich will es so programmieren, dass wenn ein bestimmter Schwellwert überschritten wird (Frequenz von 5000 Hz), das Relais schalten soll..
kannst du mir da helfen? das wäre super nett Will alles am kommenden We in Betrieb nehmen
Du kannst dazu z.B. os.system() nutzen.
Gibt es hier jemanden der ein fertiges script mit dem giess-o-mat sensor hinbekommen hat? Sitze seit 2 Tagen an m einem Setup und es will einfach nicht gelingen
Nimm das was bei diesem ramser shop angeboten wird und passe es auf den RPI an.
Hallo Felix,
vielen Dank für dein tutorial. Like! 🙂
Gibt es eine Möglichkeit, verschiedene Pflanzen getrennt zu bewässern, d.h. die eine zweimal, die andere nur einmal pro Tag?
Wäre sehr cool!
Du hast vergessen den DHT 11 bzw DHT 22 Sensor zu der Einkaufsliste hinzuzufügen.
Könnte man nicht das Konstrukt mit Sensoren ergänzen die Nährstoffe in der erde feststellen und bei Bedarf durch eine Pumpe diese dazu geben?
Hast du einen bestimmten Sensor im Sinn?
Guten Tag,
Da die Bodenfeuchtigkeitssensoren meist nicht wirklich gut sind habe ich mir einen Kapazitivensensor den ‚Moisture Sensor v1. 2‘. Nun stehe ich leider vor dem Problem Werte von diesem auszulesen. Hat einer von euch vielleicht eine Idee wie man das leicht hinbekommt.? Im internet ist es auch sehr schwierig darüber was zu finden 🙁
Ich hoffe ihr könnt mir weiterhelfen.
Hallo Nico,
hast du eine Lösung für das Problem gefunden? Ich stehe gerade vor dem selben.
Liebe Grüße,
Philip
Hi!
zu aller erst mal ein ganz großen dank an das tolle Tutorial.
Ich bin gerade drüber und scheitere leider schon an der Stromversorgung über GPIO.
Spannung genau 5 Volt… solange der Raspi nicht angesteckt ist. Dann fällt das ganze auf 4,95 Volt und der Raspi hängt in einer endlos Boot-schleife.
Eingesetztes Netzteil – 12 V / 3 A
Ein guter Rat?
Habe das gleiche Problem bei diversen Netzteilen:
1. Netzteil: Output: 12V, 1A
2. Netzteil: Output: 18-24V, 4,75A
Ich messe vor dem Pi 5V, allerdings dann weniger als 1A. Das ist definitiv zu wenig für den Pi.
Haben wir irgendwas falsch gemacht? Weißt du noch wie viel Ampere du vor dem Pi hattest, Felix?
Weiß ich leider nicht mehr aus dem Kopf, aber ich hatte auch einen Pi Zero genutzt, der sowieso weniger braucht.
Hallo ich hoffe dass mir jemand helfen kann bei mir kommt nur die Fehlermeldung
Traceback (most recent call last):
File „AutomatisiertesGewächshaus.py“, line 26, in
from MCP3008 import MCP3008
ImportError: No module named MCP3008
Hallo zusammen.
Danke für das klasse Tutorial!!
Hab mir für Weihnachten mal alle möglichen Komponenten bestellt und heute hab ich schon einen Teil bekommen.
Jetzt stellt sich mir nur eine Frage:
Das Relais verbinde ich mit dem Raspberry, die Pumpe steck ich an der Steckdose an. Aber wie verbinde ich das ganze denn miteinander??
Hallo Felix,
Hast Du Lust und Zeit dich an einem größeren Projekt zu beteiligen ?
Du hast ja meine email, bitte um Kontaktaufnahme 😉
Hallo zusammen,
vielen Dank für das tolle Tutorial.
Habe nur leider ein Problem/Verständnisfrage.
Wofür dient die IF Schleife:
if __name__ == ‚__main__‘:
Denke das diese auch bei mir das Problem ist warum mein Programm nicht startet.
Wenn ich die Codes einzeln starte, funktionieren sie einwandfrei.
Wenn ich sie wie im Tutorial beschrieben über die IF Schleife starten möchte tut sich garnichts.
Kann mir jemand erklären wofür diese da ist? Bzw kann ich sie auch weg lassen?
Zweites Problem liegt noch in der zeitliichen IF Schleife für die LEDs.
if SETTINGS[„LIGHT_FROM“] <= timestamp.hour <= SETTINGS["LIGHT_UNTIL"]:
Wenn ich diese im Code lasse gehen die LEDs auch nicht an ohne die Zeitabfrgae funktioniert es.
Könnte das daran liegen, dass ich noch kein RTC Modul angeschlossen habe?
Vielen Dank Vorweg
Gruß
Daniel
Hallo ,
klasse Tutorial, funktioniert nach und nach alles.
Eine Sache: nutze Raspbian stretch lite aktuellste Version (Dezember 2018).
Fuer den MCP3008 muss ich in MCP3008.py die Zeile mit max_speed_hz s.u. einsetzen
class MCP3008:
def __init__(self, bus = 0, device = 0):
self.bus, self.device = bus, device
self.spi = SpiDev()
self.open()
#die Zeile reingetan
self.spi.max_speed_hz=1000000
Gruss
Stefan
Hallo, besten Dank für dieses ausführliche Tutorial!
Ich habe vor, es als Basis zu nehmen, um eine ähnliche Anlage für meine Landschildkröten zu basteln. Sie leben in einem solchen Frühbeet und bei Ihnen muss man für eine Temperatur- und Lichtregulierung sorgen. Ich werde also keine Pumpe und keinen Feuchtigkeitssensor benötigen.
Ich bin gerade dabei, die Teile zu kaufen, die ich brauchen werde.
Worüber ich mir nicht sicher bin, ist die LED-Leiste. Ich sehe, die meisten solche Leisten haben eine 12V Stromversorgung. Wenn der PI selbst extern mit 12V versorg wird, könnte ich auch die LEDs aus dem Breadboard versorgen? Da bin ich mir unsicher und würde jede Unterstützung darüber sehr schätzen.
Und? Haben die Schildkröten das Experiment überlebt? 😜
Ich habe mit Interesse dieses Tutorial gelesen. Eine Frage die immer wieder auftauchte war die Stromversorgung (5V IC 7805) Ich würde folgendes empfehlen : DC DC Step Downwandlerz.B. https://www.ebay.de/itm/5A-DC-DC-LED-Schaltregler-Charger-Power-Step-Down-Module-mit-USB-Port-Voltmeter/272500585861?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m1438.l2649. Diese sind leistungsfähig genug um auch den PI 3 zu versorgen. Sie können an einer Solaranlage betrieben werden, sind gut einstellbar. Durch die einstellbare Strombegrenzung eignen sie sich auch als LED Treiber. Es gibt sie in verschiedenen Ausführungen. Dieses Modell hat den Vorteil einer USB Buchse. Ich habe schon etliche verbaut und bis dato nur gute Erfahrungen
Hallöle,
ich habe einen Pi zuhause und der liegt nur rum und da wollte ich dies Anlage nachbauen.
Nur nochmal im sicherzusgehen. Wenn ich eine Pumpe an das Relais schließe, schließe ich da die 12V Leitung an und dann verbinde ich eine Leitung (VCC) vom Relais zum Netzteil für die Pumpe und den Ground der Pumpe verlöte ich mit dem Ground des Netzetils ?
Hey,
wie viel hat das ganze Set-Up gekostet und wie viele Python Vorkenntnisse sind von nöten?
Ich will anfangen Python zu lernen, eignet sich dieses Projekt dafür?
Hallo Vincent,
Ich bin auch gerade dabei, das Projekt zu machen und ich hab inzwischen so 350€ ausgegeben, allerdings habe ich für das Projekt extra Platinen erstellt ( https://aisler.net/p/KBDKHGEW ; https://aisler.net/p/IEKSLRRS ) um dem Kabelgewirr zu entgehen. Wenn du auch die Platinen verwenden möchtest, dann beachte, dass ich den RTC nicht mit eingeplant hab.
MfG
Pascal
Hallo zusammen,
wozu wird bei der Automatischen Bewässerung der 10kOhm Widerstand benötigt? Sobald ich diesen Einsetze, bekomme ich mit Wasser fast die selben Ergebnisse wie ohne Wasser. Benutze ich keinen Widerstand, so bekomme ich deutliche Unterschiede beim Messen der Bodenfeuchtigkeit zwischen Wasser und Luft. Braucht man zwingend diesen 10kOhm Widerstand? Danke und viele Grüße!
Hallo Felix,
Ich habe mich an dein Projekt mal rangewagt, habe null Erfahrung von Python etc.
Deinen Code habe ich so verwendet wie er ist, nur den Aufbau nur mit Sensor und Pumpe gebaut und die nicht gebrauchten Funktionen rausgelöscht. Nun krieg ich aber das Programm nicht zum laufen, bzw. nicht einmal ein Signal vom Feuchtigkeitssensor rein. Habe das auch schon mit einem anderen Programm versucht, dort hat es auch keinen Wert ausgegeben. Ich weiß nicht wo der Fehler liegt, ob in Software oder Bauteilen. Wie kann ich prüfen ob der Feuchtigkeitssensor überhaupt einen Wert ausgibt?
LG, Valentin
Habe ein schönes Projekt gefunden, welches aber den kapazitiven Bodenfeuchte Sensor „Gies-O-mat“ einsetzt:
thomas-geers.de/gewaechshaus.html
Für alle, die es intressiert 😉
Hey, gutes Tutorial.
Wo liegt denn die optimale Bodenfeuchte für Tomaten? Alle reden über die Sensoren, aber keiner über den Wert, ab dem bewässert werden sollte und bis zu welchem Wert?
Danke und Gruß
Hallo Gemeinde,
kurz zu mir. Ich bin 40 Jahre alt, leidenschaftlicher Bastler und möchte hier etwas neues für mich entdecken. Ich beschäftige mich zur Zeit mit Raspberry und Python. Habe schon kleinere Programme von „hallo Welt“ bis Temp Anzeige auf einem Display hinbekommen. Ich bin wirklich blutiger Anfänger, finde aber das Projekt sehr ansprechend und würde es gerne mit einem Zimmergewächshaus starten. Ich habe mich Schritt für Schritt an die Anleitung gehalten. Ausgegrenzt was ich nicht brauche, wie zb. RTC und Beleuchtung.
Was sich mir noch nicht erschliesst ist, wie ich eine Programmabfolge starte.
Kurz zur Hardware: Raspberry PI3 model B. Verbaut werden soll ein DHT11 Feuchtigkeitssensor, ein Moisturesensor (die billigen, zum testen reichts), ein OLED 0,96 Display, ein 4er Relais und ein MCP3008. 2 Wasserpumpen und 2 Lüfter. Als Gewächshaus dienen 2 Zimmergewächshäuser von Dehner.Die Einspeisung vom Strom betreibe ich über ein Akkupack(12V) verteilt über Stepdown Wandler zu dem Relais. Das Pack wird über Solar geladen. Funktioniert auch schon.
Vom Gedanken her, hätte ich gerne dass er mir auf dem Display Temp, Hum und die Bodenfeuchte anzeigt. Dauerhaft.
Die Abfolge soll so aussehen:
Auslesen der Bodenfeuchte = Schwellwert zu hoch –> Pumpe an für 10 sek bzw. Soll erreicht ist (450)
Temperatur auslesen = Temp. zu hoch –> Lüfter an bis Temp etwa 2 grad unter SOLL
Steuere ich die einzelnen Komponenten über die einzelnen Scripts an, funktionieren sie alle.
Aber das verbinden ist für mich eine Katastrophe. Also den Ablauf wie das Programm durchlaufen soll. Oder übersehe ich etwas. Muss ich vielleicht die Programme einzeln abrufen?
Wenn ihr möchtet kann ich mal das Programm hier schicken. Dann könnt ihr mal lachen 🙂
Würde mich über Hilfe riesig freuen.
LG Pascal
Guten Tag.
Soeben habe ich mit dem Tutorial begonnen, habe aber bereits eine Frage.
Ich habe es hinbekommen das RTC Modul anzubringen und die Zeit daraus auszulesen. Aber danach kommt das nächste Modul… ich glaube das ist der Lichtsensor. Laut Abbildung sollen da die gleichen GPIO verwendet werden… und für folgende Module ebenso… wie funktioniert das genau? Wie Kaninchen denn die GPIO mehrfach verwenden? Ich habe gesehen es gibt extension Boards die die GPIO zB verdreifachen… aber davon ist hier nirgends die Rede. Kann mir da evtl. jemand weiter helfen? Vielen dank im Vorraus!
Hallo miteinander,
ich bin auf der Suche nach einer Steuerung/einem Bausatz für ein Mini-Gewächshaus, mit dem ich Licht (Lampe), Wärme (Heizung) und Feuchtigkeit (Luftfeuchtigkeit und Gieswasser) prüfen und ggf. automatisch regulieren kann. Die Steuerung wollte ich selber in C programmieren ( weil ich nichts anderes kann und nichts anderes möchte 🤗
Danke für Eure Hilfe!
Greets Willi
Hey, wollte dir nur mitteilen, dass ich angefangen habe, mit Hilfe deines Tutorials ein Bewässerungssystem zu bauen. Habe allerdings mittendrin abgebrochen, da die Grafiken in denen du die Schaltkreise auf dem Breadboard darstellst teilweise widersprüchlich sind und gewisse Steckplätze sogar von Schritt zu Schritt doppelt vergeben werde. Super verwirrend als Anfänger. Ich hätte es als einfacher empfunden, wenn du von Schritt zu Schritt ein und die selbe Grafik wiederverwendet und um die neuen, zusätzlichen Anschlüsse erweitert hättest. Kann es darüber hinaus sein, dass du von 2 Feuchtigkeitssensoren sprichst aber im Endeffekt 3 auf dem Breadboard anschließt?
Egal, Feedback Ende.
PUSH! Erstmal vielen Dank für das Tutorial. Aber genau wie mein Vorredner fällt es mir schwer die Relais/Widerstände etc. anzuschließen, da auf den Bildern desöfteren Ports mehrfach belegt sind.
Besteht die Möglichkeit, dass du uns da nochmal was zu erklären kannst?
Im Prinzip benötige ich lediglich die 8x Magnetventile die über das Relaiboard und Breadboard angeschlossen werden. Das würde ich auch hinbekommen, jedoch habe ich noch nie Widerstände angeschlossen.
Ich danke dir!