Mithilfe eines preiswerten RFID-Card-Readers und der Bibliothek WiringPi2 rüsten Sie einen Raspberry Pi 3 schnell und einfach zum vielseitigen RFID-Lesegerät auf.
Das Kürzel RFID steht für “radio-frequency identification”, eine Technik zum automatischen und berührungslosen Identifizieren von Gegenständen und Lebewesen mit Radiowellen. Dabei befindet sich ein sogenannter Transponder, der den Kennzeichnungscode enthält, am Objekt; bei Tieren und Menschen lässt sich ein solches oft nur reiskorngroßes Gerät auch implantieren. Ein RFID-Lesegerät erzeugt zum Auslesen des Transponders Radiowellen, die nicht nur dem Datentransfer dienen, sondern darüber hinaus den Transponder auch mit Betriebsenergie versorgen können. Das funktioniert nur im Nahbereich; für größere Reichweiten gibt es (teure) aktive Transponder mit eigener Energieversorgung.
Neben der geringen Größe der Komponenten und deren günstigem Preis – ein passiver Transponder kostet nur wenige Cents – liegt der Vorteil der Technik vor allem in der unauffälligen Auslesemöglichkeit. Dementsprechend schnell haben sich RFID-Systeme in der Praxis verbreitet. Zu den bekanntesten Anwendungen gehören die inzwischen fast obligatorischen Tags an Textilien, aber auch kontaktlose Chipkarten, Wegfahrsperren in Autos und ID-Chips für Haustiere. Auch alle seit dem November 2005 ausgestellten deutschen Reisepässe und ab November 2010 herausgegebenen Personalausweise enthalten einen RFID-Chip.
RFID mit dem RasPi
Als Basis für dieses Projekt dient ein Raspberry Pi 3 mit dem Linux-basierten Betriebssystem Raspbian “Jessie”. Außerdem benötigen Sie einen Aufsatz für den RasPi 3, ein sogenanntes Shield (Abbildung 1), wie den 125KHz RFID Reader for Raspberry Pi von CognIoT [1]. Zum Lieferumfang des Shields gehören neben einer Antenne, über die sich die Daten der RFID-Karte auslesen lassen, auch einige RFID-Tags zum Ausprobieren. Der Kostenpunkt inklusive Versand liegt bei rund 40 Euro.

Abbildung 1: Der 125-kHz-RFID-Reader von CognIoT für den Raspberry Pi 3 zum Auslesen von RFID-Karten.
Um Informationen über das Shield auslesen zu können, benötigen Sie noch entsprechende Software-Komponenten. In unserem Beispiel wickeln wir den Zugriff auf den RFID-Reader über die Programmiersprache Python 3 ab, die unter Raspbian in der Regel bereits vorinstalliert ist. Ob das auf Ihrem System der Fall ist, prüfen Sie vorab mithilfe des Kommandos python3 --version. Erscheint keine Versionsnummer, installieren Sie Python 3 auf der Konsole nach (Listing 1, erste Zeile).
Danach müssen Sie noch einige Werkzeuge einrichten, die Sie später zur Installation der Bibliothek WiringPi2 benötigen (Listing 1, letzte Zeile). Anschließend geht es an die Inbetriebnahme des Shields und das Vorbereiten der verwendeten Bibliothek.
Listing 1
$ sudo apt-get install python3 $ sudo apt-get install python-dev python-setuptools swig swig3.0
WiringPi2 einrichten
Als Grundlage für die Software zum Ansprechen und Auslesen des Shields kommt die Bibliothek WiringPi2 zum Einsatz, die Sie dazu zuerst herunterladen und einrichten müssen. Für dieses Projekt haben wir das GIT-Repository von neuralpi [2] verwendet. Am einfachsten gelingt die Installation via Git – falls Sie es auf dem RasPi 3 noch nicht installiert haben, holen Sie das als Erstes nach (Listing 2, Zeile 1).
Über die Konsole des Raspberry Pi 3 laden Sie nun den Quellcode der Bibliothek herunter (Zeile 2). Für das Übersetzen der Bibliothek benötigen Sie Ausführungsrechte, die beim Herunterladen über Git häufig nicht gesetzt sind. Deshalb wechseln Sie in den Ordner WiringPi/ und setzen die entsprechende Berechtigung (Zeile 3 und 4). Nun können Sie die Library kompilieren (Zeile 5).
Anschließend kehren Sie ins Wurzelverzeichnis der Bibliothek zurück (Zeile 5) und bereiten das in C geschriebene WiringPi2 mithilfe des Werkzeugs Swig auf den Einsatz mit Python vor (Zeile 6). Nach dem abschließenden Einrichten (Zeile 7) lässt sich die Bibliothek nun systemweit verwenden.
Listing 2
$ sudo apt-get install git-core $ git clone --recursive https://github.com/neuralpi/WiringPi-Python.git $ cd WiringPi $ sudo chmod +x build $ sudo ./build $ cd .. $ sudo swig3.0 -python wiringpi.i $ sudo python3 setup.py install
UART aktivieren
Die Kommunikation zwischen dem RFID-Shield und dem Raspberry Pi erfolgt über die sogenannte UART-Schnittstelle, also jene Pins des RasPi 3, auf denen das Shield steckt. Aktivieren Sie diese Schnittstelle erst, nachdem Sie WiringPi2 eingerichtet haben – andernfalls kann es zu Komplikationen bei der Nutzung des Shields kommen.
Um die UART-Schnittstelle zu aktivieren, ergänzen Sie die Datei config.txt um einige Parameter. Öffnen Sie sie dazu in einem Texteditor Ihrer Wahl, etwa mittels des Befehls sudo nano /boot/config.txt, und hängen Sie ans Dateiende folgende beiden Zeilen an:






