Infrarot Raspberry Pi Fernbedienung

Projekte

Raspberry Pi Fernbedienung: Infrarot Steuerung einrichten

Für verschiedene Anwendungen, wie z.B. das Mediacenter für den Raspberry Pi OpenELEC / KODI ist eine Steuerung via Infrarot Raspberry Pi Fernbedienung sehr nützlich. Diese kann genutzt werden um mit Kombinationen der Fernbedienung oder Infrarot LED den Pi zu steuern oder um Skripte und Anwendungen zu starten.



Zubehör

Folgendes Zubehör benutze ich:

  • Infrarot Empfänger (TSOP4838 oder ähnlich)
  • Infrarot LED (aus einer alten Fernbedienung ausgebaut, oder z.B. diese)
  • NPN Transistor (BC547)
  • Widerstände (220Ω und 4.7Ω)

Aufbau

  • GPIO 22 an den IR Empfänger (bitte Datenblatt beachten)
  • GPIO 23 als Basis des Transistors

 

Raspberry Pi Infrarot LED

Software – Raspberry Pi Fernbedienung

Ich benutze das Programm lirc. Der Vorteil daran ist, dass es unter Linux läuft und einfach damit zu arbeiten ist.
Also installieren wir lirc.

sudo apt-get install lirc -y

Nun müssen wir die /etc/modules Datei bearbeiten

sudo nano /etc/modules

und ans Ende der Datei folgendes hinzufügen:

lirc_rpi
lirc_dev

Mit STRG + O und STRG + X speichern und beenden.

Nun muss noch eine weitere Datei bearbeitet werden:

sudo nano /etc/lirc/hardware.conf

Diese bekommt folgenden Inhalt:

Infrarot Empfänger testen

Um erst einmal den Empfänger zu testen, kannst du eine normale Infrarot Fernbedienung nehmen und einige Tasten drücken. Aber erst einmal muss lirc gestoppt werden:

sudo /etc/init.d/lirc stop

und getestet.

sudo modprobe lirc_rpi

Anschließend kannst du lirc mittels

mode2 -d /dev/lirc0

starten und Tasten auf der Fernbedienung drücken. Eine Ausgabe auf der Konsole sieht etwa folgendermaßen aus:

space 16777215
pulse 9007
space 4440
pulse 620
space 504
pulse 660
space 470
pulse 630
space 494
pulse 613
...

Wenn du so etwas angezeigt bekommst, hat alles geklappt und du kannst mit STRG + C abbrechen. Solltest du nichts angezeigt bekommen, überprüfe die Verkabelung.

 

Raspberry Pi Fernbedienung registrieren

Wie du gesehen hast, sind die Codes einer Taste sehr kryptisch und schwer zu unterscheiden. Dafür hat lirc eine Möglichkeit die Tastencodes zu registrieren. Dazu muss zuerst lirc wieder gestoppt werden.

sudo /etc/init.d/lirc stop

Im folgenden wirst du nach der Belegung gefragt. Dies erfordert die Eingabe eines Keys. Um alle gültigen Keys anzuzeigen (du wirst sie gleich brauchen), gibst du folgendes ein:

irrecord --list-namespace

Nun nehmen wir auf. Schnapp dir also die Fernbedienung. Mit diesem Befehl speichern wir unsere Eingaben in der Konfigurationsdatei lirc-fernbedienung.conf (im Homeverzeichnis):

irrecord -d /dev/lirc0 ~/lircd-fernbedienung.conf

Hier musst du zwei mal mit Enter bestätigen, ehe es los geht. Als erstes müssen die Tasten erkannt werden. Drücke unterschiedliche Tasten für jeweils eine Sekunde, bis solch eine Meldung kommt:

Please enter the name for the next button (press to finish recording)

An dieser Stelle brauchst du die Codes, die du gerade ausgegeben bekommen hast. Ich möchte z.B. nur die Zahlen registrieren, also gebe ich KEY_0 ein (+ Enter) und drücke anschließend die 0 auf der Fernbedienung. Das muss für jede Taste, die später erkannt werden soll, wiederholt werden.
Bist du fertig, beende mit Enter (ohne Eingabe). Falls noch eine Anweisung kommt, folge dieser.

Als nächstes möchten wir der Konfiguration einen eigenen Namen geben, z.B. toshiba_remote. Dazu bearbeiten wir die Konfigurationsdatei:

sudo nano ~/lircd-fernbedienung.conf

In Zeile 17 kannst du den Namen anpassen. Mit STRG + O und STRG + X speichern und beenden.

