Spass am Hobby > Technik > Technik – Raspberry-Projekte > Mini-Gewächshaus-Automation

Mini-Gewächshaus-Automation

Letzte Änderung am 26.01.2022.

Diese Anleitung wurde aus dem Blog „Raspberry – Gewächshausautomation“ zusammengestellt, welches deshalb nicht mehr zu finden ist.

Neu ist der Erdfeuchtesensor, der über einen ADC-Wandler seine Informationen an den Raspberry abgibt. Das ist noch im Test!

Hier setze ich ein Mini-Gewächshaus voraus, wie es in „Anzuchtanleitung mit LED-Licht“ beschrieben ist. Die Verwendung eines anderen Mini-Gewächshauses sollte aber möglich sein.

Es gibt diverse Schaltuhren für LED-Licht, Mini-Lüfter und die Heizfolie. Aktuell werden diese Schaltuhren noch manuell eingestellt. Manuell ist derzeit auch noch die Wasserversorgung, die alle zwei bis drei Tage mittels kleiner Gießkanne erfolgt, sofern der Erdfeuchtesensor dementsprechende Werte anzeigt. Diese Werte versuche ich derzeit noch zu interpretieren.

Zusätzliche Hardware

Liste ohne Bewässerung:

Menge Benennung ca. Preis
1 Raspberry 3B 35.-
1 Netzteil für Raspberry 10.-
1 SD-Karte Mikro >7 GB SDHC 10 10.-
1 Raspberry Gehäuse 5.-
1 Set Kühlkörper Raspberry 5.-
1 Raspberry 5MP Kamera 175 Grad Weitwinkel 25.-
1 Raspberry Bodenfeuchtesensor kapazitiv 5.-
1 ADS1115 AD-Wandler 10.-
1 DS18S20 Temperatursensor 5.-
1 AM2302 Luftfeuchte und -temperatursensor 5.-
2 4,7 kOhm Widerstand 1/4 Watt 10% 1.-
1 40x Jumper Wire Cable, 20 cm lang, beidseitig Buchse 4.-
SUMME 120.-

Sobald die automatische Bewässerung klar ist, gibt es eine Aktualisierung der Liste und auch der Anleitung.

Der obenstehende Raspberry 3B muss nicht sein. Ein 2B reicht locker, ist aber nicht mehr zu bekommen. Da er deutlich weniger Strom braucht, wäre er eine gute Alternative! Ich nutze seit ein paar Jahren:
Raspberry (1) B Rev. 2, schnelle 8 GB SD-Karte, PiCam mit Weitwinkel, Raspbian bzw. Raspi OS mit diverser Software, AM2302-Sensor, DS18S20-Sensor und seit 2022 einen Fechtigkeitssensor V1.2 mit AD-Wandler ADS1115.

Der Sensor AM2302 wird wie folgt angeschlossen:
Der Sensor liegt vor Dir flach auf dem Tisch mit den vier Beinen zu Dir. Von links nach rechts:
* + 3,3 V geht an Raspberry-Pin 1
* Data geht an Raspberry-Pin 15 (GPIO22), da GPIO4 schon belegt ist.
* ungenutzter Anschluss
* Ground bzw. Masse geht an Raspberry-Pin 6.

Leider gibt es widersprüchliche Informationen zum Pull-Up-Widerstand. Zum einen soll er entweder 4,7 oder 10 kOhm haben und zum anderen soll der AM2302 angeblich schon einen eingebaut haben. Ich betreibe den AM2302 schon seit Jahren mit 4,7 kOhm Widerstand und bin damit zufrieden.

Der Sensor DS18S20 wurde wie folgt an den Raspi angeschlossen:
Rote Leitung an Pin 1 (+3,3V)
Schwarze Leitung an Pin 6 (Masse / Ground)
Gelbe Leitung an Pin 7 (GPIO 4)
Zwischen Pin 1 und Pin 7 muss außerdem ein 4,7 kOhm Widerstand angeschlossen werden.
Nur als Info: Der Pin 2 stellt die äußerste Ecke der Sockelleiste dar, die in einer der Ecken der Raspberry-Platine sitzt. Ihm gegenüber liegt der Pin 1. Im 90 Gradwinkel dazu liegt der Pin 4. Bei Fragen einfach googeln und beachten, dass manch uralter Raspberry eine andere Pinbelegung hat, weil er nur 26 Pins hat!

