Eine Tür mit RFID-Chip öffnen (RFID-RC522)

In diesem Beitrag demonstriere ich, wie man mithilfe eines RFID-RC522 Moduls und einem RFID-Chip z.B. eine Tür öffnen kann. Ich zeige, wie man das Modul mit dem Arduino verbindet, wie man die UUID einer Chipkarte ausließt und eigene Chipkarten als zutrittsberechtigte Karten im System hinterlegt.

Wird eine Chipkarte an den Leser gehalten, die nicht im System hinterlegt ist, wird lediglich ein Warnton ausgegeben. Wird hingegen eine Chipkarte mit, im System hinterlegter UUID an den Kartenleser gehalten, ertönt ein Bestätigungston und ein Servomotor wird um eine bestimmte Gradzahl gedreht und fährt anschließend wieder in seine Ausgangsposition.

 

RFID-RC522

 

Übersicht der einzelnen Schritte

  1. verbinden des RFID-RC522 mit dem Arduino Uno
  2. verbinden der restlichen Bauteile mit einem Arduino Uno
  3. Sketch für den Arduino UNO

Verbinden des RFID-RC522 mit dem Arduino UNO

Arduino UNO | RFID-RC522
 Pin 10          SDA
 Pin 13          SCK
 Pin 11          MOSI
 Pin 12          MISO
 -               IRQ
 GND             GND
 Pin9            RST
 3.3V            3.3V

 

Verbinden der restlichen Bauteile mit einem Arduino Uno

Der Piezo zum ausgeben der Hinweistöne wird an GND und an Digital Pin 7 am Arduino angeschlossen Der Servo wird mit GND und je nach Art mit +3,3 oder 5V verbunden. Die Datenleitung des Servos geht an den digitalen Pin 8 am Arduino.

RFID-RC522-Breadboard

 

Sketch für den Arduino UNO

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

#define SS_PIN 10 // RFID-RC522 SDA
#define RST_PIN 9 // RFID-RC522 RST

const byte servoPin  = 8;  // digital Pin - Servo
const byte buzzerPin = 7;  // digital Pin - Buzzer

Servo myServo;
MFRC522 mfrc522(SS_PIN, RST_PIN);

// Hier die UUID fuer erlaubte Karten eingeben und in "erlaubteKartenCount" 
// Anzahl der Eintraege angeben
long erlaubteKarten[] = { 1011520, 2492530, 171762080 };
byte erlaubteKartenCount = 3; 




void setup() {
  Serial.begin(9600);
  SPI.begin();
  mfrc522.PCD_Init();

  pinMode(buzzerPin, OUTPUT);
  pinMode(servoPin, OUTPUT);

  myServo.attach(servoPin);
  myServo.write(0); //Servo auf Grundstellung
}



void loop() {
  if ( ! mfrc522.PICC_IsNewCardPresent()) {
    return;
  }

  if ( ! mfrc522.PICC_ReadCardSerial()) {
    return;
  }

  long code=0;
  
  for (byte i = 0; i < mfrc522.uid.size; i++) {
    code=((code+mfrc522.uid.uidByte[i])*10);
  }

  Serial.print(F("Erkannte Kartennummer:"));
  Serial.print(code);

  if(PruefeKartenberechtigung(code) == true) {
    Serial.println(F(" [BERECHTIGT]"));
    KarteErkanntSound();

    myServo.write(90);
    delay(500); 
    myServo.write(0);
    delay(100);
  } else {
    Serial.println(F(" [NICHT BERECHTIGT]"));
    UnbekannteKarteSound();
  }
  delay(2000);
}



boolean PruefeKartenberechtigung(long KartenUUID) {
  boolean erlaubt = false;
  
  for(int i=0; i < erlaubteKartenCount; i++) {
    if(erlaubteKarten[i] == KartenUUID) {
      erlaubt = true;
    }
  }
  return erlaubt;
}



void UnbekannteKarteSound(void) {
  for (byte i=0; i<3; i++) {
    tone(buzzerPin, 500, 150);
    delay(200);
  }
}



void KarteErkanntSound(void) {
  tone(buzzerPin, 1000, 150);
  delay(200);
  tone(buzzerPin, 1500, 150);
  delay(200);
}

Auch hier gibt es wieder so viele Möglichkeiten was man mit dem RFID-Kartenleser so alles anfangen könnte. So kann man z.B. ein Auto starten oder dessen Türen von außen öffnen indem man einen RFID Chip an den Kartenleser hält oder man entriegelt eine Schranktür mittels RFID Chip.

Ich hoffe auch dieser Beitrag hat Ihnen gefallen.
Bei Fragen, Anregungen oder Tipps nutzten Sie doch bitte die Kommentarfunktion unten.

Über Enrico S.

Programmierer, Webdesigner, Grafiker, Blogger, Screencaster, Arduino- und eMobility Enthusiast. nefilim3006 ist auch bei Google+ vertreten

4 Kommentare zu “Eine Tür mit RFID-Chip öffnen (RFID-RC522)

  1. Schön und gut beschrieben, aber wie sieht es den mit der Sicherheit aus? Die UUID lässt sich duplizieren und das kontaktlos, sodass man es im Falle eines Falles nicht mal mitbekommt…

    • Das ist ein Nachteil der Technik RFID.
      Was will man denn dagegen tun?
      Man muss sich halt selbst Gedanken dazu machen wofür man diese Technik einsetzt.

  2. aberich denke mehr das man dies ehr als gadget benutzt und vielleicht als türschloss innerhalb der wohnung und sonst nich.