PiGrow: Raspberry Pi zum Steuern des Grows nutzen

idee

#1

Nachdem immer mal wieder darüber diskutiert wurde wie man mit dem Raspberry Pi Growen kann, habe ich mir gedacht, in diesem Beitrag ein Tutorial zusammenzubauen, in dem meine Vorgehensweise festgehalten wird, bzw über Probleme diskutiert werden kann (wenn nicht erwünscht, bitte verschieben, löschen, …) :slight_smile:

1. Raspberry Pi vs Arduino

Viele Anfänger fragen sich welche der zwei Technologien sinnvoller für das eigene Projekt ist. Vorneweg: Beides kann man für diese Art Projekt verwenden, jedoch haben beide unterschiedliche Stärken:

1.1 Arduino

  • Einsteigerfreundlich
  • Limitiert in der Technologie

Einen Arduino würde ich für einfache Projekte verwenden. Er kann durchaus Sensoren auslesen, Relais steuern, etc, ist dabei jedoch sehr limitiert, er kann beispielsweise die Daten nicht gut an einen Server schicken.

1.2 Raspberry Pi

  • Kann mehr (volles Betriebssystem)
  • Ähnliche Steuerung wie Arduino (GPIO Pins)
  • Einrichten dauert länger (Linux Kenntnisse von Vorteil)
  • keine analogen Inputs

Ein Raspberry Pi bietet ein Komplettpaket in Sachen Steuerung. Er kann wie der Arduino diverse Bauteile steuern aber nebenbei auch noch eine Serveranwendung hosten (zB für ein Webinterface), lässt sich über das Netzwerk steuern (SSH) und bietet ein großes Paket an Funktionalität (ist nur oft Overkill für solche Projekte)

In meinem Fall nutze ich einen Raspberry Pi. Diverse Python Anwendungen lesen Sensoren aus und speichern sie in einer Datenbank. Diese wird über eine JAVA-Spring Schnittstelle verwaltet, die dann von einer Android-App ausgelesen wird.

2. Wie kommunizieren Raspberry Pi/Arduino mit Bauteilen?

Beide Geräte benutzen Input/Output Ports, um mit Bauteilen zu kommunizieren. Es gibt verschiedene Ports, von denen hier die wichtigsten aufgelistet sind (Anhand des Raspberry Pi - Arduino funktioniert analog, jedoch habe ich mit ihm noch recht wenig Erfahrung).

Rechts hinten am Bild erkennt man 2x20 Pins, die vom Gerät abstehen. Das sind die Schnittstellen vom Pi zu diverser Hardware. Die verschiedenen Pins haben verschiedene Aufgaben, hier ein Diagramm:

  • Pins 1, 2 und 4 liefern nur Strom (3.3 bzw 5 Volt)
  • Pins 6, 9, 14, 20, 25, 30, 34 und 39 fungieren als Ground (“Minus-Pol”)
  • jeder GPIO (General Purpose Input/Output) Port kann zum lesen oder schreiben von digitalen Signalen genutzt werden. Ich kann beispielsweise Pin 7 (GPIO4) auf “1” schalten, dann liegt zwischen Pin 7 und Pin 6 eine Spannung von 5V an. Es kann aber genausogut von den Ports gelesen werden um zu überprüfen ob zum Beispiel ein Schalter gedrückt wurde.

3. Raspberry Pi Setup

Du hast nun einen Raspberry Pi gekauft, sitzt erwartungsvoll am Tisch und willst loslegen? Gut! Folgende Dinge brauchst du (mindestens):

  1. Raspberry Pi (benutze das Modell Raspberry Pi 3B)
  2. 5V USB Netzteil (Standardnetzteil für zB ein Smartphone)
  3. USB->Micro USB Adapterkabel
  4. MicroSD Karte (8 GB oder mehr)
  5. Monitor, Maus, Tastatur, HDMI Kabel, …

Das erste was ihr tun müsst, ist ein Betriebssystem auswählen. Über das Betriebssystem wird mit dem Pi kommuniziert und es beeinflusst maßgeblich wie die nächsten Schritte aussehen. Für alle meine Projekte habe ich das Raspbian Image benutzt. Es ist eine für den Pi angepasste Debian Distribution. Die .img-Datei müsst ihr einfach herunterladen (an eurem normalen PC) und die MicroSD Karte wird per Adapter an den Computer angeschlossen. Sie sollte nun wie ein USB-Stick als Wechseldatenträger sichtbar sein. Anschließend wird die .img-Datei mit einem Tool wie zum Beispiel Etcher auf die SD Karte gespielt.

