RFID

http://sites.schaltungen.at/arduino-sketch/

http://www.linksammlung.info/

http://www.schaltungen.at/

                                                                                             Wels, am 2018-05-20

BITTE nützen Sie doch rechts OBEN das Suchfeld  [                                                              ] [ Diese Site durchsuchen]

DIN A3 oder DIN A4 quer ausdrucken
*******************************************************************************I**
DIN A4  ausdrucken   (Heftrand 15mm / 5mm)     siehe     http://sites.schaltungen.at/drucker/sites-prenninger
********************************************************I*
~015_b_PrennIng-a_arduino.sketch/ (xx Seiten)_1a.pdf



Zugangskontrolle mit RFID-RC522

In Arbeit ....
https://arduino-projekte.webnode.at/meine-projekte/zugangskontrolle-mit-rfid/



Mit RFID (Radio Frequency Identification) habe ich mich mit einem, für mich gänzlich neuem, Thema beschäftigt. Ein RFID-System besteht aus einem Transponder (RFID-Tag), der sich z.B. an oder in einem Gegenstand befindet und eine einzigartige Kennung (UID) enthält, sowie einem Schreib-/Lesegerät zum Auslesen der Kennung und von Daten und zum Beschreiben mit Daten.

(Erläuterungen zu RFID siehe z.B. de.wikipedia.org/wiki/RFID)

Aufgabenstellung:


Als erste Anwendung habe ich mir vorgenommen, eine Zugangskontrolle mit Überprüfung auf eine gültige UID-Nummer und einem über eine Tastatur einzugebenden Code, der verschlüsselt im Transponder (RFID-Tag) gespeichert ist, durchzuführen. Sind beide Bedingungen erfüllt, wird ein Mechanismus zur Freigabe (von einem Tor, einer Tür oder was auch immer) z.B. mittels Motor oder Servoantrieb betätigt. Ein Zählwert, der im RFID-Tag gespeichert ist, soll die Anzahl der Betätigungen registrieren. Natürlich muss sowohl der Tastaturcode, als auch der Schlüssel zum Verschlüsseln des Tastaturcodes veränderbar sein und auf den RFID-Tags gespeichert werden können.


Bild: RFID-Schreib-/Lesemodul mit
RFID-Tag als Schlüsselanhänger

Projektstart:
Am Anfang stand natürlich der Kauf eines RFID-Sets, bestehend aus einem RFID-Reader/Writer RC522 mit MRFC522-Chip, S50-RFID-Schlüsselanhänger (IC Key Tags) und S50-RFID-Karte (Thin Smart Card), wie es z.B. bei Ebay um ein paar Euro erhältlich ist und zusätzlich noch als "Verbrauchsmaterial" eine 10er-Packung RFID-Schlüsselanhänger.

Der nächste Schritt war die Installation einer Library (MFRC522), die die Kommunikation mit dem RFID-Reader/Writer und mit den RFID-Tags ermöglichen soll. Einen Link zu MFRC522-Library findet ihr hier: Fremd-Libraries

Dann ging es richtig los. Eine Beschreibung der einzelnen Funktionen für die MFRC522-Library habe ich bisher nicht gefunden. Also blieb mir nichts anderes übrig, als vorhandene Beispiele nachzuvollziehen, die Lib-Dateien MFRC522.h und MFRC522.cpp zu studieren und auch in den Datenblättern des MFRC522-Chips und des "MIFARE Classic - Chips", also dem Innenleben der RFID-Tags, nachzulesen. Manchmal entstanden dabei mehr neue Fragen als ich Antworten erhielt.

Datenblatt MFRC522: www.nxp.com/docs/en/data-sheet/MFRC522.pdf
Datenblatt MIFARE Classic: www.nxp.com/docs/en/data-sheet/MF1S50YYX_V1.pdf




