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

main.cpp

Committer:
marcel1691
Date:
2016-03-25
Revision:
3:8725b25bcb6f
Parent:
2:d4578984e864
Child:
4:00eaa9fcd3ef

File content as of revision 3:8725b25bcb6f:

/** Beispiel fuer das Auslesen von RFID Tags mittels RFID Reader
*/
#include "mbed.h"
#include "MFRC522.h"
#include "Adafruit_SSD1306.h"

// OLED Display
I2C i2c( D14, D15 );
Adafruit_SSD1306_I2c oled( i2c, D9, 0x78 );

// NFC/RFID Reader (SPI)
MFRC522    rfidReader( D11, D12, D13, D10, D8 );

int main()
{
    // OLED Display
    oled.clearDisplay();
    oled.printf( "RFID Demo\r\n" );
    oled.display();
        
    printf("RFID Reader MFRC522 Test\n");
    rfidReader.PCD_Init();

    while   ( 1 ) 
    {
        // RFID Reader
        if ( rfidReader.PICC_IsNewCardPresent())
            if ( rfidReader.PICC_ReadCardSerial()) 
            {
                oled.clearDisplay();
                oled.setTextCursor( 0, 0 );                
                oled.printf( "RFID Demo\r\n" );                
                // Print Card UID (2-stellig mit Vornullen, Hexadecimal)
                oled.printf("UID: ");
                for ( int i = 0; i < rfidReader.uid.size; i++ )
                    oled.printf("%02X:", rfidReader.uid.uidByte[i]);
                oled.printf("\r\n");
                
                // Print Card type
                int piccType = rfidReader.PICC_GetType(rfidReader.uid.sak);
                oled.printf("PICC Type: %s \r\n", rfidReader.PICC_GetTypeName(piccType) );
                oled.display();                    
            }
        wait( 0.2f );
    }
}