Metainformationen zur Seite
Dies ist eine alte Version des Dokuments!
RFID lesen
Quellen:
Hardware:
Anschließen des Adapters
Zusammenführen der richtigen Pins:
- 5V Raspi → 5V RFID
- nicht genutzt
- GND Raspi → GDN RFID
- nicht genutzt (TX Rasp)
- RX Raspi → TX RFID
Dieses Anschluss Format: 5v – GND TX RX scheint genormt zu sein.
Dazu das Datenblatt des RFID-Lesers betrachten und die Pinbelegung.
Der Raspi arbeitet mit 3,3V der RFID-Leser mit 5V>
Software
python-serial installieren.
Kleine Änderung an der /etc/inittab (danach Neustart) mit nano /etc/inittab (Achtung, man muss dafür root sein ).
#Spawn a getty on Raspberry Pi serial line T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
ändern in:
#Spawn a getty on Raspberry Pi serial line #T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
Testprogramm (http://kampis-elektroecke.de/wp-content/uploads/2013/02/RFID.py_.txt): Nun mit nano rfid.py Programieroberfläche öffnen und das untere reinschreiben
import serial import sys import time from operator import xor # UART ID = "" Zeichen = 0 Checksumme = 0 Tag = 0 # Flags Startflag = "\x02" Endflag = "\x03" # UART oeffnen UART = serial.Serial("/dev/ttyAMA0", 9600) UART.open() while True: # Variablen loeschen Checksumme = 0 Checksumme_Tag = 0 ID = "" # Zeichen einlesen Zeichen = UART.read() # Uebertragungsstart signalisiert worden? if Zeichen == Startflag: # ID zusammen setzen for Counter in range(13): Zeichen = UART.read() ID = ID + str(Zeichen) # Endflag aus dem String loeschen ID = ID.replace(Endflag, "" ); # Checksumme berechnen for I in range(0, 9, 2): Checksumme = Checksumme ^ (((int(ID[I], 16)) << 4) + int(ID[I+1], 16)) Checksumme = hex(Checksumme) # Tag herausfiltern Tag = ((int(ID[1], 16)) << 8) + ((int(ID[2], 16)) << 4) + ((int(ID[3], 16)) << 0) Tag = hex(Tag) # Ausgabe der Daten print "------------------------------------------" print "Datensatz: ", ID print "Tag: ", Tag print "ID: ", ID[4:10] print "Checksumme: ", Checksumme print "------------------------------------------"