Wie der Feuchtigkeitssensor V1.2 angeschlossen wird, kann man dann doch besser im Bild erkennen. Da der Raspberry das analoge Signal dieses Sensors nicht verarbeiten kann, musste ihm leider noch ein Analog-zu-Digital-Wandler ADS1115 zwischengeschaltet werden, was die Sache etwas komplizierter macht. Ich hoffe, dass es sich lohnt! Dieser Teil der Schaltung ist noch im Test!

Bilder sagen mehr als tausend Worte (vom 30.10.2021):

Ich nutze mehrere Raspberrys der ersten Generation (Raspberry Model B Revision 2). Unter anderem ist dort die Anzahl der GPIO-PINs unterschiedlich zu den aktuellen Versionen. Mit der Lite-Version des Betriebssystems ist die Performance aber völlig ausreichend. Hier ein paar Fotos, wobei statt der oben in der Liste angegebenen „Jumper Wire Cable“ eine 2×13 polige Buchsenleiste genutzt wurde:

  

Software

Zuerst wird der Raspberry mit einer aktuellen Raspbian-Bullseye-Version installiert. Dazu installiert man sich zuerst das Tool, mit dem man das Betriebssystem auf die SD-Karte bekommt. Einfach nur kopieren geht nicht! Die Info ist in Raspberry PI OS zu finden. Auswahl des gewünschten Systems: „use custom“ und dann die heruntergeladene Zip-Datei auswählen. Im Hauptverzeichnis der SD-Karte erstellt man eine leere Datei namens „ssh“, um per Putty die weiteren Einstellungen machen zu können.

Installation allgemein:

Raspi starten und anmelden.

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install imagemagick ftp expect bc -y

*****

Installation Luftsensor AM2302:

sudo apt-get install python3-pip -y
sudo python3 -m pip install –upgrade pip setuptools wheel #Achtung! Zweimal ein Bindestrich vor „upgrade“!
sudo pip3 install Adafruit_DHT

Download von am2302.py, um sie mittels Texteditor zu öffnen und den Inhalt in eine gleichnamige Datei in /home/pi zu kopieren. Das ist leider nötig, weil einige Zeichen durch Word oder html verfälscht werden, wie Anführungszeichen und doppelte Minuszeichen.

cd /home/pi
nano am2302.py

Editor beenden mit abspeichern (<Strg> + <x> und <y> und <Enter>).

*****

Installation Erdtemperatursensor DS18S20:

sudo raspi-config
1-Wire aktivieren (in Interface) + reboot
sudo modprobe w1-gpio
sudo modprobe w1-therm

Für eine andere Datei braucht man die ID des Sensors. Dazu geht man wie folgt vor:

ls /sys/bus/w1/devices

So ungefähr sollte die Ausgabe aussehen:
28-7285b3116461 and w1_bus_master1

Die erste Nummer (28-7285b3116461) bitte für später notieren!

*****

Installation Erdfeuchtesensor mit ADS1115:

sudo pip3 install –upgrade adafruit-python-shell #Achtung! Zweimal ein Bindestrich vor „upgrade“!
sudo pip3 install adafruit-circuitpython-ads1x15
wget https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/raspi-blinka.py
sudo python3 raspi-blinka.py

Den gewünschten Reboot machen und danach wieder anmelden.

Download von ads1115.py, um sie mittels Texteditor zu öffnen und den Inhalt in eine gleichnamige Datei in /home/pi zu kopieren.

cd /home/pi
nano ads1115.py

Editor beenden mit abspeichern.

*****

SSH-Meldung bei sftp vermeiden:

mkdir ~/.ssh
cd ~/.ssh
ssh <Dein FTP-Servername>
yes
cd ..

Das FTP-Passwort muss dabei eventuell zweimal eingegeben werden.

*****

Skripte erstellen:

Download von picamx.sh, um sie mittels Texteditor zu öffnen und den Inhalt in eine gleichnamige Datei in /home/pi zu kopieren.

cd /home/pi
nano picamx.sh

Unbedingt fünfmal Einträge mit <Dein …> anpassen!

Editor beenden mit abspeichern.
Weitere Skripte bei Bedarf mit Hilfe des obigen Skriptes erstellen. Dabei an die crontab denken!

chmod 755 *.sh

*****

Der Taskplaner: die Crontab

crontab -e

Beispiel von mir:

