Seite wählen

NFC-Leser mit einem Raspberry Pi

von | Mrz 14, 2019 | Linux, Development, Python

In meinem letzten Blogpost habe ich schon etwas über NFC und RFID geschrieben. In diesem Blog erstellen wir einen Leser, mit dem man beispielsweise auch NFC-fähige Karten oder Chips auslesen kann.

Was brauchen wir?

  1. Einen Raspberry Pi
  2. Female-Female Jumperkabel
  3. RFID-Reader MFRC522 Modul

Hier benutze ich das zurzeit das aktuellste Modell des Raspberrys, den 3 B+.

Natürlich sind auch ältere Pi Modelle für dieses Projekt ausreichend.

Die Jumperkabel sowie das Modul können sehr leicht und kostengünstig auf Plattformen wie Amazon oder Ebay gefunden werden.

Verkabelung

Als Erstes nehmen wir uns sieben Jumperkabel her. Am besten verschiedenfarbige Kabel, zur besseren Übersicht.

3,3 V -> Pin 1,    RST -> Pin 22,

GND -> Pin 6,    IRQ -> bleibt frei,

MISO -> Pin 21,    MOSI -> 19,

SCK -> 23,    SDA -> Pin 24

Software

 

Wenn die Verkabelung abgeschlossen ist, können wir mit der Software beginnen.

Zunächst muss das SPI Interface aktiviert werden. Das kann unter „Einstellungen“ -> „Raspberry-Pi-Konfiguration“ ->

„Schnittstellen“ gemacht werden.

Nach einem Neustart kann per Befehl überprüft werden, ob SPI aktiviert ist.

Konsolenbefehl: lsmod | grep spi

Es sollte so eine ähnliche Ausgabe kommen:

Den Code findet ihr hier: SPI Py als Zip Datei, der Ordner kann heruntergeladen und entpackt werden.

Nun wechselt ihr in das  /SPI-Py/MFRC522-python Verzeichnis und führt dort die Read.py Datei aus.

Dies kann man mit dem Befehl  python Read.py  machen.

Zum Schluss den Chip auf den Reader legen.

Wenn alles richtig ist, solltet ihr diese oder ähnliche Ausgabe bekommen:

 

 

4 Kommentare

  1. Lars

    Habe es genau so versucht und bekomme folgenden Fehler:

    python Read.py
    /home/pi/SPI-Py/SPI-Py/MFRC522-python/MFRC522.py:113: RuntimeWarning: This channel is already in use, continuing anyway. Use GPIO.setwarnings(False) to disable warnings.
    GPIO.setup(22, GPIO.OUT)
    Traceback (most recent call last):
    File „Read.py“, line 22, in
    MIFAREReader = MFRC522.MFRC522()
    File „/home/pi/SPI-Py/SPI-Py/MFRC522-python/MFRC522.py“, line 115, in __init__
    self.MFRC522_Init()
    File „/home/pi/SPI-Py/SPI-Py/MFRC522-python/MFRC522.py“, line 386, in MFRC522_Init
    self.MFRC522_Reset();
    File „/home/pi/SPI-Py/SPI-Py/MFRC522-python/MFRC522.py“, line 118, in MFRC522_Reset
    self.Write_MFRC522(self.CommandReg, self.PCD_RESETPHASE)
    File „/home/pi/SPI-Py/SPI-Py/MFRC522-python/MFRC522.py“, line 121, in Write_MFRC522
    spi.transfer(((addr<<1)&0x7E,val))
    TypeError: function takes exactly 2 arguments (1 given)

    Woran könnte das liegen?

    Antworten
    • Loei

      Der Funktion wurde nur ein Parameter übergeben. Diese verlangt jedoch zwei. Siehe unten (TypeError).

      Antworten
  2. otto

    Wann findet man endlich mal ein funktionierendes Tutorial für den RC522 und PI? Mann, was’ne Kagge…

    Antworten
  3. Oliver

    Hi, könnte ich eine auf dem Raspberry Pi gespeicherte Textdatei mit dem Handy über den MFRC522 auslesen?

    Antworten

Einen Kommentar abschicken

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

Mehr Beiträge zum Thema Linux | Development | Python

Mein PHP-Trainingsprojekt

PHP Schulung Vor kurzem haben wir begonnen, eine neue Programmiersprache zu lernen – PHP. In der ersten Woche haben wir mit den Grundlagen wie Variablen, Arrays, Schleifen begonnen und uns schrittweise zu komplizierterer Syntax wie Funktionen, Objekten und Klassen...