// Projeto 28 - Leitor de cartões RFID (Identificar o código UID de cada cartão)
#include <SPI.h>
#include <MFRC522.h>
#define RST_PIN 9
#define SS_PIN 10
MFRC522 mfrc522(SS_PIN, RST_PIN);
void setup()
{
Serial.begin(9600);
while (!Serial);
SPI.begin();
mfrc522.PCD_Init();
delay(4);
mfrc522.PCD_DumpVersionToSerial();
Serial.println(F("Passe o cartão para ver o UID, SAK, tipo e blocos de dados..."));
}
void loop()
{
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
}
// Projeto 28 - Leitor de cartões RFID
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // ou 0x3F
#include <SPI.h>
#include <MFRC522.h>
#define pinVermelho 4
#define pinVerde 5
#define pinBuzzer 6
#define pinRele 7
#define RST_PIN 9
#define SS_PIN 10
MFRC522 mfrc522(SS_PIN, RST_PIN);
void setup()
{
Serial.begin(9600);
SPI.begin();
mfrc522.PCD_Init();
pinMode(pinVermelho, OUTPUT);
pinMode(pinVerde, OUTPUT);
pinMode(pinBuzzer, OUTPUT);
pinMode(pinRele, OUTPUT);
lcd.init();
lcd.backlight();
lcd.clear();
}
void loop()
{
Serial.println("Aproxime o cartão do sensor!...");
lcd.setCursor(0,0);
lcd.print("Aproxime o ");
lcd.setCursor(0,1);
lcd.print("cartao do sensor");
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
String informacao = "";
for (byte i = 0; i < mfrc522.uid.size; i++)
{
informacao.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
informacao.concat(String(mfrc522.uid.uidByte[i], HEX));
}
informacao.toUpperCase();
if (informacao.substring(1) == "F4 2F EB 70") //UID do cartão
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Eusebio da Silva");
acessoAutorizado();
}
else if (informacao.substring(1) == "B3 31 E7 A4")
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Amalia Rodrigues");
acessoAutorizado();
}
else if (informacao.substring(1) == "0E AD 94 61")
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Chico da Silva");
acessoAutorizado();
}
else
{
Serial.println("Cartao desconhecido");
acessoNegado();
}
}
void acessoAutorizado()
{
lcd.setCursor(0,1);
lcd.print("Autorizado");
digitalWrite(pinRele, HIGH);
digitalWrite(pinVerde, HIGH);
digitalWrite(pinBuzzer, HIGH);
delay(500);
digitalWrite(pinBuzzer, LOW);
delay(250);
digitalWrite(pinBuzzer, HIGH);
delay(250);
digitalWrite(pinBuzzer, LOW);
delay(2000);
digitalWrite(pinVerde, LOW);
digitalWrite(pinRele, LOW);
}
void acessoNegado()
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Desconhecido");
lcd.setCursor(0,1);
lcd.print("Acesso negado");
digitalWrite(pinVermelho, HIGH);
digitalWrite(pinBuzzer, HIGH);
delay(100);
digitalWrite(pinBuzzer, LOW);
delay(100);
digitalWrite(pinBuzzer, HIGH);
delay(100);
digitalWrite(pinBuzzer, LOW);
delay(2000);
digitalWrite(pinVermelho, LOW);
}