Nun ist die Karte fertig vorbereitet und der Pi ist bedienbar. Alle Kabel anschließen (außer Strom) und die SD-Karte in den entsprechenden Slot stecken. Abschließend dem Pi Saft geben und am Bildschirm sollte das Betriebssystem starten.

Das könnte so aussehen:

Anmerkung: Ich benutze KEINE grafische Bedienoberfläche, da der Pi später sowieso irgendwo am/im Zelt verschwindet. Dazu gibt es die Raspbian Lite Variante (selber Link wie oben), bei dem man nach dem Starten in einer Konsole landet. Dies spart Rechenleistung beim späteren Bedienen.

4. Bauteile

Hier werden alle Bauteile dich ich bisher benutze gelistet, zusammen mit einer kleinen Beschreibung was das Ding genau macht und wie man es steuert.

4.1 Grundausstattung

Kein wirkliches Bauteil aber ein Muss für sicheres und einfaches Basteln. Ich habe mir dieses Set geholt. Es beinhaltet neben grundlegenden Bauteilen (Relais, Sensoren, LEDs, …) auch ein Breadboard.

Pins von zum Beispiel einem Relais können in dieses Board gesteckt werden, ohne groß Löten zu müssen und es können damit schnell Schaltungen gebaut und getestet werden. Im Set sind auch Jumper-Kabel enthalten. Diese sind an beiden Enden mit Pins versehen und können ebenfalls am Board genutzt werden. Mein gesamtes Projekt hat auf einem Breadboard angefangen und wurde erst am Ende auf eine Lochrasterplatte überführt.

4.2 Relais

Das Relais kommt aus einem einfachen Grund zuerst: es ist kinderleicht zu Bedienen.
WARNUNG: hier wird Haushaltsstrom geschalten, das bedeutet Lebensgefahr. Bei jeglichen Arbeiten immer alle Stecker ziehen (nicht nur den Kippschalter drücken sondern wirklich den Netzstecker abziehen) und erst nach abgeschlossener Arbeit wieder anstecken. Ein Relais ist schnell ersetzt, ein Leben nicht!!!

  • Zweck: Geräte Softwareseitig ein- und ausschalten. Das Relais ist quasi ein Schalter, der per Steuersignal funktioniert.
  • Aufbau: Das Relais besitzt 3 Pins (unten links im Bild), mit denen es vom Pi aus bedient wird. Ich empfehle ein Relais mit 5V Steuersignal, diese sind in Kombination mit einem Raspberry Pi ohne Transistor direkt zu bedienen. Gegenüber befinden sich 3 Klemmen, an die das zu schaltende Gerät angeschlossen wird. Dabei gibt es zwei Konfigurationen (je nach Modell anders angeordnet): NO (normally open) und NC (normally closed). Bei NO fließt in inaktivem Zustand kein Strom (der Stromkreis ist offen), und wenn das Relais schaltet wird dieser geschlossen. In der NC Konfiguration ist es genau umgekehrt, es fließt Strom wenn das Relais inaktiv ist, wird es geschalten wird der Stromkreis unterbrochen.
    Bei Lampen empfehle ich eine NC Konfiguration, da es für das Bauteil besser ist wenn es die Mehrheit der Zeit nicht schaltet, und am Anfang läuft die Lampe ja meist 18/6 daher wäre es in der NC Konfiguration 18h inaktiv und 6h aktiv.
  • Setup: Der + Pin vom Relais wird mit dem 5V Pin (2 oder 4) des Pi verbunden. Der - Pin vom Relais wird mit dem Ground Pin (6, 9, 14, 20, 25, 30 oder 34) verbunden. Diese beiden stellen die Stromversorgung für das Relais dar. Das Steuersignal (S Pin) wird mit einem beliebigen GPIO Pin verbunden.
    Zu Testzwecken kann man manuell den S Pin mit 5V verbinden, das Relais sollte bei korrektem Setup klicken und eine LED aufleuchten. Für einen Funktionstest ohne Script ist diese vorgehensweise zu empfehlen.
  • Verbindung herstellen: In meinem Fall wird meine Lampe über einen Kaltgerätestecker betrieben. Dessen Isolierung habe ich mit einem Cutter geöffnet, um die 3 Kabel freizulegen, die im Inneren sind. Dort wurde die Phase (blau) durchtrennt, und über ein Verbindungskabel an das Relais in der NC Position angeschlossen. Einen kurzen Funktionstest später (die Lampe sollte sich exakt gleich verhalten wie vorher, da das Relais ja geschlossen ist) wurde dann der Pi mit dem Script gesteuert (coming soon).
  • Anmerkungen: IMMER die Leistung beachten, für die das Relais ausgelegt ist. Das oben verlinkte kann maximal 300W (glaube ich) schalten. Ist auf der Amazon Seite nicht gut beschrieben, jedoch sind 200W wie bei meiner Lampe kein Problem.

