viernes, 29 de diciembre de 2017

TUTORIAL RFID II -SISTEMA PARA LA APERTURA DE PUERTA CON UNA TARJETA RFID

EN ESTE TUTORIAL TE EXPLICO COMO HACER UN SISTEMA DE APERTURA DE PUERTA CON TARJETA RFID.

PUERTAS DE GARAJES AUTOMÁTICAS, PUERTA DE CASA CON ELECTRO CERRADURAS. 

MATERIALES:
ARDUINO UNO
MÓDULO RFID
RELÉ
CABLES PARA CONEXIONES











CONEXIONES:




Partiendo del TUTORIAL RFID I, cogeremos el código UID de nuestra tarjeta.

CÓDIGO ARDUINO:
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9

MFRC522 rfid(SS_PIN, RST_PIN); 
MFRC522::MIFARE_Key key; 

byte tarjeta1[]={42,70,211,196};// AQUÍ TENEMOS QUE PONER EL CÓDIGO UID DE NUESTRA TARJETA
byte tarjeta2[]={52,128,56,42};// AQUÍ TENEMOS QUE PONER EL CÓDIGO UID DE NUESTRA TARJETA
byte tarjeta3[]={10,10,10,10};// AQUÍ TENEMOS QUE PONER EL CÓDIGO UID DE NUESTRA TARJETA

int const rele=7; //RELE EN EL PIN 7

void setup() {
pinMode(rele,OUTPUT);
Serial.begin(9600);
SPI.begin(); 
rfid.PCD_Init();
Serial.println("PROYECTO FUNCIONADO ");
Serial.println("PASE LA TARJETA POR EL LECTOR");
}

void loop() {
rfid1();
}

void rfid1()

      if ( rfid.PICC_IsNewCardPresent())
      {
      if (! rfid.PICC_ReadCardSerial())
      {
      return;
      }
      comprobar();
      return;
      }
}

// ESTA FUNCIÓN SIRVE PARA COMPROBAR QUE LA UID DE LA TARJETA COINCIDEN CON UNA DE LAS REGISTRADAS 
// SI EL NUMERO DE IDENTIFICACIÓN NO LO TENEMOS REGISTRADO NOS ENVÍA EL MENSAJE USUARIO NO REGISTRADO
void comprobar(){

if  ((rfid.uid.uidByte[0]==tarjeta1[0])and(rfid.uid.uidByte[1]==tarjeta1[1])and(rfid.uid.uidByte[2]==tarjeta1[2])and(rfid.uid.uidByte[3]==tarjeta1[3]))
    {
    Serial.println("Usuario correcto 1");
    abrir();
    } 
else if ((rfid.uid.uidByte[0]==tarjeta2[0])and(rfid.uid.uidByte[1]==tarjeta2[1])and(rfid.uid.uidByte[2]==tarjeta2[2])and(rfid.uid.uidByte[3]==tarjeta2[3]))
  {
  Serial.println("Usuario correcto 2 ");
  abrir();
  
  }
else if ((rfid.uid.uidByte[0]==tarjeta3[0])and(rfid.uid.uidByte[1]==tarjeta3[1])and(rfid.uid.uidByte[2]==tarjeta3[2])and(rfid.uid.uidByte[3]==tarjeta3[3]))
  {
  Serial.println("Usuario correcto 3 ");
  abrir();
  } 

else 
      {
      Serial.println("Usuario no registrado");
      }

rfid.uid.uidByte[0]=0;
rfid.uid.uidByte[1]=0;
rfid.uid.uidByte[2]=0;
rfid.uid.uidByte[3]=0;
Serial.println("PASE LA TARJETA POR EL LECTOR");
rfid.PICC_HaltA();
rfid.PCD_StopCrypto1();
delay(1000);

}
// ESTA FUNCIÓN SIRVE PARA PONER EL RELÉ ACTIVO DURANTE TRES SEGUNDOS
void abrir(){
digitalWrite(rele,HIGH);
delay(3000);
digitalWrite(rele,LOW);
  

}




No hay comentarios:

Publicar un comentario