Bevor wir unsere Konfigurationsdatei verschieben, machen wir noch ein Backup der alten Datei:

sudo mv /etc/lirc/lircd.conf /etc/lirc/lircd_original.conf

Jetzt können wir die Datei beruhigt verschieben

sudo cp ~/lircd-fernbedienung.conf /etc/lirc/lircd.conf

und starten anschließend lirc:

sudo /etc/init.d/lirc start

Wie man seine eigenen Codes (z.B. einer unbekannten Universalfernbedienung) einspeichert, habe ich in diesem Video gezeigt:

 

Infrarot LED testen

Mittels des Namen, den du gerade angegeben hast, kannst du dir die verfügbaren Befehle ausgeben lassen. Ich hatte meine Fernbedienung ja toshiba_remote genannt.

irsend LIST toshiba_remote ""

Anschließend kann man einen der aufgelisteten Befehle senden:

irsend SEND_ONCE toshiba_remote KEY_0

Indem man ein paar Optionen setzt, kann man auch Befehle mehrmals hintereinander senden, z.B.

#Verringert die Lautstärke 3 Sekunden lang
irsend SEND_START toshiba_remote KEY_VOLUMEDOWN; sleep 3; irsend SEND_STOP toshiba_remote KEY_VOLUMEDOWN

Schaue dazu am besten in die Hilfe von irsend (irsend --help)

Damit ist es nun möglich den TV anzuschalten, das Programm zu wechseln, etc.

Denkbar wäre sich so selbst eine All-in-One Raspberry Pi Fernbedienung zu bauen. Eine Fernbedienung sendet und die IR Diode sendet das entsprechende Signal an das jeweilige Gerät (z.B. Toshiba TV Fernbedienung an Sony Blueray Player).



, , , , , , , , , ,


