/*
* This ESP32 code is created by esp32io.com
*
* This ESP32 code is released in the public domain
*
* For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-rfid-nfc
*/
#include <Arduino.h>
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 5 // ESP32 pin GPIO5
#define RST_PIN 27 // ESP32 pin GPIO27
MFRC522 rfid(SS_PIN, RST_PIN);
void setup() {
Serial.begin(115200);
SPI.begin(); // init SPI bus
rfid.PCD_Init(); // init MFRC522
rfid.PCD_DumpVersionToSerial(); // Dump the firmware version
Serial.println("Tap an RFID/NFC tag on the RFID-RC522 reader");
Serial.print("stage1");
}
void loop() {
// Reset the loop if no new card is present
if (!rfid.PICC_IsNewCardPresent()) {
return;
}
// Select a card and read its UID
if (!rfid.PICC_ReadCardSerial()) {
return;
}
// Print UID in Serial Monitor in hex format
Serial.print("UID:");
for (int i = 0; i < rfid.uid.size; i++) {
Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(rfid.uid.uidByte[i], HEX);
}
Serial.println();
// Halt PICC and stop encryption
rfid.PICC_HaltA();
rfid.PCD_StopCrypto1();
delay(1000); // Optional: slow down the loop for readability
}