Metainformationen zur Seite
  •  

Dies ist eine alte Version des Dokuments!


RFID lesen

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.

Achtung, die Datenleitung muss mit einer Spannungsteilung angeschlossen werden!

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

Nun mit nano rfid.py Programieroberfläche öffnen und das untere reinschreiben

Testprogramm (http://kampis-elektroecke.de/wp-content/uploads/2013/02/RFID.py_.txt):

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 "------------------------------------------"