Future Work:

  • Guide für Bauteile
  • HowTo Python
  • Was sonst noch so einfällt, könnt gerne Input geben :slight_smile:

#2

Gute Idee erstmals. ich ziehe bei so serversachen alelrdinsg den banana Pi oder den odroid vor, da man da platten dran kriegt. hab meien aber verkauft udn mri stattdessen nen nas zugelegt. ich glaube be mir waere es eher das trouble wie man die steuerung mit Python programmiert. LINUX kenntnisse hab ich .
mal die Gretchenfrage, kriegt man alle addons von arduino an den Raspberry dran, und umgekehrt oder gibt es da einschraenkungen?
Bei bauteilen nunja in den gaengigen verdaechtigen anbietern anchschauen Reichelt, pollin, voelkner udn conrad wobei ich bei den letzteren net weiss was die haben. meine teile stammten auschliesslich von reichelt und pollin


#3

Ich persönlich benutze den Raspberry weils die gängigste Variante ist, mit der größten Community, einer Menge Libraries etc.
Andere Modelle und Variante funktionieren aber analog :).

Zu den Arduino Teilen: ist verschieden. Ein Relais zum Beispiel bekommt 5V, GND und ein Steuersignal, das ja nur ein zweiter 5V Input ist. Wo die herkommen ist prinzipiell egal.
Sensoren wie die DHT Reihe brauchen eigene Libraries (in dem Fall von Adafruit) die es für Python geben muss, damit es am Pi funktioniert.
Und analoge Inputs brauchen einen ADC, der das Signal in ein Digitales umwandelt. Ein Pi hat keine analogen Input Pins wie der Arduino, deshalb der Weg über den ADC.


#4

Spannend. Da les ich doch gern mal mit. (Bin selbst technisch nicht so versiert, aber immer interessiert, was sich so tut & was die Bastler so auf die Beine stellen :wink: )


#5

dieprogrammiersprache pythion kennich leide rnur vom hoerensagen. wir haben unsere sensoren frueher in ner Basic form prohgrammiert kam abe rnet weit weil cihdie shcule aus nem gesundheitlichen grund evrlassen musste. und as erste mal BASIC wa rin den fruehen 80ern lol. mochte das fach EDV. hab zwra spaeter weitergemacht aber irgendwann da sinteresse am programmieren verloren. heutzutage bin ich froph, wenn ich nen neuen sound im synthesizer programmier tkriege lol (das ist eigentlich leicht lol)


#6

Finde Python ganz nett, da man auch im CLI coden kann :slight_smile:

Neues Kapitel kam dazu :open_mouth:


#7

Schade dass man so nur 1 Like vergeben kann. Lässt sich gut an, die Serie, weitermachen :slight_smile:


#8

Halb so wild xD mit neuen Posts würde nur der Lesefluss gestört werden ^^


#9

hier laeuft ncoh ein anderer thread, wo jemand ne automation vorgestellt hat. und parallel dzau lese cih deinen trhead. ich bonm total gespannt was ihr o alles ausprobiert,w aehrend ich versuche hinter dfas geheimnis der imaginaeren indoor-sonne zu kommen :slight_smile:


#10

Es ist auch wirklich einfach, deshalb dieses Tutorial :slight_smile: Für nichtmal 100€ bekommst du alles was du brauchst und kannst einen halbautomatischen Grow durchziehen (Dünger mischen muss man noch von Hand aber trotzdem ne gute Sache).

Neues Material hinzugefügt^^


#11

Super Beitrag!
Werde hier bald auch einen Thread zu den esp Modulen aufmachen, welche den Spagat zwischen Performance Konektivität und Preis perfekt meistert. Dieße sind dan weder unterpowert noch overkill :wink:.