Weitere Vorgangsweise:
Da ich noch mitten im Projekt bin, kann und möchte ich nicht, hier nur ein fertiges Projekt zeigen. Wie auch schon bei anderen Projekten auf meiner Homepage, möchte ich meinen Arbeitsfortschritt nachvollziehbar, auf mehrere Schritte aufgeteilt, mit Hilfe von Programmbeispielen und Erklärung der verwendeten Library-Funktionen vorstellen. Am Ende sollte dann aber doch ein fertiges lauffähiges Programm entstehen, dass die oben beschriebene Aufgabenstellung erfüllt.


Testaufbau:

Den nachfolgenden Testaufbau verwende ich für einige Programme, mit denen ich die Funktionalitäten der RFID-Hardware und der von mir eingesetzten Library MFRC522 teste.


Verwendete Bauteile:

1 Arduino Nano (oder Uno)
1 RFID-RC522 Modul
1 Logic-Level-Converter (8-Kanal, bidirektional)
1 LED
1 Widerstand 220 Ohm





RC522-PinOut:
Nachfolgende Tabelle zeigt die Anschlussmöglichkeiten des RC522-Moduls an die SPI-, I2C- oder UART-Schnittstelle des Arduino. Die von mir verwendete Library MFRC522 benutzt nur die SPI-Schnittstelle.



Verbindung des RC522-Moduls mit dem Arduino Nano/Uno:


RFID-Modul    Arduino Nano/Uno
3,3 V ->                  3,3 V
RST ->                   D9 (= Reset: im Programm konfigurierbar)
GND ->                  GND
IRQ ->                    Keine Verwendung
MISO ->                  D12 (nicht konfigurierbar - SPI-Schnittstelle des Arduino)
MOSI ->                  D11 (nicht konfigurierbar - SPI-Schnittstelle des Arduino)
SCK ->                    D13 (nicht konfigurierbar - SPI-Schnittstelle des Arduino)
SDA ->                    D10 (= Slave Select (SS): im Programm konfigurierbar)

Da die Versorgungsspannung des MRFC522 3,3 V beträgt und ich aus dem Datenblatt des Chips (www.nxp.com/docs/en/data-sheet/MFRC522.pdf) nicht entnehmen konnte, dass dieser mit 5 V - toleranten Ein-/Ausgängen ausgestattet ist, habe ich die 5 Datenleitungen zwischen Arduino und RFID-Modul über einen 8-fach Logic-Level-Converter geführt.




*****************************************

RFID Kit für Arduino mit deutscher Anleitung - RFID-RC522 Mifare mit RFID-Karte und RFID-Schlüsselanhänger

von Funduino

Nr.19 RFID Kit | Funduino - Kits und Anleitungen für Arduino

https://www.funduinoshop.com/RFID-KIT

RFID Kit RC522 mit Reader, Chip und Card für Arduino

RFID-Kit RC522 mit MIFARE Transponder und RFID Karte für Arduino

SparkFun RFID Starter Kit

https://www.sparkfun.com/products/13198
https://www.rfid-grundlagen.de/rfid-arduino-kit.html


Arduino Lektion 20 – Teil 1: RFID RC522 – Karten

https://draeger-it.blog/arduino-lektion-20-teil-1-rfid-rc522-kartenleser/



RFID-Kit - Projekteinführung (1/3)

Unser heutiger Blogpost ist der Einstieg in die dreiteilige Reihe zu unserem RFID-Kit:

Am Ende dieser drei Tage wirst du wissen:
- Was unser RFID-Kit kann und wie du es einrichtest
- Wie du mit unserem RFID-Kit schreiben und lesen kannst
- Wie es mit unserem RFID-Kit möglich ist, eine Computerzugangsberechtigung zu installieren

