Metainformationen zur Seite
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
computer:raspberrypi:rfid [2013/06/20 23:23]
ristigl angelegt
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.
  
-<​note>​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>​ 
 + 
 +{{:​computer:​raspberrypi:​raspi-pins.png|}} 
 +{{:​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() ​
  
-Der Raspi arbeitet mit 3,3V der RFID-Leser mit 5V><​note>​+    # 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>​