Metainformationen zur Seite
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
computer:raspberrypi:rfid [2013/06/20 23:25]
ristigl [Anschließen des Adapters]
computer:raspberrypi:rfid [2018/03/16 21:11] (aktuell)
Zeile 1: Zeile 1:
 ====== RFID lesen ====== ====== RFID lesen ======
 +{{wp>​RFID}}
 **Quellen:​** **Quellen:​**
   * http://​pikiosk.tumblr.com/​post/​51812205794/​07-reading-rfid-tags-with-the-raspberry-pi   * http://​pikiosk.tumblr.com/​post/​51812205794/​07-reading-rfid-tags-with-the-raspberry-pi
Zeile 13: Zeile 14:
 Zusammenführen der richtigen Pins: Zusammenführen der richtigen Pins:
   * 5V Raspi -> 5V RFID   * 5V Raspi -> 5V RFID
 +  * nicht genutzt
   * GND Raspi -> GDN RFID   * GND Raspi -> GDN RFID
-  * RX Raspi -> TX 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. Dazu das Datenblatt des RFID-Lesers betrachten und die Pinbelegung.
Zeile 20: Zeile 25:
 <note warning>​Achtung,​ die Datenleitung muss mit einer Spannungsteilung angeschlossen werden! <note warning>​Achtung,​ die Datenleitung muss mit einer Spannungsteilung angeschlossen werden!
  
-Der Raspi arbeitet mit 3,3V der RFID-Leser mit 5V></​note>​+Der Raspi arbeitet mit 3,3V der RFID-Leser mit 5V</​note>​
  
 {{:​computer:​raspberrypi:​raspi-pins.png|}} {{:​computer:​raspberrypi:​raspi-pins.png|}}
 {{:​computer:​raspberrypi:​rfid-spannungsteilung.jpg|}} {{:​computer:​raspberrypi:​rfid-spannungsteilung.jpg|}}
 +
 +===== Software =====
 +**python-serial** installieren.
 +
 +Kleine Änderung an der /​etc/​inittab (danach Neustart) mit **nano /​etc/​inittab** (Achtung, man muss dafür //root// sein ;-) ).
 +<​code>​
 +#Spawn a getty on Raspberry Pi serial line
 +T0:​23:​respawn:/​sbin/​getty -L ttyAMA0 115200 vt100
 +</​code>​
 +
 +ändern in:
 +
 +<​code>​
 +#Spawn a getty on Raspberry Pi serial line
 +#​T0:​23:​respawn:/​sbin/​getty -L ttyAMA0 115200 vt100
 +</​code>​
 +
 +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
 +
 +<code python>
 +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 "​------------------------------------------"​
 +</​code>​