Tutorial 5 – Jugando con NFC en Arduino

En la entrada de hoy del blog voy a hablar del pequeño experimento que he realizado con #Arduino y el sensor RFID para poder simular un control de acceso con luces led y un buzzer que suena si no eres el usuario autorizado.

Sin mas vamos a ver unas pocas fotos del proyecto y después como siempre, el código fuente . El código fuente te lo puedes bajar y usar libremente del link que te voy a proporcionar ademas de escribirlo aquí en el blog para mas comodidad a la hora de estudiarlo.

Imágenes del proyecto:

Código fuente del programa

A continuación el código fuente que hace funcionar el experimento NFC.

Descargar código fuente

//Tutorial ejemplo contactless arduino, sensor RFFID//
//Alex Edo 18.10.2020//
//Puedes usar este codigo y modificarlo a voluntad//
// Este código ha sido adaptado partiendo del ejemplo//
// del Youtuber Bitwise Ar //

#include <SPI.h>
#include <MFRC522.h>
#include <pitches.h>
#define ROJO 2
#define VERDE 6
#define RST_PIN         9        
#define SS_PIN          10      

MFRC522 mfrc522(SS_PIN, RST_PIN); 
//Los valores de la tarjeta y el llavero estan en hexadecimal y los he sacado mirando la UID por el puerto serie de cada uno

 byte LecturaUID[4];
 byte Usuario1[4]= {0xC0,0xFF,0xB4, 0x25}; //tarjeta blanca ejemplo
 byte Usuario2 [4]={0x87, 0x89, 0xD9, 0x74}; //Llavero azul



void setup() {
 
	Serial.begin(9600);
 SPI.begin();
 mfrc522.PCD_Init();
 pinMode(ROJO,OUTPUT);
  pinMode(VERDE,OUTPUT);
  digitalWrite(ROJO,LOW);
  digitalWrite(VERDE,LOW);
 
}

void loop() {
  
  //lectura de la ID de la tarjeta
  if ( ! mfrc522.PICC_IsNewCardPresent())
  return;
  if ( ! mfrc522.PICC_ReadCardSerial())
  return;
    Serial.print("UID:");
  for (byte i = 0; i < mfrc522.uid.size; i++){
    if (mfrc522.uid.uidByte[i] < 0x10){
      Serial.print(" 0");
    }
    else{
     Serial.print(" ");
    }
    Serial.println(mfrc522.uid.uidByte[i], HEX);
    LecturaUID[i]=mfrc522.uid.uidByte[i];
    
  }
  
  Serial.println("\t");
  
  if(comparaUID(LecturaUID, Usuario1)){
    Serial.print("Bienvenido Usuario de Tarjeta");
    digitalWrite(VERDE,HIGH);
    digitalWrite(ROJO,LOW);
    noTone(7);}
  else{
    Serial.print("Usuario no registrado");
    tone(7,HIGH);
    delay(1000);
    noTone(7);
    digitalWrite(VERDE,LOW);
    digitalWrite(ROJO,HIGH); 
  }
  mfrc522.PICC_HaltA();

    
}

boolean comparaUID(byte lectura[],byte usuario[])
{
  for (byte i=0; i < mfrc522.uid.size; i++){
    if(lectura[i] != usuario[i])
    return(false);
  }
  return(true);

}

Hardware necesario para el proyecto

  • Placa Arduino UNO
  • Protoboard
  • LEDs de colores
  • Resistencias 220 Ohm
  • Cables de conexión
  • Cable USB
  • Fuente alimentación
  • Sensor RFID RC522
  • Buzzer

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *