Mehrere NFC Reader an einem Raspberry Pi anschließen.

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
martin_467
User
Beiträge: 1
Registriert: Montag 6. Juni 2022, 17:36

Hallo,
ich möchte mehrere NFC Reader(https://www.amazon.de/gp/product/B01M28 ... UTF8&psc=1) an einem Raspberry Pi anschließen und mittels Python mit denen kommunizieren.
Mit diesem Tutorial(https://pimylifeup.com/raspberry-pi-rfid-rc522/) wird ein NFC Reader an einem Raspberry Pi angeschlossen.
Folgende Pins werden benötigt:
- Pin 24 (CE0)
- Pin 23 (SLCK)
- Pin 19 (MOSI)
- Pin 21 (MISO)
- Pin 6
- Pin 22
- Pin 1

Kann man, da es fast alle Pins doppelt gibt also 2 NFC Reader an ein Raspberry Pi anschließen? Was ist mit Pin 24 (CE0), wäre Pin 26 (CE1) identisch?

Das Python Code aus dem Tutorial:

Code: Alles auswählen

#!/usr/bin/env python

import RPi.GPIO as GPIO
from mfrc522 import SimpleMFRC522

reader = SimpleMFRC522()

try:
        id, text = reader.read()
        print(id)
        print(text)
finally:
        GPIO.cleanup()
Wie würde ich es hinbekommen, das Skript für die anderen Pins anzupassen. Oder gibt es eine bessere Möglichkeit mehrere NFC Reader ein einem Raspberry Pi anzuschließen(kostengünstig).
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Weil das ein SPI-Geraet ist, kannst du die alle an SCLK, MOSI und MISO haengen, und dann brauchst du nur jeweils einen Pin fuer das Chip-Select. Also CE0, CE1. Wenn du mehr als zwei willst, kann ein Wechsel auf SPI1 helfen, das kann laut https://github.com/raspberrypi/linux/tr ... s/overlays bis zu 3 CS haben. Allerdings ist CS auch so simpel, das du deinen Treiber einfach selbst um das ansteuern eigener CS via GPIO erweitern kannst.

Der Code kann zumindest mit den vorgesehenen CS auch einfach genutzt werden, siehe https://github.com/pimylifeup/MFRC522-p ... 22.py#L128 - da kannst du den bus ebenso wie die device-Nummer, die das CS repraesentiert, angeben.

Das SimpleMFRC522 ist dafuer aber nicht geeignet, weil es diese Argumente nicht weiterleitet. Das musst du also wahlweise so umschreiben, oder eben gleich die unterliegende Implementierung MFRC522 benutzen.
Antworten