Einführung
RFID steht für radio-frequency identification und bezeichnet damit eine Technologie, bei der ein Empfänger die Daten eines Transponders lesen und schreiben kann. Der Empfänger ist dabei das einzige Gerät, das eine Stromversorgung benötigt. Der Transponder wird ausschließlich über magnetische Wechselfelder angesprochen und benötigt dazu keinen eigenen Energiespeicher. Die auf dem Transponder gespeicherten Daten, die der Empfänger ausliest, können auch verändert werden.

 

  • ✔️ LIEFERUMFANG - RFID-RC522 Modul, S50 Karte, S50 Schlüsselanhänger, Stiftleisten
  • ✔️ SCHNELLER EINSTIEG - durch bereits verfügbare Bibliotheken und SPI Schnittstelle
  • ✔️ ANWENDUNGEN - z.B. für die Entwicklung von Zugriffskontrollen, elektronischen Türschlösser oder Terminals zur Zeiterfassung
  • ✔️ UNTERSTÜTZTE FORMATE - S50, S70 Ultralight, Pro

Beschreibung

  • Kompatibel mit Arduino, Raspberry Pi und Mikrocontroller dank fertiger Open Source Bibliotheken.
  • Einfache Verkabelung des Chips über SPI Schnittstelle!
  • Dank mitgeliefertem Schlüsselanhänger und Karte sofort erste Projekte realisierbar!
  • Gewohnt hohe Qualität und schnelle Lieferung direkt aus Deutschland durch Bestellung bei AZ-Delivery sowie GRATIS eBook zum Download dazu!

Sichern Sie sich doch noch diese Produkte und bauen Sie gemäß unserer Anleitung ein tolle Computerzugangsberechtigung . Für Computerzugangsberechtigung benötigen Sie nebst dem RFID RC522 Set nur noch ein Mikrocontroller, ein NPN-Transistor, RGB-LEDs (optional) , sowie Jumper Kabel.

RFID Kit RC522 mit Reader, Chip und Card für Arduino


Das AZ-Delivery RFID-Kit kommt standardmäßig mit zwei Transpondern und einem Lesegerät (rechts).

Die Abbildung zeigt unser RFID-Kit, bei dem zwei Transponder (also elektronisch gesehen passive Geräte) mitgeliefert werden. Der eine ist weiß und hat die Größe und Haptik einer Kreditkarte, der andere ist deutlich kleiner und kann zum Beispiel an einem Schlüssel befestigt werden. Die blaue Platine vereint sowohl Lese- und Schreibfunktionalität. In diesem Blog Post werden wir die Grundlagen des RFID-Moduls erklären und alles so einrichten, dass du im morgigen Blog Post "RFID Lesen und Schreiben" nachvollziehen kannst, wie man den Transponder, also den Chip oder die Schlüsselkarte, beschreibt und ausliest.

Anwendungsbereiche hat die Technologie schon heute viele: Moderne Bankkarten beinhalten RFID Transponder, heutige Smartphones können sowohl lesen als auch schreiben, und auch in weniger offensichtlichen Bereichen wie beispielsweise der Poker-Weltmeisterschaft WSOP 2017 wurden RFID Tags genutzt. Bei letzterem, um die nicht offen liegenden Karten der Spieler am Tisch für die Live-Übertragung identifizieren zu können. Typischerweise werden mehrere Transponder benötigt. Wenn verschiedene Hausbewohner zum Beispiel Zugang zum, per RFID verschlossenen, selbstgebauten Safe haben sollen, dann sollte jeder seine eigene Chipkarte haben. Aus diesem Grund sind diese RFID Transponder im 5er Paket bei AZ-Delivery verfügbar.

Verkabelung
Bevor du mit dem Arduino Programmieren loslegen kannst, müssen die Pins an die Platine gelötet werden. Dabei ist lediglich zu beachten, dass der Lötkolben nicht zu lange am Stück an den Kontakten anliegen sollte, damit der Chip nicht durch die Hitze Schaden nimmt. Nach dem Anlöten der acht Pins können diese mit dem Mikrocontroller verbunden werden. Wir verwenden hier einen Arduino Nano, da dieser klein ist und sich daher gut in einem Safe, hinter einer Türe oder an vergleichbaren Orten verstecken lässt. Die Verkabelung steht in der folgenden Tabelle.



