Blog der Heimetli Software AG

Einen Infrarot-Empfänger auf dem Raspberry installieren

Das ist keine Anleitung im üblichen Sinn, denn auch nach zwei Versuchen weiss ich immer noch nicht wie man es "richtig" macht...

1. Versuch

Ging eigentlich ganz glatt, aber ich musste dafür lange im Internet herumsuchen. Wie gewöhnlich findet man vor allem längst veraltete Anleitungen, was die Sache mühsam macht.

Was nicht gelungen ist: das Teach-In der Tasten der Fernbedienung. So oft ich es auch versucht habe, das Config-File wurde nie richtig erstellt. Schliesslich fand ich eine passende Konfiguration im Internet.

2. Versuch

In einer Gruppe die lirc ebenfalls installieren wollte, gab es Leute die folgenden Fehler bekamen:

@raspberrypi:~/lirc $ python3 lirctest.py 
Traceback (most recent call last):
  File "lirctest.py", line 1, in <module>
    import lirc
  File "/usr/lib/python3/dist-packages/lirc/__init__.py", line 7, in <module>
    from .client import get_default_lircrc_path
  File "/usr/lib/python3/dist-packages/lirc/client.py", line 38, in <module>
    import _client
ModuleNotFoundError: No module named '_client'

Die Vermutung lag nahe dass das Problem mit der Raspbian-Version zusammenhhängt. Deshalb habe ich ein tagesaktuelles Raspbian auf eine frische SD-Karte geschrieben und auf dieser Basis lirc noch einmal installiert.

Die Tastendefinition habe ich übernommen. Ob das Teach-in mit der neuen Version funktionieren würde habe ich also nicht geprüft.

Tatsächlich ist der gleiche Fehler diesmal auch bei mir aufgetreten. Eine Lösung dazu fand ich nicht, aber die Deinstallation und Neu-Installation von lirc hat den Fehler zum Verschwinden gebracht!?!

IR-Empfänger und Fernbedienung

Beide stammen aus einem Starterkit und haben die Bezeichnung Keyes. Auf dem Receiver steht KB45754.

Der Anschluss an den PI könnte nicht einfacher sein: 3 Verbindungen sind alles was nötig ist.

Die Pins auf dem Empfänger sind klar beschriftet mit DAT, VCC und GND. Auf dem Raspberry habe ich GPIO23 als Eingang gewählti, und die nächstgelegenen Pins für 3.3V und Ground.

Auf dem Empfänger gibt es eine LED. Wenn das Breakout richtig angeschlossen ist dann blinkt sie bei jedem Tastendruck.

IR-Receiver Keyes KB45751

Die Anschlüsse links im Bild gehören zu einer 7-Segment Anzeige, sind also irrelevant für dieses Projekt.

Anschluss am Raspberry

Die Fernbedienung dazu:

Keyes Remote

Vorgehen beim zweiten Versuch

Wie gesagt: die Basis war eine ganz neue SD-Karte mit der letzten verfügbaren Raspbian-Version. Andere Software war nicht installiert.

# Als user root
apt-get update
apt-get install lirc
cd /etc/lirc
mv lircd.conf.dist lircd.conf
cd lircd.conf.d
mv devinput.lircd.conf devinput.lircd.conf.dist

# Das File aus dem Internet
cp /.........../keyes.lirc.conf .
 
vi /boot/config.txt
# Folgende Zeile einfügen unter "...infrared..."
dtoverlay=gpio-ir,gpio_pin=23

cd /etc/lirc
vi lirc_options.conf
# Folgende Zeilen aendern
driver          = default
device          = /dev/lirc0

reboot

Nach der Installation war ein Test mit Python fällig:

import lirc

connection = lirc.client.RawConnection()

while True:
    print( connection.readline() )

Und dabei tauchte der oben erwähnte Fehler auf.

Nach vielen erfolglosen Versuchen wusste ich nichts mehr anderes als lirc zu deinstallieren und neu zu installieren. Und siehe da: es half!

Die Konfiguration in /etc/lirc blieb bei diesem Prozedere erhalten.