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, …)
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):
- Raspberry Pi (benutze das Modell Raspberry Pi 3B)
- 5V USB Netzteil (Standardnetzteil für zB ein Smartphone)
- USB->Micro USB Adapterkabel
- MicroSD Karte (8 GB oder mehr)
- 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