Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- -------- CONTROLE DE ACESSO VIA RFID ------------
- =================================================
- == BLOG DA ROBOTICA - www.blogdarobotica.com ==
- =================================================
- Autor: Kleber Bastos
- E-mail: contato@blogdarobotica.com
- Fanpage: facebook.com/blogdarobotica
- YouTube: youtube.com/user/blogdarobotica
- */
- //Bibliotecas
- #include <SPI.h>
- #include <MFRC522.h>
- //Pinos
- #define LED_VERDE 6
- #define LED_VERMELHO 7
- #define BUZZER 8
- #define SS_PIN 10
- #define RST_PIN 9
- String IDtag = ""; //Variável que armazenará o ID da Tag
- bool Permitido = false; //Variável que verifica a permissão
- //Vetor responsável por armazenar os ID's das Tag's cadastradas
- String TagsCadastradas[] = {"ID_1",
- "ID_2",
- "ID_3"};
- MFRC522 LeitorRFID(SS_PIN, RST_PIN); // Cria uma nova instância para o leitor e passa os pinos como parâmetro
- byte FlagTag = 0;
- //---------------------------------
- void setup()
- {
- Serial.begin(9600); // Inicializa a comunicação Serial
- SPI.begin(); // Inicializa comunicacao SPI
- LeitorRFID.PCD_Init(); // Inicializa o leitor RFID
- pinMode(LED_VERDE, OUTPUT); // Declara o pino do led verde como saída
- pinMode(LED_VERMELHO, OUTPUT); // Declara o pino do led vermelho como saída
- pinMode(BUZZER, OUTPUT); // Declara o pino do buzzer como saída
- IDtag = ""; //Inicialmente IDtag deve estar vazia.
- }
- //---------------------------------
- void loop()
- {
- // Verifica se existe uma Tag presente
- if ( !LeitorRFID.PICC_IsNewCardPresent() || !LeitorRFID.PICC_ReadCardSerial() )
- {
- delay(50);
- IDtag = "";
- }
- //if(IDtag != "")
- else
- {
- //Serial.println(IDtag);
- // Pega o ID da Tag através da função LeitorRFID.uid e Armazena o ID na variável IDtag
- for (byte i = 0; i < LeitorRFID.uid.size; i++)
- {
- IDtag.concat(String(LeitorRFID.uid.uidByte[i], HEX));
- //Serial.println(IDtag);
- }
- //Compara o valor do ID lido com os IDs armazenados no vetor TagsCadastradas[]
- for (int i = 0; i < (sizeof(TagsCadastradas)/sizeof(String)); i++)
- {
- if( IDtag.equalsIgnoreCase(TagsCadastradas[i]) )
- {
- Permitido = true; //Variável Permitido assume valor verdadeiro caso o ID Lido esteja cadastrado
- FlagTag = !FlagTag;
- }
- }
- }
- if((Permitido == true) & (FlagTag == 0))
- {
- Serial.println("Tag Cadastrada: " + IDtag); //Exibe a mensagem "Tag Cadastrada" e o ID da tag não cadastrada
- digitalWrite(LED_VERDE, HIGH);
- int qtd_bips = 2; //definindo a quantidade de bips
- for(int j=0; j<qtd_bips; j++)
- {
- //Ligando o buzzer com uma frequência de 1500 hz e ligando o led verde.
- tone(BUZZER,1500);
- }
- Permitido = false;
- IDtag = "";
- }
- if((Permitido == true) & (FlagTag == 1))
- {
- Serial.println("Tag Cadastrada: " + IDtag); //Exibe a mensagem "Tag Cadastrada" e o ID da tag não cadastrada
- digitalWrite(LED_VERDE, LOW);
- Permitido = false;
- IDtag = "";
- }
- if(IDtag != "")
- {
- if(Permitido != true)
- {
- acessoNegado(); //Se não será chamada a função acessoNegado()
- }
- }
- delay(300); //aguarda 2 segundos para efetuar uma nova leitura
- }
- //---------------------------------
- void acessoNegado()
- {
- Serial.println("Tag NAO Cadastrada: " + IDtag); //Exibe a mensagem "Tag NAO Cadastrada" e o ID da tag cadastrada
- digitalWrite(LED_VERMELHO, HIGH);
- delay(500);
- digitalWrite(LED_VERMELHO, LOW);
- delay(500);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement