# RFID Card Reader Serial Monitor

**URL:** <https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019>\
**Category:** Programming\
**Created:** [August 20, 2022, 2:42pm UTC](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019 "2022-08-20T14:42:18Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![denizacar13](https://avatars.discourse-cdn.com/v4/letter/d/94ad74/32.png) [@denizacar13](https://forum.arduino.cc/u/denizacar13)\
**Post date:** [August 20, 2022, 2:42pm UTC](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019/1 "2022-08-20T14:42:18Z")

</div>

Hello everyone,

im really new in Arduino world and i need some help for my project. I found a code to read my Card Numbers. The 1. Card is=DB 7F EA D5 and the 2. Card is=D6 D0 84 8D. I want to use these 2 Cards to print in Serial monitor The Door is Open and The door is closed. Can someone help me to modify my code? I would be really happy to learn how this world is working.

My Code to read Card Number

```cpp
#include <SPI.h>
#include <MFRC522.h>
 
#define RST_PIN 5 // SPI Reset Pin
#define SS_PIN 53 // SPI Slave Select Pin
 
MFRC522 mfrc522(SS_PIN, RST_PIN); // Instanz des MFRC522 erzeugen
 
void setup() {
  // Diese Funktion wird einmalig beim Start ausgeführt
  Serial.begin(9600); // Serielle Kommunikation mit dem PC initialisieren
  SPI.begin(); // Initialisiere SPI Kommunikation
  mfrc522.PCD_Init(); // Initialisiere MFRC522 Lesemodul
}
 
void loop() {
  // Diese Funktion wird in Endlosschleife ausgeführt
 
  // Nur wenn eine Karte gefunden wird und gelesen werden konnte, wird der Inhalt von IF ausgeführt
  // PICC = proximity integrated circuit card = kontaktlose Chipkarte
  if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial() ) {
    Serial.print("Gelesene UID:");
    for (byte i = 0; i < mfrc522.uid.size; i++) {
      // Abstand zwischen HEX-Zahlen und führende Null bei Byte < 16
      Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
      Serial.print(mfrc522.uid.uidByte[i], HEX);
    } 
    Serial.println(); 
 
    // Versetzt die gelesene Karte in einen Ruhemodus, um nach anderen Karten suchen zu können.
    mfrc522.PICC_HaltA();
    delay(1000);
  }
}

```

---

<div class="post-metadata">

**Author:** ![b707](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/b707/32/854321_2.png) [@b707](https://forum.arduino.cc/u/b707)\
**Post date:** [August 20, 2022, 2:49pm UTC](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019/2 "2022-08-20T14:49:20Z")

</div>

What is your problem with the code?  
Does it print your card numbers?

---

<div class="post-metadata">

**Author:** ![denizacar13](https://avatars.discourse-cdn.com/v4/letter/d/94ad74/32.png) [@denizacar13](https://forum.arduino.cc/u/denizacar13)\
**Post date:** [August 20, 2022, 2:50pm UTC](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019/3 "2022-08-20T14:50:34Z")

</div>

the code is just for the see what my id number. But i want to modify this code and see in serial monitor for 1. Card The door is open and for the 2. Card access denied

---

<div class="post-metadata">

**Author:** ![denizacar13](https://avatars.discourse-cdn.com/v4/letter/d/94ad74/32.png) [@denizacar13](https://forum.arduino.cc/u/denizacar13)\
**Post date:** [August 20, 2022, 2:52pm UTC](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019/4 "2022-08-20T14:52:09Z")

</div>

it print the card numbers. I need to save the card numbers on a variable and check if they are opening card. other cards needs to print out access denied

---

<div class="post-metadata">

**Author:** ![b707](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/b707/32/854321_2.png) [@b707](https://forum.arduino.cc/u/b707)\
**Post date:** [August 20, 2022, 2:55pm UTC](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019/5 "2022-08-20T14:55:46Z")

</div>

> [@denizacar13](#):
>
> Card is=DB 7F EA D5 and the 2. Card is=D6 D0 84 8D.

> [@denizacar13](#):
>
> I need to save the card numbers on a variable and check if they are opening card

As option, you can store this IDs as byte arrays and compare it byte by byte with ID, received from card

---

<div class="post-metadata">

**Author:** ![sterretje](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/sterretje/32/391294_2.png) [@sterretje](https://forum.arduino.cc/u/sterretje)\
**Post date:** [August 20, 2022, 3:01pm UTC](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019/6 "2022-08-20T15:01:31Z")

</div>

This will probably do what you want. Feel free to move the validUUID array to a more suitable location (e.gh. global). The code uses [memcmp(3) - Linux manual page](https://man7.org/linux/man-pages/man3/memcmp.3.html)

```cpp
  if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) {
    Serial.print("Gelesene UID:");
    for (byte i = 0; i < mfrc522.uid.size; i++) {
      // Abstand zwischen HEX-Zahlen und führende Null bei Byte < 16
      Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
      Serial.print(mfrc522.uid.uidByte[i], HEX);
    }
    Serial.println();

    uint8_t validUUID[] = { 0xDB, 0x7F, 0xEA, 0xD5 };
    if (memcmp(validUUID, mfrc522.uid.uidByte, mfrc522.uid.size) == 0) {
      Serial.println(F("valid"));
    }

```

---

<div class="post-metadata">

**Author:** ![b707](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/b707/32/854321_2.png) [@b707](https://forum.arduino.cc/u/b707)\
**Post date:** [August 20, 2022, 3:08pm UTC](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019/7 "2022-08-20T15:08:11Z")

</div>

```cpp
byte open_card[] = {0xDB, 0x7F, 0xEA, 0xD5};
bool access = true;
byte uid_size = mfrc522.uid.size;
if (mfrc522.uid.size > sizeof(open_card)) uid_size = sizeof(open_card);
 for (byte i = 0; i < uid_size; i++) {
    if (mfrc522.uid.uidByte[i] != open_card[i]) {
          Serial.print("Access denied!");
          access = false;
          break;
      }
    } 
 if (access) Serial.print("Access granted!");

```

---

<div class="post-metadata">

**Author:** ![denizacar13](https://avatars.discourse-cdn.com/v4/letter/d/94ad74/32.png) [@denizacar13](https://forum.arduino.cc/u/denizacar13)\
**Post date:** [August 20, 2022, 3:58pm UTC](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019/8 "2022-08-20T15:58:32Z")

</div>

Thank you guys it working really well. But i want to also change something in my code. Im Using the code from @b707 and its definitely what i want. But after i use it i just get access denied repeatedly. I think i have to change the void loop function. But im not sure how. how should i change it? After that it is going to work as i wanted. I would be really happy if you guys teach me how its done. Thank you

---

<div class="post-metadata">

**Author:** ![b707](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/b707/32/854321_2.png) [@b707](https://forum.arduino.cc/u/b707)\
**Post date:** [August 20, 2022, 4:02pm UTC](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019/9 "2022-08-20T16:02:19Z")

</div>

Please show your revised code in full

---

<div class="post-metadata">

**Author:** ![denizacar13](https://avatars.discourse-cdn.com/v4/letter/d/94ad74/32.png) [@denizacar13](https://forum.arduino.cc/u/denizacar13)\
**Post date:** [August 20, 2022, 4:03pm UTC](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019/10 "2022-08-20T16:03:55Z")

</div>

```cpp
#include <SPI.h>
#include <MFRC522.h>
 
#define RST_PIN 5 // SPI Reset Pin
#define SS_PIN 53 // SPI Slave Select Pin
 
MFRC522 mfrc522(SS_PIN, RST_PIN); // Instanz des MFRC522 erzeugen
 
void setup() {
  // Diese Funktion wird einmalig beim Start ausgeführt
  Serial.begin(9600); // Serielle Kommunikation mit dem PC initialisieren
  SPI.begin(); // Initialisiere SPI Kommunikation
  mfrc522.PCD_Init(); // Initialisiere MFRC522 Lesemodul
}
 
void loop() {
  // Diese Funktion wird in Endlosschleife ausgeführt
 
  // Nur wenn eine Karte gefunden wird und gelesen werden konnte, wird der Inhalt von IF ausgeführt
  // PICC = proximity integrated circuit card = kontaktlose Chipkarte
  if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial() ) {
    byte open_card[] = {0xDB, 0x7F, 0xEA, 0xD5};
    bool access = true;
    byte uid_size = mfrc522.uid.size;
    if (mfrc522.uid.size > sizeof(open_card)) uid_size = sizeof(open_card);
      for (byte i = 0; i < uid_size; i++) {
        if (mfrc522.uid.uidByte[i] != open_card[i]) {
          Serial.print("Access denied!");
          access = false;
          break;
        }
      } 
    if (access) Serial.print("Access granted!");
   }
}

```

---

<div class="post-metadata">

**Author:** ![denizacar13](https://avatars.discourse-cdn.com/v4/letter/d/94ad74/32.png) [@denizacar13](https://forum.arduino.cc/u/denizacar13)\
**Post date:** [August 20, 2022, 4:04pm UTC](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019/11 "2022-08-20T16:04:27Z")

</div>

i think i just need to add exit in it but not sure where

---

<div class="post-metadata">

**Author:** ![sterretje](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/sterretje/32/391294_2.png) [@sterretje](https://forum.arduino.cc/u/sterretje)\
**Post date:** [August 20, 2022, 4:06pm UTC](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019/12 "2022-08-20T16:06:08Z")

</div>

> [@denizacar13](#):
>
> `mfrc522.PICC_HaltA();`

I think that you're missing `mfrc522.PICC_HaltA();`.

---

<div class="post-metadata">

**Author:** ![denizacar13](https://avatars.discourse-cdn.com/v4/letter/d/94ad74/32.png) [@denizacar13](https://forum.arduino.cc/u/denizacar13)\
**Post date:** [August 20, 2022, 4:07pm UTC](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019/13 "2022-08-20T16:07:48Z")

</div>

OMG its working you guys are amazing thans aloootte \<3

---

<div class="post-metadata">

**Author:** ![b707](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/b707/32/854321_2.png) [@b707](https://forum.arduino.cc/u/b707)\
**Post date:** [August 20, 2022, 4:12pm UTC](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019/14 "2022-08-20T16:12:08Z")

</div>

Now you can mark thread solved 🙂

---

<div class="post-metadata">

**Author:** ![denizacar13](https://avatars.discourse-cdn.com/v4/letter/d/94ad74/32.png) [@denizacar13](https://forum.arduino.cc/u/denizacar13)\
**Post date:** [August 20, 2022, 4:16pm UTC](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019/15 "2022-08-20T16:16:34Z")

</div>

Me and my questions and comes another 😃 i cant see how i can change to solved ☹

---

<div class="post-metadata">

**Author:** ![denizacar13](https://avatars.discourse-cdn.com/v4/letter/d/94ad74/32.png) [@denizacar13](https://forum.arduino.cc/u/denizacar13)\
**Post date:** [August 20, 2022, 4:20pm UTC](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019/16 "2022-08-20T16:20:08Z")

</div>

You mean i have to click the thing on the massage? im using it as a german thats why im not sure. But i clicked lösung. Is it right what i did? 😃

---

<div class="post-metadata">

**Author:** ![denizacar13](https://avatars.discourse-cdn.com/v4/letter/d/94ad74/32.png) [@denizacar13](https://forum.arduino.cc/u/denizacar13)\
**Post date:** [August 20, 2022, 2:12pm UTC](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019/17 "2022-08-20T14:12:51Z")

</div>

Hello everyone,

im working on a project for my school and im really new in Arduino World. I need use a RFID to write on serial Monitor "The Door is open" or "Access Denied". With my Code that i found on internet, i can see the number of the card. But i don't know what the next step is. How should i modify my code to be able to see The Door is open or Access Denied. I would be really happy, if someone help to me.

CODE:

```cpp
#include <SPI.h>
#include <MFRC522.h>
 
#define RST_PIN 5 // SPI Reset Pin
#define SS_PIN 53 // SPI Slave Select Pin
 
MFRC522 mfrc522(SS_PIN, RST_PIN); // Instanz des MFRC522 erzeugen
 
void setup() {
  // Diese Funktion wird einmalig beim Start ausgeführt
  Serial.begin(9600); // Serielle Kommunikation mit dem PC initialisieren
  SPI.begin(); // Initialisiere SPI Kommunikation
  mfrc522.PCD_Init(); // Initialisiere MFRC522 Lesemodul
}
 
void loop() {
  // Diese Funktion wird in Endlosschleife ausgeführt
 
  // Nur wenn eine Karte gefunden wird und gelesen werden konnte, wird der Inhalt von IF ausgeführt
  // PICC = proximity integrated circuit card = kontaktlose Chipkarte
  if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial() ) {
    Serial.print("Gelesene UID:");
    for (byte i = 0; i < mfrc522.uid.size; i++) {
      // Abstand zwischen HEX-Zahlen und führende Null bei Byte < 16
      Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
      Serial.print(mfrc522.uid.uidByte[i], HEX);
    } 
    Serial.println(); 
 
    // Versetzt die gelesene Karte in einen Ruhemodus, um nach anderen Karten suchen zu können.
    mfrc522.PICC_HaltA();
    delay(1000);
  }
}

```

---

<div class="post-metadata">

**Author:** ![Paul\_KD7HB](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/paul_kd7hb/32/1127958_2.png) [@Paul\_KD7HB](https://forum.arduino.cc/u/Paul_KD7HB)\
**Post date:** [August 20, 2022, 2:16pm UTC](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019/18 "2022-08-20T14:16:30Z")

</div>

> [@denizacar13](#):
>
> How should i modify my code to be able to see The Door is open or Access Denied.

What are the conditions you are looking for that tell you to print the door open message? What are the conditions you are looking for the print the access denied message?

---

<div class="post-metadata">

**Author:** ![denizacar13](https://avatars.discourse-cdn.com/v4/letter/d/94ad74/32.png) [@denizacar13](https://forum.arduino.cc/u/denizacar13)\
**Post date:** [August 20, 2022, 2:48pm UTC](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019/19 "2022-08-20T14:48:12Z")

</div>

Hey sorry for the late answer. So i have 2 different cards that im using. 1. Card has the number DB 7F EA D5 and 2. card has D6 D0 84 8D. If i use my first card i want to see in my serial monitor that the door is open. And if i hold the 2. card access denied. I hope you understand what i mean. Thank You 🙂

---

<div class="post-metadata">

**Author:** ![sterretje](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/sterretje/32/391294_2.png) [@sterretje](https://forum.arduino.cc/u/sterretje)\
**Post date:** [August 20, 2022, 2:52pm UTC](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019/20 "2022-08-20T14:52:44Z")

</div>

Your topic has been moved to a more suitable location on the forum. _Installation and Troubleshooting_ is not for problems with (nor for advice on) your project 😉 See [About the Installation & Troubleshooting category](https://forum.arduino.cc/t/about-the-installation-troubleshooting-category/847458).

Why did you start a second topic in [RFID Card Reader Serial Monitor](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019)?

[Next page](https://forum.arduino.cc/t/rfid-card-reader-serial-monitor/1024019.md?page=2)
