Project | |
---|---|
name | IRemotePi |
status | stable |
description | IP-Fernbedienung |
author | Matthias |
version | 1 |
platform | Raspberry Pi |
license | CC |
Project | |
---|---|
name | IRemotePi |
status | stable |
description | IP-Fernbedienung |
author | Matthias |
version | 1 |
platform | Raspberry Pi |
license | CC |
Das Projekt Universalfernbedienung basiert hardwaretechnisch auf einem RaspberryPi B+ und einigen Kleinteilen, mehr dazu später.
Ursprünglich war es die Idee, mit Hilfe irgendeines Gerätes eine Aquariumbeleuchtung, die eigentlich mit einer Infrarotfernbedienung gesteuert wird, automatisch nach Uhrzeit anzusteuern. Da es weitaus komplizierter gewesen wäre, ein anderes Steuergerät für die Beleuchtung zu bauen, haben wir uns entschieden, die Infrarotsignale der Originalfernbedienung zu kopieren und zeitabhängig im Verlaufe des Tages zusenden, sodass die Aquarienbeleuchtung morgen sehr dunkel und leicht bläulich beginnt zu leuchten. Im Verlaufe des Tages wird das Licht schließlich immer heller und nimmt gegen 13Uhr einen gelblichen Farbton an. Zum Abend hin wird das Licht wieder gedimmt und simuliert in roten Farben einen Sonnenuntergang.
Als die Hardware einmal fertig war, war es ein Kinderspiel die Befehle der Fernbedienung auszulesen und zu einer bestimmten Uhrzeit erneut zu senden. Die richtige Uhrzeit bekommt unser RaspberryPi per WLAN-Karte über das Netzwerk.
Da es für uns viel zu einfach war und wir uns dachten, der RaspberryPi kann noch deutlich mehr als nur das Aquarienlicht zu steuern, fingen wir an zu überlegen, was wir noch alles steuern können. Wir haben die Fernbedienungen von Fernseher, Stereoanlage, BlueRay-Play und dem Receiver eingelesen. Mittlerweile ist es möglich, alles dieser Geräte mit einem Gerät zu steuern.
Nebenbei arbeitet der RaspberryPi noch als Netzwerkserver und als Audiowiedergabegerät.
Zur Zeit arbeiten wir an einer grafischen Oberfläche, sodass es bald möglich ist, auf dem Smartphone-Schirm virtuelle Knöpfe zu haben, mit denen man alle Infrarotgeräte im Haus steuern kann, Musik auf den Server laden und vom Server abspielen kann und nebenbei noch ein Setup an der Aquarienbeleuchtung vornehmen kann.
Das alles passiert mit einem Stromverbrauch von maximal 10 Watt pro Stunde. Man kann mehrere Geräte ersetzten (NAS, 5 Fernbedienungen, Musikplayer).
Benötigte Teile : RapberryPi B+, Wlan-Stick, möglichst mehrere Infrarot-LEDs, Infrarotempfänger (TSOP4838), diverse Widerstände, Transistoren (BC547). (ungefähr 40€) Folgendes Bild zeigt, wie die einzelnen Bauelemente miteinander verbunden werden müssen. Für einen Dauerbetrieb ist es jedoch empfehlenswert, die Bauteile auf Lochraster oder eine selber gelayoutete Platine zu löten.
Die GPIO-Pin-Belegung ist eigentlich frei wählbar, solange man die GPIOs auch im RaspberryPi registriert. Wir benutzen GPIO 22 als Empfänger und GPIO 23 als Sender.
Folgend sieht man ein Bild, wie unsere selbstentworfene Lochrasterplatine aussieht. Links sieht man bunte Kabel weglaufen. Diese Kabel gehen in verschiedene Ecken des Raumes und eins sogar in das Nebenzimmer, weil mehrere IR-LEDs benötigt werden, wenn die Geräte in verschiedenen Bereichen des Raumes stehen. (LED und angesteuertes Gerät brauchen optischen Kontakt).
Für den RaspberryPi (mit Raspbian) gibt es bereits ein entwickeltes Paket namens Lirc, welches die Funktion besitzt, Infrarotdaten mit Hilfe der Hardware zu erfassen und in einer Datenbank zu speichern. Diese Datenbank kann natürlich wieder ausgelesen werden und die IR-Daten werden über die Hardware gesendet.
Lirc installieren:
$ sudo apt-get install lirc
lirc_rpi und lirc_dev müssen ans Ende der Modules gehängt werden, dazu die Datei mit
$sudo nano /etc/modules
öffnen und die beiden Befehle untereinander eintragen und natürlich speichern.
Als nächstes muss die hardware.conf Datei geändert werden. Man öffnet die Datei mit
$sudo nano /etc/lirc/hardware.conf
und kopieren folgende Zeilen hinein und speichert wieder.
# /etc/lirc/hardware.conf # # Arguments which will be used when launching lircd LIRCD_ARGS="--uinput" # Don't start lircmd even if there seems to be a good config file # START_LIRCMD=false # Don't start irexec, even if a good config file seems to exist. # START_IREXEC=false # Try to load appropriate kernel modules LOAD_MODULES=true # Run "lircd --driver=help" for a list of supported drivers. DRIVER="default" # usually /dev/lirc0 is the correct setting for systems using udev DEVICE="/dev/lirc0" MODULES="lirc_rpi" # Default configuration files for your hardware if any LIRCD_CONF="" LIRCMD_CONF=""
Lirc ist nun eingerichtet, jetzt können beliebige Fernbedienungen eingelesen werden oder aber auch fertige Fernbedinungsdateien aus dem Internet in die Lirc-Datenbank eingefügt werden.
Ich hoffe unsere Beschreibung hat Dir gefallen und Dich dazu begeistert, selber ein cooles Projekt mit dem RaspberryPi zu starten.
Bei Fragen könnt Ihr mir jederzeit schreiben!