Metainformationen zur Seite

RFID lesen

Auszug von Wikipedia: RFID

RFID (englisch radio-frequency identification [ˈɹeɪdɪəʊ ˈfɹiːkwənsi aɪˌdɛntɪfɪˈkeɪʃn̩] „Identifizierung mit Hilfe elektromagnetischer Wellen“) bezeichnet eine Technologie für Sender-Empfänger-Systeme zum automatischen und berührungslosen Identifizieren und Lokalisieren von Objekten und Lebewesen mit Radiowellen.

Ein RFID-System besteht aus einem Transponder (umgangssprachlich auch Funketikett genannt), der sich am oder im Gegenstand bzw. Lebewesen befindet und einen kennzeichnenden Code enthält, sowie einem Lesegerät zum Auslesen dieser Kennung.

RFID-Transponder können so klein wie ein Reiskorn sein und implantiert werden, etwa bei Haustieren. Darüber hinaus besteht die Möglichkeit, RFID-Transponder über ein spezielles Druckverfahren stabiler Schaltungen aus Polymeren herzustellen. Die Vorteile dieser Technik ergeben sich aus der Kombination der geringen Größe, der unauffälligen Auslesemöglichkeit (z. B. bei dem am 1. November 2010 neu eingeführten Personalausweis in Deutschland) und dem geringen Preis der Transponder (teilweise im Cent-Bereich).

Die Kopplung geschieht durch vom Lesegerät erzeugte magnetische Wechselfelder in geringer Reichweite oder durch hochfrequente Radiowellen. Damit werden nicht nur Daten übertragen, sondern auch der Transponder mit Energie versorgt. Zur Erreichung größerer Reichweiten werden aktive Transponder mit eigener Stromversorgung eingesetzt, die jedoch mit höheren Kosten verbunden sind.

Das Lesegerät enthält eine Software (ein Mikroprogramm), die den eigentlichen Leseprozess steuert, und eine RFID-Middleware mit Schnittstellen zu weiteren EDV-Systemen.

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.

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

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