Beispiel fuer das Auslesen von RFID Tags mittels RFID Reader

Dependencies:   MFRC522 mbed

ReaderTags
RFID ReaderRFID Tags

RFID (engl. radio-frequency identification - „Identifizierung mit Hilfe elektromagnetischer Wellen“) bezeichnet eine Technologie für Sender-Empfänger-Systeme zum automatischen und berührungslosen Identifizieren und Lokalisieren von Objekten (Produkte - 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 Menschen oder Haustieren.

Die Kopplung geschieht durch vom Lesegerät erzeugte magnetische Wechselfelder geringer Reichweite oder durch hochfrequente Radiowellen. Damit werden nicht nur Daten übertragen, sondern auch der Transponder mit Energie versorgt.

Der RFID Reader benötigt die MFRC522 Library. Der Reader wir via SPI angesprochen. Auf den Shields ist ein entsprechender Steckplatz vorgesehen.

Anwendungen

  • Fahrzeugidentifikation
  • Banknoten
  • Bezahlkarten
  • Identifizierung von Personen
  • Textilien und Bekleidung
  • Tieridentifikation
  • Waren- und Bestandsmanagement
  • Müllentsorgung
  • Zutrittskontrolle und Zeitkontrolle

Der RFID Reader hat einen eigenen Steckplatz oben auf dem Shield

Committer:
marcel1691
Date:
Fri Mar 25 17:02:47 2016 +0000
Revision:
3:8725b25bcb6f
Parent:
2:d4578984e864
Child:
4:00eaa9fcd3ef
OLED Ausgabe bereinigt

Who changed what in which revision?

UserRevisionLine numberNew contents of line
stefan1691 0:11e985b9e380 1 /** Beispiel fuer das Auslesen von RFID Tags mittels RFID Reader
stefan1691 0:11e985b9e380 2 */
stefan1691 0:11e985b9e380 3 #include "mbed.h"
stefan1691 0:11e985b9e380 4 #include "MFRC522.h"
marcel1691 3:8725b25bcb6f 5 #include "Adafruit_SSD1306.h"
marcel1691 3:8725b25bcb6f 6
marcel1691 3:8725b25bcb6f 7 // OLED Display
marcel1691 3:8725b25bcb6f 8 I2C i2c( D14, D15 );
marcel1691 3:8725b25bcb6f 9 Adafruit_SSD1306_I2c oled( i2c, D9, 0x78 );
stefan1691 0:11e985b9e380 10
stefan1691 1:b74bf480b4bf 11 // NFC/RFID Reader (SPI)
stefan1691 0:11e985b9e380 12 MFRC522 rfidReader( D11, D12, D13, D10, D8 );
stefan1691 0:11e985b9e380 13
stefan1691 0:11e985b9e380 14 int main()
stefan1691 0:11e985b9e380 15 {
marcel1691 3:8725b25bcb6f 16 // OLED Display
marcel1691 3:8725b25bcb6f 17 oled.clearDisplay();
marcel1691 3:8725b25bcb6f 18 oled.printf( "RFID Demo\r\n" );
marcel1691 3:8725b25bcb6f 19 oled.display();
marcel1691 3:8725b25bcb6f 20
stefan1691 0:11e985b9e380 21 printf("RFID Reader MFRC522 Test\n");
stefan1691 0:11e985b9e380 22 rfidReader.PCD_Init();
stefan1691 0:11e985b9e380 23
stefan1691 0:11e985b9e380 24 while ( 1 )
stefan1691 0:11e985b9e380 25 {
stefan1691 0:11e985b9e380 26 // RFID Reader
stefan1691 0:11e985b9e380 27 if ( rfidReader.PICC_IsNewCardPresent())
stefan1691 0:11e985b9e380 28 if ( rfidReader.PICC_ReadCardSerial())
stefan1691 0:11e985b9e380 29 {
marcel1691 3:8725b25bcb6f 30 oled.clearDisplay();
marcel1691 3:8725b25bcb6f 31 oled.setTextCursor( 0, 0 );
marcel1691 3:8725b25bcb6f 32 oled.printf( "RFID Demo\r\n" );
stefan1691 2:d4578984e864 33 // Print Card UID (2-stellig mit Vornullen, Hexadecimal)
marcel1691 3:8725b25bcb6f 34 oled.printf("UID: ");
stefan1691 2:d4578984e864 35 for ( int i = 0; i < rfidReader.uid.size; i++ )
marcel1691 3:8725b25bcb6f 36 oled.printf("%02X:", rfidReader.uid.uidByte[i]);
marcel1691 3:8725b25bcb6f 37 oled.printf("\r\n");
stefan1691 2:d4578984e864 38
stefan1691 0:11e985b9e380 39 // Print Card type
stefan1691 2:d4578984e864 40 int piccType = rfidReader.PICC_GetType(rfidReader.uid.sak);
marcel1691 3:8725b25bcb6f 41 oled.printf("PICC Type: %s \r\n", rfidReader.PICC_GetTypeName(piccType) );
marcel1691 3:8725b25bcb6f 42 oled.display();
stefan1691 0:11e985b9e380 43 }
stefan1691 0:11e985b9e380 44 wait( 0.2f );
stefan1691 0:11e985b9e380 45 }
stefan1691 0:11e985b9e380 46 }