Ich möchte dir einen Weg vorstellen die Feuchtigkeit und vieles mehr automatisiert in deinem Fruchtungsraum mithilfe eines Raspberry Pi und der open source Software TerrariumPI zu regeln.
Wenn du über die folgende Ausführung im schnelldurchlauf drüber fliegst, wird das wohl schrecklich kompliziert ausschauen. Aber zum Glück macht man jeden Schritt nach und nach und dann schaut das schon ganz anders aus;)
Außerdem sind in dieser Anleitung nur die wichtigsten Punkte zusammengefasst. Solltest du bei einem Schritt Probleme haben, findest du im Internet für genau diesen Schritt eine ausführliche Anleitung.
Manche hören das wohl ungern aber: das englischsprachige Internet ist informativer als die kleine deutsche Blase. Und im Zweifel beantworte ich gerne fast jede Frage.
Was du brauchst:
- Raspberry Pi 2 oder 3 (ab 20€)
- SD-Karte mit mindestens 4GB (ab 5€)
- Sensor zur Messung der Feuchtigkeit, idealerweise BME280 (ab 6€)
- Relais (ab 5€)
- 4-adriges Kabel für die Sensoren, z.B. Klingelleitung Y2x2x0,8 (0,50 - 0,80€/m)
- Lötkolben + Lötzinn
- Wenn du keine Kabel direkt an deinen Pi löten möchtest female jumper (ab 2€)
- Isolierband oder besser Schrumpfschlauch
- Weiteres Zubehör wie Netzstecker/-Kupplungen, Steckdosen, Kabel, Kabelbinder, Holz für Gehäuse, usw., abhängig von deinem Aufbau.
Bei keinem der Links beziehe ich einen Vorteil, sie dienen euch lediglich die harte Arbeit des tippens zu Ersparen;)
Allgemeines
TerrariumPI 3.9.9
- Bei TerrariumPI handelt es sich um eine kostenlose und freie Software, hauptsächlich von teyosh geschrieben und im Jahr 2016 veröffentlicht. Frei bedeutet, dass jeder dabei mitschreiben kann oder den gesamten Code kopieren und eigene Wege gehen kann. Über Spenden freut sich theyosh natürlich.
- Wie der Name schon sagt, wurde diese Software zur Steuerung von Terrarien programmiert, ist aber genau so gut für viele andere Anwendungen geeignet.
- Die Software stellt die Messungen der Sensoren grafisch bis zu einem Zeitraum von einem Jahr dar. Wenn ein Wert einen high oder low Alarm auslöst, wird ein Relais für eine bestimmte Zeit geschalten. Außerdem kann man Relais wie Zeitschaltuhren regeln. Das wären die für uns wichtigsten Funktionen. Zusätzlich könnte man noch Strom- und Wasserverbrauch dokumentieren, Türschalter installieren, Musik abspielen und Webcams aufstellen.
- Bald wird Version 4.0 verfügbar sein. Der Code wurde komplett neu geschrieben und optimiert. Außerdem kann man mit einem Raspberry nun mehrere "Bereiche", also Fruchtungsräume steuern.
- Getestet und sicher funktionsfähig mit TerrariumPI 3.9.9 sind der Raspberry Pi 2 und 3. Andere wie z.B. Pi 4 oder Pi Zero könnten auch funktionieren.
- Die SD-Karte sollte mindestens 4GB groß sein, da diese inzwischen selten sind empfiehlt es sich für fast den gleichen Preis gleich eine Karte mit 16 oder 32GB zu kaufen.
Fall bitte nicht auf ultra-billig-Angebote rein, dabei handelt es sich oft um SD-Karten, die in Wirklichkeit nur einen Bruchteil ihrer angegebenen Kapazität haben und deswegen oft für Datenverlust und Abstürze führen.
- Ich empfehle mindestens 2 Sensoren einer Art für wichtige Messungen zu haben, falls einer der Sensoren ausfällt, kann die Software immernoch den jeweiligen Parameter z.B. Luftfeuchtigkeit regeln.
- Zur Messung der Feuchtigkeit und Temperatur empfehle ich den BME280, der auch bei einer hohen Luftfeuchtigkeit eine hohe Genauigkeit und geringe Trägheit hat. Außerdem wird er über den I2C bus ausgelesen, was vereinfacht den Vorteil hat, dass alle I2C Sensoren über die gleichen 4 Leitungen am Pi angeschlossen werden.
- Dann gibt es auch noch den DHT11 oder DHT22 um Temperatur und Luftfeuchtigkeit zu messen. Dieser ist aber viel träger als der BME280 und gibt in der Regel nach Wochen bis Monaten den Geist auf. Außerdem wird dieser über GPIO ausgelesen, jeder dieser Sensoren wird an einem eigenen Pin am Pi angeschlossen.
- Desweiteren besitze ich noch den Lichtsensor BH1750, der die Helligkeit von 0-65535lx messen kann. Dieser läuft über den I2C bus, wird aber bei der TerrariumPI Version 3.9.9 nicht unterstützt. Man kann ihn aber über ein Script auslesen und die Werte in die Software einpflegen lassen.
- Für die CO2 Messung gibt es z.B. den MH-Z19B. Da ich diesen aber (noch) nicht besitze, kann ich dazu nichts sagen. CO2 Sensoren werden bei der Version 3.9.9 nicht unterstützt, man kann sie aber wie den oben genannten Lichtsensor hinzufügen.
- Ein Relais ist eine Art Schalter, den der Raspberry Pi automatisch schalten kann. Damit steuern wir also Lüfter, Befeuchter, Heizung, Lampen usw. an.
- Es gibt 1, 2, 4, 8 und 16-Kanal Relais, also mit der entsprechenden Anzahl an "Schaltern". Wie viele Kanäle du brauchst hängt von deinem Aufbau ab.
Ich habe einen 4-Kanal Relais und damit steuer ich:- 1 Lüfter für Umluft im Zelt
- 1 Lüfter um die Luft aus dem Zelt zu saugen
- 1 Lüfter und 2 Ultraschall Vernebler über eine Dreifachsteckdose für die Feuchtigkeitsregulierung
- Der vierte Kanal ist noch frei
- An einem Relais kannst du deine Verbraucher nicht direkt anstecken, du kannst also entweder so wie ich Stecker Kupplungen verwenden oder eleganter wäre Steckdosen an dein Gehäuse schrauben.
Außerdem brauchst du noch einen Stecker um das Relais an eine Steckdose anzuschließen.
- Du bastelst mit 230V Spannung herum. Ich appeliere an deinen gesunden Menschenverstand und denke du weißt was das bedeutet.
Gehäuse
- Dein Raspberry Pi und Relais willst du natürlich nicht offen rumliegen haben, deswegen brauchst du ein Gehäuse um das alles sicher und halbwegs Sporengeschützt zu verwahren.
- Ich habe eine einfache Box aus Holz gebaut, du kannst natürlich auch Kunststoff nehmen.
Wenn du denkst Metall wäre eine gute Idee, solltest du dieses Vorhaben nun abbrechen. (Außer du weißt was du tust, dann würdest du das hier aber wahrscheinlich nicht lesen)
Praktischer Teil
Auf dieser Seite sieht man die Pinbelegung des Raspberrys.
I2C Sensoren
Die Anschlüsse dieser Sensoren sind schön beschriftet mit VIN, GND, SCL und SDA, evtl. hat er zusätzlich CS und SDO.
- Hast du zwei mal den selben Sensor, dann haben diese die gleiche Adresse und du musst eine Verbindung auf dem Board trennen. Lese dazu das hier, durchsuche selber das Internet oder schreibe mir.
Wenn der Sensor die Anschlüsse CS und SDO hast, kannst du bei einem Sensor SDO einfach mit GND verbinden. CS bleibt frei. Damit bekommt dieser Sensor eine andere Adresse. Das wird erst später wichtig.
Falls du mehr als zwei der gleichen I2C Sensoren benutzen willst, lohnt es sich einen I2C Multiplexer wie den TCA9548A zu nutzen. An diese Platine kannst du 8 I2C Geräte anschließen und jedes bekommt automatisch eine eigene Adresse.
- Löte die Adern deines 4-adrigen Kabels (Klingelleitung) an VIN, GND, SCL und SDA des Sensors.
Achte darauf, bei allen Sensoren die gleiche Farbe für die gleichen Pins zu verwenden.
Lasse das Kabel lang genug, verlege es probeweise schon so wie es am Ende sein soll.
- Löte die gleichen Enden von allen Kabeln mit (Jumper) Kabeln zusammen.
Ich muss hoffentlich nicht erwähnen, dass alle Adern wieder isoliert werden müssen
- Verbinde die vier (Jumper) Kabel mit den folgenden Pins deines Raspberry Pis:
- VIN -> Pin 1 3v3 Power oder Pin 2/4 5v Power. Ist dein Kabel länger als 2m empfiehlt sich Pin 2 oder 4 mit 5v
- SDA -> Pin 3 GPIO2 (I2C1) SDA
- SCL -> Pin 5 GPIO3 (I2C1) SCL
- GND -> Pin 6 oder 9 Ground
- Auf dieser Seite ist ein recht eindeutiges Bild zur Pinbelegung.
GPIO Sensoren
Lange Anleitung;)
Die Anschlüsse dieser Sensoren sind oft nicht beschriftet, schau die Belegung im Datenblatt für deinen Sensor (z.B. DHT22) nach.
Du kannst die Bilder von den I2C Sensoren als Hilfestellung nehmen, achte nur drauf die Datenleitung von zwei GPIO Sensoren nicht zu verbinden. Diese müssen alle ihren eigenen Pin am Raspberry bekommen!
- Löte die meist 3 Anschlüsse des Sensors an ein Kabel.
Achte darauf, bei allen Sensoren die gleiche Aderfarbe für die gleichen Pins zu verwenden.
Lasse das Kabel lang genug, verlege es probeweise schon so wie es am Ende sein soll.
- Falls du mehrere GPIO Sensoren verwendest, kannst du die Enden der Adern für die Spannung (VCC, Vin) und Masse (GND) mit einem (Jumper) Kabel zusammenführen. Löte jeweils ein (Jumper) Kabel an die Enden der Datenleitung (DATA, signal)
Ich muss hoffentlich nicht erwähnen, dass alle Adern wieder isoliert werden müssen
- Verbinde die (Jumper) Kabel mit den folgenden Pins deines Raspberry Pis:
- VCC -> Pin 1 3v3 Power oder Pin 2/4 5v Power. Ist dein Kabel länger als 2m empfiehlt sich Pin 2 oder 4 mit 5v
- GND -> Pin 6 oder 9 Ground
- DATA -> Pin 11,13,15,16,18 usw. GPIO
Es eignet sich jeder bei pinout.xyz grüner GPIO Pin
Relais
- Mit (Jumper) Kabeln verbindest du nun folgende Pins des Relais mit dem Raspberry Pi:
- VCC -> Pin 2/4 5v Power
- GND -> Pin 6, 14 oder 20 Ground
- IN1 -> Pin 16, 18, 22 usw. GPIO
- IN2 -> Pin 16, 18, 22 usw. GPIO
...
Für IN_ eignet sich jeder bei pinout.xyz grüner GPIO Pin
- Jeder Kanal des Relaisboards hat 3 Schraubklemmen, in der Mitte ist in der Regel der Eingang, rechts und links ist einer im Ruhezustand geöffnet und der andere geschlossen. Am einfachsten nimmst du einen Durchgangsprüfer um zu testen welcher der beiden im Ruhezustand Durchgang hat, ansonsten lässt du den Zufall entscheiden und siehst später ob dein Verbraucher durchgehend läuft obwohl das Relais nicht geschalten hat.
- Wenn du für die weitere Verkabelung des Relais mit den Steckern / Steckdosen eine Anleitung brauchst, solltest du das jemanden machen lassen, der sich auskennt.