PUERTAS DE GARAJES AUTOMÁTICAS, PUERTA DE CASA CON ELECTRO CERRADURAS.
MATERIALES:
ARDUINO UNO
MÓDULO RFID
RELÉ
CABLES PARA CONEXIONES
CONEXIONES:
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(){
#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