RFID Modul     Arduino    Funktion
3.3 V                 3.3 V          Positive Versorgungsspannung
RST               9                   Reset
GND             GND             Ground
IRQ               nicht angeschlossen
MISO             12                  Datenübertragung (Master In Slave Out)
MOSI             11                  Datenübertragung (Master Out Slave In)
SCK            13                     Datenübertragung (Clock)
SDA             10                   Datenübertragung (Data)




Code-Library

Um mit der Programmierung loszulegen starten wir die Arduino Entwicklungsumgebung (IDE) (Link https://www.arduino.cc/en/Main/Software). Für eine vereinfachte Ansteuerung des RFID Moduls eignet sich beispielsweise die MFRC522 RFID-Library von Miguel Balboa. Diese kann von GitHub heruntergeladen werden. Klicke dazu im Repository (Link https://github.com/miguelbalboa/rfid) auf Clone or download > Download ZIP. Die heruntergeladene ZIP-Datei kannst du direkt in der Arduino IDE importieren, indem du Sketch > Include Library > Add .ZIP Library... anklickst, und die heruntergeladene Datei auswählst.
Die installierte Code-Bibliothek enthält eine Vielzahl an Beispielen. Diese können in der Arduino Entwicklungsumgebung über File > Examples > MFRC522 aufgerufen werden.

In unserem inhaltlich nachfolgenden Blog Post erklären wir, wie du einen RFID Transponder beschreiben und auslesen kann. Du findest das Tutorial dazu ab morgen auf unserem Blog unter az-delivery.de, also am besten täglich neu vorbeischauen um täglich spannende Tutorials und tolle Projekte zu finden!



Quelle:
https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/rfid-kit-projekteinfuhrung-3-teiliges-projekt?




*****************************
RFID-Kit - Lesen und Schreiben (2/3)

Unser heutiger Blogpost ist der zweite Teil mit dem Thema "Lesen und Schreiben mit dem RFID-Kit" in der dreiteiligen Reihe zu unserem RFID-Kit:

Am Ende dieser 3 Tage wirst du wissen:
- Was unser RFID-Kit kann und wie du es einrichtest
- Wie du mit unserem RFID-Kit schreiben und lesen kannst
- Wie es mit unserem RFID-Kit möglich ist, eine Computerzugangsberechtigung zu installieren

 

RFID Lesen und Schreiben

Die grundlegenden Operationen bei der Verwendung eines RFID Moduls sind das Auslesen von Daten aus einem RFID Transponder und das Schreiben von ebendiesem.

In diesem Post werden wir beides Schritt für Schritt durchführen und erklären.

Die Grundlagen zur RFID Technik, das Anschließen des Moduls und die Installation der hier verwendeten Library erklärt der inhaltlich vorhergehende Blog Post RFID-Einführung.

 

Sowohl für das Lesen, als auch für das Schreiben wird ein RFID Transponder benötigt. Das bei uns erhältliche RFID Kit wird mit zweien geliefert, einem Chip und einer Schlüsselkarte. Welchen du verwendest spielt für die Programmierung keine Rolle.

 

Vor der Setup-Funktion des Lese-Sketches importieren wir die benötigten Libraries und definieren einige der angeschlossenen Pins (nämlich die, die frei gewählt werden können).

 


#include <SPI.h>
#include <MFRC522.h>

const uint8_t RST_PIN = 9; // reset pin
const uint8_t SS_PIN = 10; // serial data pin

Anschließend legen wir ein MFRC522 Objekt an. Dieses repräsentiert im Programm das angeschlossene RFID Modul.

MFRC522 mfrc522(SS_PIN, RST_PIN); // create MFRC522 instance
In der Setup Funktion wird die serielle Verbindung zum PC aufgebaut, das RFID Modul initialisiert und die SPI (Serial Peripheral Interface Bus) Verbindung hergestellt.

void setup() {
Serial.begin(9600); // start serial connection
SPI.begin(); // start SPI bus
mfrc522.PCD_Init(); // init RFID module
}


Card ID Lesen

Code: Simsso/Arduino-Examples/RFID/ReadUID

Die einfachste Operation ist das Auslesen des unique identifiers (UID) des RFID Transponders. Damit das RFID Modul überhaupt nach Transpondern sucht und deren UID liest, müssen in der Loop-Funktion die Aufrufe

 mfrc522.PICC_IsNewCardPresent();

 mfrc522.PICC_ReadCardSerial();

gemacht werden. Erst danach kann die UID verwendet werden. Bei der UID handelt es sich um ein Byte Array, das bei der Identifikation eines Transponders hilft. Das Array hat die Länge 4, sodass insgesamt über vier Milliarden unterschiedliche UIDs existieren können. Im Serial Monitor kann die ID des zuletzt detektierten Transponders mit den folgenden Codezeilen im Hex-Format ausgegeben werden.


for (int i = 0; i < mfrc522.uid.size; i++) {
Serial.print(mfrc522.uid.uidByte[i], HEX);
Serial.print(" ");
}

Die Ausgabe sieht zum Beispiel so aus: 14 86 6E 7B


Hauptspeicher Lesen

Code: Simsso/Arduino-Examples/RFID/ReadStorage

Der Hauptspeicher unserer Transponder besteht aus 16 Sektoren mit je 4 Blöcken. Jeder dieser Blöcke enthält 16 Byte Speicher. Der Gesamtspeicherplatz beträgt 16·4·16 = 1024 Byte (1 kByte). Ein Sektor lässt sich mit der Codezeile

mfrc522.PICC_DumpMifareClassicSectorToSerial(&(mfrc522.uid), &key, sector);

einfach formatiert ausgeben, wobei die Variable sector der Index des Sektors ist, also Ganzzahlenwerte von 0 bis 15 annehmen kann. Der Key wird vorher erzeugt (siehe Beispielcode im Link). Die (im SerialMonitor angezeigte) Ausgabe sieht zum Beispiel so aus:

  0      3   00 00 00 00  00 00 FF 07  80 69 FF FF  FF FF FF FF  [ 0 0 1 ]

         2   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  [ 0 0 0 ]

         1   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  [ 0 0 0 ]

         0   B5 A3 2B 1B  26 08 04 00  62 63 64 65  66 67 68 69  [ 0 0 0 ]

 

Der Inhalt eines einzelnen Blockes kann mit der folgenden Codezeile ausgelesen werden.

mfrc522.MIFARE_Read(blockAddress, buffer, &size);

Die Block-Adresse ist dabei eine Zahl von 0 bis 63. Der Buffer ist ein Array mit 16+2 Byte Speicherkapazität, in das eine Zeile der obigen gespeichert wird. Der letzte Parameter size ist ein Pointer auf eine Variable die gleich der Größe des übergebenen buffer Arrays ist.


Daten Schreiben

Code: Simsso/Arduino-Examples/RFID/WriteFloat

Das Schreiben von Daten auf den Transponder ist dem Lesen sehr ähnlich. Der Funktionsaufruf

mfrc522.MIFARE_Write(blockAddress, dataBlock, 16);

schreibt das Byte Array dataBlock, das die Länge 16 hat, in den Block mit der Nummer blockAddress. Eine Sektornummer kommt hier deshalb nicht vor, weil die Block Adresse diese impliziert. Die Block Adresse wird nämlich kontinuierlich hochgezählt, liegt also zwischen 0 und 63. Vor dem Schreiben muss man sich analog zum Lesen authentifizieren, das sind weitere sechs Zeilen Code, die Sie dem Code Beispiel entnehmen können.

In diesem Absatz wird abschließend noch gezeigt, wie man -- etwas praxisnäher -- eine Float-Variable abspeichern kann. Sowohl Float-, als auch Double-Variablen bestehen beim Arduino aus 4 Byte (Referenz https://www.arduino.cc/en/Reference/Double). Im Code wird eine Float-Variable dazu mit einem beliebigen Wert initialisiert. Anschließend wird ein Byte Pointer angelegt, der auf die Adresse des Wertes (zum Beispiel von einem Sensor) zeigt. Die vier Bytes der Float Variable werden dann in ein Byte-Array der Länge 16 (Größe eines Blocks) kopiert. Dieses wird mit der oben genannten Funktion in den fünften Block des Transponderspeichers geschrieben.


float temperature = 15.09f;
byte *tempBytes = (byte *)&temperature;
byte dataBlock[16] = { 0 }; // initialize block buffer with zeros
for (uint8_t i = 0; i < sizeof(float); i++) {
dataBlock[i] = tempBytes[i]; // copy byte from float variable into buffer
}
status = (MFRC522::StatusCode) mfrc522.MIFARE_Write(5, dataBlock, 16);

Mit dem oben erwähnten ReadStorage Sketch kann jetzt ausgelesen werden, dass die ersten vier Byte im Block 5 gesetzt wurden. Diese Werte entsprechen im 32-bit IEEE 754 Format dem Wert 15,09.

5   A4 70 71 41  00 00 00 00  00 00 00 00  00 00 00 00  [ 0 0 0 ]

In unserem inhaltlich nachfolgenden Blog Post erklären wir, wie man mit unserem RFID-Kit eine Computerzugangsberechtigung bauen kann.Du findest das Tutorial dazu ab morgen auf unserem Blog unter az-delivery.de, also am besten täglich neu vorbeischauen um täglich spannende Tutorials und tolle Projekte zu finden!







********************************************************I*
Bausatz RFID-Reader



Bausatz RFID-Reader

RFID-Board mit LC-Display zum kontaktlosen Auslesen von HF-Tags. Ideal zum Experimentieren, zum Bau von Zugangskontrollen, Zeiterfassungen usw. Ein integriertes Beispielprogramm kann den gelesenen HF-Tag über eine RS232 Schnittstelle senden.

Features:
  • Wechsler-Schaltrelais mittels 4 verschiedener Karten ansprechbar
  • programmierbar über 10-poligen ISP-Port
  • verminderte Anfälligkeit bei Abweichungen der Lesespulen-Induktivität durch automatische Anpassung der Arbeitsfrequenz- ein identifizierter HF-Tag wird über Summer signalisiert
  • optional können Displays mit 16-poliger (1-reihiger) Anschlussleiste verbaut werden (z.B. Art.Nr. 120 421)- externer RFID-Sensor anschließbar
  • Grundausstattung mit AT Tiny 2313-20PU, AT MEGA8-16PU einsetzbar
(optional)- bei Einsatz eines AT MEGA 8 stehen 5 I/O-Leitungen (4 davon ADC fähig +
1 Interrupt) an einer 10-poligen Stiftleiste zur Verfügung

Technische Daten:
  • Betriebsspannung: 12 V- (verpolungsgeschützt)
  • Stromaufnahme: 250 mA (mit Display)
  • Arbeitsfrequenz: 125 kHz
  • Sensorschaltkreis U2207B, geeignet für Manchester und i²C Phasedecoding
  • Gewicht: 120 g
  • Gesamtmaße: 99x83x34 mm
Lieferumfang:
  • Bausatz mit Prozessor AT-Tiny
  • Display
  • Spule
  • Anleitung

Verfügbare Downloads:
  • Download Beschreibung
https://www.pollin.de/p/bausatz-rfid-reader-810252




https://www.pollin.de/p/bausatz-rfid-reader-810252









DIN A4  ausdrucken
********************************************************I*
Impressum: Fritz Prenninger, Haidestr. 11A, A-4600 Wels, Ober-Österreich, mailto:[email protected]
ENDE






a