58 Kommentare

  1. Simon sagt:

    HuHu,

    im ersten Abschnitt steht „Diese kann genutzt werden um mit Kombinationen der Fernbedienung oder Infrarot LED den Pi zu steuern oder um Skripte und Anwendungen zu starten.“

    Wie kann ich denn jetzt dem Pi sagen, dass er bei Tastendruck auf die Fernbedienung ein Script startet?

    • Felix sagt:

      Hi,
      dafür müsstest du z.B. ein Skript starten, welches dauerhaft auf IR Signale wartet und darauf reagiert (also eine Anwendung/Skript etc startet). Du kannst es etnweder mit screen im Hintergrund laufen lassen oder es im Autostart öffnen lassen.

    • Simon sagt:

      HuHu,

      danke für die (unerwartet schnelle) Antwort.
      Inzwischen habe ich eine andere Möglichkeit gefunden:

      Eine lircrc-Datei erstellen,
      sudo nano /etc/lirc/lircrc
      Dort beispielsweise diesen Inhalt reinkopieren:
      begin
      button = Taste1
      prog = irexec
      config = sh /home/pi/aktion.sh
      flags = quit
      end

      Taste1 muss eine vorhandene Taste in der Datei lircd.conf sein.

      Mit
      irexec /etc/lirc/lircrc
      wird irexec gestartet. Wird jetzt die Taste1 auf der Fernbedienung gedrückt, startet das Script aktion.sh.

      Mit der Option -d wird der Daemon im Hintergrund gestartet
      irexec -d /etc/lirc/lircrc

      Wenn in der Datei /etc/init.d/lirc
      START_IREXEC=true
      steht, startet das sogar automatisch beim nächsten Systemstart wieder mit. (Wenn die Option -d für den Daemon verwendet wurde.)

      LG Simon

    • Felix sagt:

      Hi Simon,
      Danke, dass du deinen Code geshared hast. lirc hat was das angeht wirklich viele Optionen und ist für IR Anwendungen die wohl beste Lösung. Sobald ich Zeit finde werde ich deinen Code testen und ins Tutorial einfügen 🙂

      LG Felix

    • Dominik sagt:

      Hallo, ich habe das Script ausprobiert klappt auch alles super, nur nach ein reboot muss ich den Daemon aber wieder manuell starten, weiß jemand eine Lösung?

      Gruß Dominik

  2. Peter sagt:

    Hallo, Hallo,
    brauche mal unbedingt Hilfe! Ich habe alles so aufgebaut und installiert wie oben beschrieben, mehrere Fernbedienungen ausprobiert und mit Kamera auf Signal überprüft. Keine Fehlermeldung bei Software.: Trotzdem keine Meldung auf der Konsole. Was ich nicht verstehe ist, woher weiß der RPI dass GPIO 22 als Input arbeiten soll?
    Muss ich dazu noch ein Programm schreiben, um das zu definieren?

    Liebe Grüße
    Peter

    • Felix sagt:

      Hi Peter,
      Kann es evtl an deinem IR Empfänger liegen? Ich hatte in der Vergangenheit auch ein paar Modelle, die die Codes der normalen Fernbedienungen nicht erkannt haben.
      GPIO 22/23 sind die vordefinierten GPIOs in lirc (zumindest gewesen, als ich das Tutorial geschrieben habe, sollte sich aber normalerweise nicht ändern).

      LG Felix

    • Peter sagt:

      Hallo Felix,
      wahrscheinlich nicht, da ich zwei baugleiche Empfänger getestet haben. Bei beiden habe ich die Spannung während der Bedienung des IR Senders am Ausgang gemessen. Sie geht von 3,3 V auf ca. 2,4 V zurück. Da ein Multimeter nur den Mittelwert misst, kann das auf Grund der Pulsbreitenänderung durch die Modulation des 38 kHz Signals mit den Bitmustern (z.B. RC5) durchaus passen, d.h. es passiert etwas.
      Welche anderen Möglichkeiten gibt es, die Funktion des TSSP4P38, der Infrarotempfänger, den ich verwende, mit dem RPI zu testen.

      Karnevalistische Grüße aus Aachen
      Peter

  3. Peter sagt:

    Es funktioniert!!! auf GPIO 18!
    Jetzt aber ab in den Karneval

    Gruß
    Peter

    • foo sagt:

      Ja, bei mir geht es jetzt auch auf GPIO18 🙂

    • Philipp sagt:

      Ja, das liegt daran das wir den Raspberry Pi 2 benutzen und hier der Raspberry Pi 1 benutzt wurde. Um es zum laufen zu bekommen, musste ich auch GPIO 18 für den IR Empfänger nutzen und wie in einem anderen Kommentar schon erwähnt, das hier:

      dtoverlay=lirc-rpi

      in die /boot/config.txt am Ende einfügen.

    • Philipp sagt:

      Und außerdem GPIO 17 für den die Transmitter LED.

      Also haben die Standard GPIOs sich beim raspberry pi 2 auf 17 für transmitter und 18 für Empfänger geändert.

      Auch hier nachzulesen:
      http://aron.ws/projects/lirc_rpi/

  4. Peter sagt:

    Hallo, noch mal eine Frage:
    Ich habe jetzt durch die Probiererei alle config Dateien durcheinander gebracht und würde deshalb das LIRC noch mal neu installieren. Da ich aber blutiger Anfänger bin, weiß ich nicht, wie man LIRC wieder deinstalliert. Kann mir dabei jemand helfen?

    Liebe Grüße
    Peter

    • Felix sagt:

      Hallo Peter,
      versuch es mal mit sudo apt-get remove lirc (anstatt von remove kannst du auch purge nehmen, dadurch werden globale Konfigurationen auch entfernt).
      Du findest hier auch noch zusätzliche Optionen für apt-get: wiki.ubuntuusers.de/apt/apt-get

      LG Felix

  5. Mathias sagt:

    Hallo,

    ich bekomme leider folgende Fehlermeldung:

    root@raspberry:~# mode2 -d /dev/lirc0
    mode2: could not open /dev/lirc0
    mode2: default_init(): Device or resource busy

  6. Mathias sagt:

    Hallo,

    ich habe in der /boot/config.txt folgendes hinzugefügt:
    dtoverlay=lirc-rpi,gpio_in_pin=23,gpio_out_pin=22
    Nun kommt die Fehlermeldung nichtmehr, aber beim Drücken von den Fernbedienungsknöpfen kommen keine Signale bei mode2 -d /dev/lirc0
    Soll ich dir ein Bild von meinem Breadboard senden?

  7. Karl-Heinz sagt:

    Hi ich habe alles so nach gebaut
    Habe anfangs GPIO 18 als input genommen ging einwandfrei
    GPIO 23 als Ausgang über einen Transistor incl Widerständen zu infrarot led
    Habe eine einfache aus dem Elektronikladen gekauft
    Das empfangen ging von anfang an aber das senden nicht
    Habe dann dtoverlay=lirc-rpi,gpio_in_pin=23,gpio_out_pin=22 in die /boot/config.txt eingebaut.
    den input auf 22 gelegt funktiniert auch nur das senden immer noch nicht
    Die Sende diode leuchtet dauernd (Mit HandyCam getestet) Aber sie flackert nicht beim senden .
    An GPIO 17 und 27 habe ich meine 433mhz sender & Empänger beide funktionieren einwandfrei
    Nur lirc senden geht nicht.
    Wie kann ich in der fehlersuche vorgehen
    Danke im voraus

    • Felix sagt:

      Also an GPIO 18 funktioniert das senden? Wenn ja ist evtl. der neue Pin (22) anders in Betrieb?
      Falls es an keinem Pin funktioniert, solltest du eine andere Sende Diode versuchen und einen anderen Widerstand (schaue dazu am besten in das Datenblatt deiner IR Diode)

  8. Karl-Heinz sagt:

    Du hast dich verlesen oben steht GPIO 18 als input
    Output habe ich immer den GPIO 23
    Hm aber wenn doch die Diode leuchtet und nur nicht flackert so wie sie soll ,dann sollte doch die hardware seite stimmen oder?
    Drücke ich bei meiner normalen fb auf nen knopf dann flackert die ir diode
    das sollte sie ja auch am rpi machen oder?

    • Felix sagt:

      Oh, entschuldigung. Woher weißt du, dass der Empfänger richtig empängt? Hast du es mit einer Fernbedienung ausprobiert? Es kann ja auch sein, dass die Diode richtig sendet aber das Signal nicht richtig empfangen wird, wobei ich davon weniger ausgehe.

  9. Karl-Heinz sagt:

    Hi
    Ich habe nach dieser Anleitung hier alles aufgebaut.
    Habe mit modprobe … die Raw daten gefunden.
    Dann die Fernbedienung eingelesen .
    Das hat alles super geklappt
    starte ich irw und drücke eine Taste auf der Fernbedienung ,dann schreibt mir die Konsole welche Taste ich gedrückt habe.
    So soll es ja auch sein.So das zum Thema Empfangen also da geht alles 100%
    Richte ich jetzt die Sende LED auf die EmpfangsLED ,so zeigt irw nichts an.
    Den Test hab ich mit der Handy Cam gemacht. Die IR Diode leuchtet andauernd aber es kommt nicht dieses Flackern.
    MFG Kalle

  10. Karl-Heinz sagt:

    Hi Felix
    Ich habe alles nach dieser Anleitung aufgebaut
    Hab die FB eingelesen und mit irw getestet das klappt 100%
    Hab dann 3 sachen probiert
    1) Diode zum TV =nix
    2)Diode zum rpi Empfänger =(irw)nix
    3)Diode zu Handy Cam =Lampe leuchtet permanent .
    Aber kein Flackern .

    • Felix sagt:

      Hast du schon eine andere IR Diode versucht? Es kann gut sein, dass sich dein Empfänger bzw. TV und die Sendediode nicht „vertragen“. Vielleicht ist die Diode auch defekt?

  11. Karl-Heinz sagt:

    Hi ich erklär es mal anderst
    Ich bin der Meinung das kein Signal an die Diode geht
    Also wenn ich von der Diode sende dann muss die Empfangsdiode des RPI irgendwas empfangen
    Ob die Signale die richtigen zumn Steuern meiner Geräte sind oder nicht istb erstmal egal.
    Aber die Sende diode empfängt garnix
    Mir kommt eine Idee gerade irw kann ja nur die signale empfangen die ich vorher angelernt habe
    anderst würde irw nichts anzeigen.
    Ich müsste also einmal im RAW empfangen und einmal mit dem PI senden.
    Das geht aber nicht da zum Raw empfangen sudo service lirc stop und dann mod2 …..
    Hm also müsste ich mir im Handy die haben ja alle IR drinn eine APP suchen die RAW signale empfängt
    Richtig?

    • Felix sagt:

      Hi,
      ja das ist auch möglich. Du hast aber weiter oben geschrieben, dass du die Raw Daten der Fernbedienung bereits ausgelesen hast (was lirc ja kann). Du kannst doch auf dem selben Weg die Raw Daten der IR Diode auslesen. Falls du dort auch nichts empfängst liegt es mit Sicherheit an der Sendediode. Empfängst du etwas kannst du den Code ja mit dem Code deiner Fernbedienung vergleichen, eventuell wird der Code auch falsch gesendet.
      LG Felix

  12. Karl-Heinz sagt:

    Hi
    Wie soll ich das anstellen mit einem Pi senden und raw daten empfangen
    für das eine muss der dienst laufen und für das andere muss er beendet werden??

    • Felix sagt:

      Wenn du den Pi über SSH steuerst kannst du z.B. zwei Sessions eröffnen und auf der einen senden, auf der anderen empfangen.

  13. W.Pavel sagt:

    Guten Tag,
    ich denke, die – im übrigen lobenswerte – Anleitung enthält einen irritierenden Fehler: im ersten Bild, dem gezeichneten Aufbau, ist offenbar kein „TSOP4838 oder ähnlich“ abgebildet, sondern ein TSOP1136 oder TSOP31236 oder SFH507 oder der von mir verwendete TSOP31238. Im nächsten Bild, dem realen Foto des Aufbaus sieht es durchaus nach einem TSOP4838 aus.
    Das wäre nicht weiter schlimm, wenn nicht die Pin-Belegungen unterschiedlich wären. Beim TSOP4838 ist tatsächlich Pin1=Out, Pin2=Gnd, Pin3=VS , wie es das erste Bild zeigt – allerdings würden bei einem TSOP4838 die Pins in gleichem Abstand stehen.
    Bei einem der anderen genannten Empfänger ist dagegen Pin1 (der im Bild linke) = Gnd, Pin2=VS und der abgesetzte Pin3=Out und müsste eigentlich am GPIO22 angeschlossen sein.
    In dieser Weise funktioniert es bei mir auch einwandfrei. Ich habe NICHT ausprobiert, was passiert, wenn ich den TSOP31238 so anschließe, wie es das erste Bild zeigt.

    Gleich noch eine Bemerkung, weil einige Antworten sich mit den vorgegebenen GPIOs 22 und 23 beschäftigen. Man kann die GPIOs frei wählen, wenn man in der Datei /etc/modules statt der Zeile lirc_rpi zum Beispiel die Zeile schreibt:
    lirc_rpi gpio_in_pin=19 gpio_out_pin=21
    – mit den gewünschten GPIO-Nummern statt 19 und 21
    Bei neueren Systemen (ab Kernel 3.18.3) schreibt man stattdessen in die Datei /boot/config.txt die Zeile
    dtoverlay=lirc-rpi,gpio_out_pin=21,gpio_in_pin=19
    wieder mit den gewünschten Numern statt 21 und 19.

    • Felix sagt:

      Hallo,
      danke dafür, das Problem war, dass es kein TSOP4838 in fritzing vorhanden war, daher habe ich das ähnlichst aussehende Bauteil verwendet, da ich das Bild nur als zusätzliche Visualisierung zeigen wollte. Zugegebenermaßen habe ich nicht darauf geachtet, dass die Anschlüsse verschieden sind. Ich habe mal einen Hinweis beim Aufbau hinzugefügt, dass man das Datenblatt des jeweiligen IR Empgänger beachten soll.
      LG Felix

  14. Daniel sagt:

    Hallo, super Anleitung. Habe allerdings einen kleinen, aber wichtigen Fehler gefunden, an dem ich ewig gehängt bin. Im ersten Bild, ganz oben, ist der rote Draht, welcher die Strohmzufuhr zur LED gewährleistet, in der ersten Lochreihe, er muss aber, wie im unteren Bild richtig, in der 2 Reihe sein!!!

    Ansonsten viiiiiiielen Dank für diese Anleitung 🙂

    • Felix sagt:

      Hey,
      du hast natürlich Recht: Ich hatte das eigentliche Bild schon vor längerem aktualisiert, nur vergessen, dass ich das Titelbild auch noch per Hand ändern muss. Hab das nun auch geändert, danke für den Hinweis 🙂

  15. Falko sagt:

    Hallo,
    Ich hab alles so angeschlossen empfangen funktioniert einwandfrei. Fernbedienung einlesen hat auch gut funktioniert.
    Aber am senden hapert es noch ziemlich. Irw erkennt ja die befehle die vorher eingelesen wurden und giebt dann die empfangen befehle mit namen der gedrückten taste und zugewiesenem gerätenamen aus. Wenn ich jetzt eine 2te console öffne und auf der einen irw laufen lasse und von der anderen den sende befehl gebe, müsste irw dann ja was ausgeben. tuht es aber ums verrecken nicht. Diode leuchtet unter der Handycamara wenn ich einen befehl absende aber nicht dauerhaft und sie tuht auch nur kurz leuchten aber nicht flackern wie es die von der fernbedienung macht.

    Jemand eine idee?
    schönen abend.

  16. René sagt:

    Hi,

    danke für die tolle Anleitung 🙂

    Bei mir funktioniert jetzt alles soweit. Mit dem Senden hatte ich ursprünglich Probleme, nachdem ich den 4,7k Ohm Widerstand weggelassen habe und die Spannung direkt vor die LED gelegt habe, funktioniert nun alles.

    Kann dabei jetzt irgendwas passieren? :/ Oder ist das kein Problem ohne den Widerstand?

    Viele Grüße,

    René

    • Heinz sagt:

      Mit 4,7 Kiloohm kann das auch nicht klappen. 4,7 Ohm wie oben angegeben ist richtig.
      Aber auch ohne Vorwiderstand klappt es, die LED verkraftet einen sehr hohen Impulsstrom. Ob sie und der Transistor das aber lange mitmachen…?

      Beste Grüße
      Heinz

  17. Chris sagt:

    Hallo, Danke für die schöne Anleitung.
    Funktioniert alles super. Jedoch komme ich an einem Punkt nicht mehr weiter.
    Bei vergeben von einem Namen….
    muss ich das wort „NAME“ in der Datei entfernen?
    bekomme nur fehlermeldungen wie z.b. „unknown remote“.

    Viele Grüße
    Chris

  18. Tobi sagt:

    Hallo,
    erstmal vielen Dank für diese sehr schöne Anleitung. Sie hat mir schnell zu Erfolg verholfen.
    Allerdings – auch auf die Gefahr hin mich zu blamieren – kann es sein, dass der BC547 in der Anleitung falsch herum eingebaut ist? Der (von der Beschriftungsfläche gesehen) linke PIN ist bei Dir an Masse, der rechte an VCC. Laut Datenblatt ist der Kollektor aber links, der Emitter rechts, somit sollte er denke ich andersherum eingebaut werden.

    Bei mir funktionierte das Ganze zwar auch andersherum, allerdings leuchteten die LEDs nur sehr schwach. Fernsteuern war nur auf ca 1-2m möglich. Seitedem ich ihn umgedreht habe, funktioniert es viel besser und die LEDs leuchten auch viel heller (in meiner Handycam)

    Viele Grüße

    Tobi

  19. Tobi sagt:

    Hallo,
    erstmal vielen Dank für diese sehr schöne Anleitung. Sie hat mir schnell zu Erfolg verholfen.
    Allerdings – auch auf die Gefahr hin mich zu blamieren – kann es sein, dass der BC547 in der Anleitung falsch herum eingebaut ist? Der (von der Beschriftungsfläche gesehen) linke PIN ist bei Dir an Masse, der rechte an VCC. Laut Datenblatt ist der Kollektor aber links, der Emitter rechts, somit sollte er denke ich andersherum eingebaut werden.

    Bei mir funktionierte das Ganze zwar grundsätzlich auch wie in der Anleitung, allerdings leuchtet die LED dann nur sehr schwach. Fernsteuern war nur auf ca 1-2m möglich. Seitedem ich den BC547 umgedreht habe, funktioniert es viel besser und die LEDs leuchten auch viel heller (in meiner Handycam)

    Viele Grüße

    Tobi

    • Felix sagt:

      Hallo Tobi,
      vielen Dank für den Hinweis! In dem Schaltplan habe ich tatsächlich vergessen den Transistor zu drehen, tut mir leid. Ich habe es nun verbessert und aktualisiert 🙂
      LG Felix

  20. Christoph sagt:

    Hallo,

    Ich bin noch ziemlicher Anfänger beim Raspberry Pi und habe ein Problem an dem ich hängen geblieben bin. Wenn ich den Empfänger mit „sudo modprobe lirc_rpi“ testen möchte, erhalte ich folgende Fehlermeldung: „ERROR: Could not Insert ‚lirc_rpi‘: no such device“. Was mache ich falsch?

  21. Günter sagt:

    Wie kann ich mehrere Fernbedienungen einbinden?
    Ich habe mir eine allgemeine RC5-Datei als lircd.conf eingebunden und der Raspi gibt auch Signale auf dem Pin (irsend)aus. Wie sähe eine lircd.conf für 2 oder mehr verschiedene Fernbedienungen aus?

  22. Holger sagt:

    Hallo Felix,
    ich bin eben über eine andere Internetseite auf diese hier gestoßen und finde das Thema „Pi fernsteuern“ ganz interessant, zumal ich das schon für den Windows-PC gemacht habe.
    Nur bin ich etwas verwirrt. Für eine Fernsteuerung des Pis braucht man doch nur den IR-Empfänger, wozu dient also dann die IR-Diode?
    Für eine Steuerung eines TVs mit einer fremden Fernbedienung bräuchte man die genauen FB-Codes des Fernsehers, oder? Einfacher wäre dann, sich eine Universal-FB zu holen.
    Noch etwas: In den Kommentaren schreiben die Leute, dass die LED flackert. Das kann nicht sein, denn IR kann man nicht sehen.
    Bitte kläre mich auf.

    LG Holger

    • Felix sagt:

      Hallo Holger,
      der Aufbau war von mir so geplant, dass man erst seinen Fernbedienungscode ausließt und dann damit z.B. den TV steuert. Nun kann man die Sende Diode auch weg lassen und mittels der Fernbedienung den Pi steuern. Du hast hier also mehrere Möglichkeiten und kannst das für dein Projekt nutzen, was dir sinnvoll erscheint.
      Es geht dabei auch nicht nur um den TV: Meine Idee war damals auch z.B. Deckenlichter (die via Infrarot schaltbar sind), Musikanlage, etc.
      PS: Das mit dem Flackern konnte ich bisher nicht nachvollziehen. Bei dunklen IR Dioden kann man das Leuchten leicht sehen, ich bin bisher davon ausgegangen.
      LG Felix

  23. Holger sagt:

    Guten Morgen Felix,
    danke für deine schnelle Antwort. Du willst also damit automatisch über den Pi den TV oder auch andere IR-Geräte steuern.
    Du schreibst im „Vorwort“: „Für verschiedene Anwendungen, wie z.B. das Mediacenter für den Raspberry Pi OpenELEC / KODI ist eine Steuerung via Infrarot Raspberry Pi Fernbedienung sehr nützlich. Diese kann genutzt werden um mit Kombinationen der Fernbedienung oder Infrarot LED den Pi zu steuern oder um Skripte und Anwendungen zu starten.“
    Dafür braucht man ja die IR-Diode nicht. Deshalb auch meine Verwirrung. Ich las es so, als ob du mit der IR-LED den Pi steuern wolltest.
    Für mich, der keinen TV hat und auch sonst nichts fernsteuert wäre die Anwendung „Kodi steuern“ interessant, wenn ich denn mal mein Medien-Center angehe…
    Du hast in deinem Aufbaubild immer noch den Pin 15 = GPIO22 eingezeichnet. Für die neueren Lirc-Versionen ist es, wie schon in den Kommentaren beschrieben, der Pin 12 =GPIO18. Nun gibt es Anwendungen, die zwingend den GPIO18 brauchen (LCD-Anzeige). Ich habe unter „http://www.forum-raspberrypi.de/Thread-lirc-auf-anderen-gpio-port-legen“ eine Anleitung gefunden, wie man für Lirc den Pin ändern kann. Vielleicht ist das eine Anregung, die Anleitung anzupassen?
    Zu den IR-LED: Ich habe, zumindest bei meinen Fernsteuerungen und IR-Dioden, noch nie ein Glimmen wahr genommen. Es kann sein, dass die LEDs ein wenig in der Wellenlänge streuen, aber das kommt mMn selten vor. Der Mensch kann Längen unter 780nm nicht mehr wahrnehmen, die IR-LEDs werden mit Wellenlängen von 840-950nm hergestellt.

    LG Holger

    • Felix sagt:

      Hallo Holger,
      das Tutorial habe ich vor über zwei Jahren geschrieben, da war u.a. die Steuerung von KODI noch nicht so einfach (inzw. gibt es ja sogar eine App zum steuern etc.) und generell gab es nur wenig auf dem Gebiet. Ich werde die Infos mal updaten, danke für die Infos! An sich habe ich es zu der Zeit so umgesetzt, dass ich erst das Signal empfangen habe und dann, um zu testen ob es das richtige Signal ist, noch einmal abgesendet.
      LG Felix

  24. Lulu sagt:

    Kann der IR Sensor wirklich ohne weiteres an 5V angeschlossen werden? Ist das nicht gefährlich für die GPIOs? Man findet beide Varianten im Internet, 5V und 3,3V
    Gruss, Lulu

    • Felix sagt:

      Das kommt auf den IR Sensor an: Einige haben einen eingebauten Widerstand, weshalb man unbedingt das Datenblatt beachten sollte. Im Zweifel würde ich einen kleinen Vorwiderstand setzen.

  25. Disast3r sagt:

    Ich wollte gerne bestimmte ir Signale weiterleiten und andere dazu bringen am raspi bestimmte gpios mit relais schalten, hat da jemand eine gute Idee, dass wie man das realisieren kann? Ich finde deine Anleitung hier verdammt gut, wollte auch dafür kurz danke sagen.

    • Felix sagt:

      Hey,
      danke für das Lob 🙂
      Im Grunde ist das recht einfach: Sobald du ein Signal empfängst prüfst du, ob es mit dem gewollten Signal übereinstimmt und falls ja startest du entweder ein anderes Skript/Befehl oder direkt den Code zum Ansteuerun eines Relais. Dazu habe ich auch ein kleines Tutorial gemacht, was du hier findest: Raspberry Pi: Relais-Schalter per GPIO steuern

  26. Holger sagt:

    Gibt es die Möglichkeit den Outport temporär zu ändern um 3 IR Dioden getrennt voneinander betreiben zu können?

    Gruß
    Holger

  27. Carsten Oppitz sagt:

    Hallo,

    ich habe mir ein Linker Kit Baseboard sowie einige LinkerKit Sensoren, unter anderem ein IR Receiver gekauft. Nun ist es so das ich bisher entweder nur meine Beamer Fernbedienung auslesen lassen konnte wenn ich auf 3.3V Spannung gestellt habe (keine andere FB hat funktioniert). Stelle ich nun auf 5V und teste mittels „mode2 -d /dev/lirc0“ so laufen unaufhörlich Werte durch die Konsole obwohl ich keine Buttons drücke. So als ob mein gesamter Raum IR verstrahlt ist 😀

    Was könnte den der Fehler sein?

    Danke schonmal im Vorraus!

  28. QB sagt:

    Hallo @all

    ich habe ein vielleicht blos kleines Problem.
    Ich wollte mit der lircd.conf einen Befehl in der .lircrc ausführen. Aber er macht nix. Er gibt mir auch kein fehler aus. Und ircat hab ich nicht ganz verstanden es zu benutzen. Wenn ich den Befehl „sudo ./send 11111 1 1“ einzeln in der Konsole ausführe funktioniert es. Und die anderen IR Befehle in der .conf funktionieren auch. irexec prozess läuft (htop).

    Meine lircd.conf sieht so aus:

    # Please make this file available to others
    # by sending it to 
    #
    # this config file was automatically generated
    # using lirc-0.9.0-pre1(default) on Fri Nov 25 21:28:42 2016
    #
    # contributed by 
    #
    # brand:                       /home/pi/tv.conf
    # model no. of remote control: 
    # devices being controlled by this remote:
    #
    
    begin remote
    
      name  tv
      bits           32
      flags SPACE_ENC|CONST_LENGTH
      eps            30
      aeps          100
    
      header       4571  4441
      one           617  1621
      zero          617   501
      ptrail        616
      gap          107868
      toggle_bit_mask 0x0
    
          begin codes
              KEY_POWER                0xE0E040BF
          end codes
    
    end remote
    
    begin remote
    
      name  denon
      bits           24
      flags SPACE_ENC
      eps            30
      aeps          100
    
      header       3411  1617
      one           478  1197
      zero          478   358
      ptrail        478
      pre_data_bits   24
      pre_data       0x2A4C02
      gap          74189
      toggle_bit_mask 0x0
    
          begin codes
              KEY_POWER                0x8A0088
              KEY_CD                   0x8434B2
          end codes
    
    end remote    
    
    #433mhz
    
    begin remote
    
      name  LAMPEN
      bits           12
      flags SPACE_ENC|CONST_LENGTH
      eps            30
      aeps          100
    
      header       2453   529
      one          1257   532
      zero          660   532
      gap          44813
      toggle_bit_mask 0x0
    
          begin codes
              ALLELAMPEN                     0x5D0
          end codes
    
    end remote

    Meine .lircrc sieht so aus:

    begin
     prog = irexec
     remote = LAMPEN
     button = ALLELAMPEN
     config = sudo ./send 11111 1 1
    end

    Seht ihr rein in den Dateien schon einen möglichen fehler. Irgendwie klappt die Verbindung zwischen lircd.conf und .lircrc Eintrag nicht.
    Ich weiß einfach nicht mehr weiter.
    Habe das Raspbian Jessie mit Pixel auf dem Raspi 2.

    Danke schonmal.
    LG QB

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Blog abonnieren

Abonniere Tutorials-RaspberryPi, um kein Tutorial mehr zu verpassen!