# m h dom mon dow command
0 8 * * * /home/pi/picamx.sh
0 13 * * * /home/pi/picamx.sh
0 18 * * * /home/pi/picamx.sh
2 14 * * * /home/pi/picamy.sh
5 14 1 * * /home/pi/picamz.sh
5 14 15 * * /home/pi/picamz.sh

Änderungen nach Wunsch vornehmen. Editor beenden mit abspeichern.

Wenn die Abkürzungen in Deutsch wären, wären sie verständlicher. Hier meine Erklärung folgender Abkürzungen:

# Kommentarzeile
m Minute des Programmstarts
h Stunde des Programmstarts
dom “day of month” = Tag des Monats, an dem das Skript starten soll.
mon “month” = Monat, an dem das Skript starten soll.
dow “day of week” = Wochentag, an dem das Skript starten soll.
command = Programmname bzw. Skriptname mit komplettem Pfad

Erklärung meiner Crontab:
Die crontab in Verbindung mit picamx.sh lädt um 08:00, 13:00 und 18:00 Uhr eine Datei zum FTP-Server hoch, die bei mir als aktuelles Vergleichsbild dient. Die Datei picamy.sh läuft nur einmal täglich um 14:00 Uhr und speichert mir ein tagesaktuelles Archivbild ab. Picamz.sh sorgt für das andere Vergleichsbild, welches ich jeden ersten und jeden fünfzehnten eines Monats hochlade. Dabei müssen die Dateien auf dem FTP-Server natürlich einen anderen Namen im Skript bekommen.

*****

Eine dringende Empfehlung am Ende: Auch wenn der Raspi eigentlich unwichtig ist, kann auch er großen Schaden anrichten, wenn jemand auf ihm Viren installiert. Daher jetzt noch das Passwort ändern!

sudo raspi-config

Mittels „System options“ und „Password“ gibt man das neue Passwort zweimal ein und sollte es sich sehr gut merken oder in seinem Passwort-Tool speichern! Bei Bedarf ist jetzt die Gelegenheit den Hostname zu ändern und WLAN einzurichten. Wenn man sicher ist, dass alles funktioniert, kann man aus Sicherheitsgründen auch noch SSH abschalten.

sudo init 0

Wenn der Raspi aus ist, dann erstellt man eine Sicherung dieser langwierigen Arbeit durch eine SD-Kopie mittels „Win32-DiskImager“. Danach den Raspi mit SD-Karte wieder starten und alles testen!

So sieht das erste Foto bei mir aus:

Wer bei dauerhaft eingeschalteter Heizmatte nicht annähernd auf 24 Grad Erdtemperatur kommt, wird entweder das Gewächshaus gut isolieren müssen oder die Raumtemperatur erhöhen.

Neu ist der Erdfeuchtesensor, der über einen ADC-Wandler seine Informationen an den Raspberry abgibt. Dieser gibt allerdings nur relative Werte aus, was aber zur geplanten Steuerung der Wasserzufuhr vollkommen ausreicht!

Der Aufbau der geplanten Wasserversorgung mittels Magnetventilen und Relaisansteuerung wird erst 2023 zum Einsatz kommen. Es ist noch in der Planung.

Nachtrag zur Wasserversorgung vom 24.02.2022

Die oben gezeigte Lösung mittels ADC1115 und Wassersensor war zu instabil und wurde fallen gelassen. Es wurden neue Anzuchtplatten angeschafft, die ein wenig zu kurz sind. Dadurch fällt LED-Licht in den zu kurzen Bereich und man kann von außen den Wasserstand relativ gut erkennen, da die grüne Bodenwanne dann etwas durchsichtig ist. Damit entfällt auch die geplante Wasserversorgung mit Pumpe und Ventilen. Es wäre zwar perfekt gewesen, wenn es funktioniert hätte, aber ich sehe derzeit keine bezahlbare Lösung, die die Erdfeuchte messen kann und verlässlich funktioniert. Es wäre vermutlich einfacher, sich selber eine wasserdichte Bodenwanne zu bauen und dort den Wasserpegel zu messen, aber da hört es bei mir auf!

Wie schon an anderer Stelle geschrieben, ist ein täglicher Blick auf die Keimlinge motivierend. Bei dieser Gelegenheit sieht man dann auch auf den Wasserstand und korrigiert ihn mittels kleiner Gießkanne. Viel Spaß dabei!

WordPress Cookie Plugin von Real Cookie Banner