- Descrição: O Sensor de Distância IR Longo Alcance Sharp GP2Y0A21YK0F tem…
Como usar com Arduino – KIT RFID MFRC522
– Descrição:
O KIT com Leitor RFID MFRC522/Tag Chaveiro/Tag Cartão – 13,56MHz possui os itens necessários para que você possa começar a desenvolver seus projetos utilizando tecnologia RFID. O KIT é composto de um leitor RFID da marca Mifare, modelo MFRC522, uma tag do tipo chaveiro de 13,56MHz e uma tag do tipo cartão também de 13,56MHz.
A tecnologia RFID é aplicada a diversos setores. Como exemplo: controle de tráfego de pessoas (indústria ou instituição de ensino) ou em supermercado, onde os produtos possuem uma tag RFID e ao final da compra o cliente só precisa passar o carrinho com os produtos por um leitor RFID de médio porte para que as tags dos produtos sejam lidas e o valor final da compra seja apresentado ao cliente.
– Especificações e características (Leitor RFID MFRC522):
– Modelo: MFRC522
– Tensão de operação: 3,3VDC
– Corrente de operação: 13mA a 26mA
– Tensão em modo inativo: 3,3VDC
– Corrente em modo inativo: 10mA a 13mA
– Frequência de operação: 13,56MHz
– Interface: SPI
– Taxa de transferência: 10Mbit/s
– Alcance: 0 a 3cm
– Cartões suportados: Mifare1 S50, Mifare1 S70, Mifare Ultralight, Mifare Pro, Mifare Desfire
– Temperatura de operação: -20º a 80º celsius
Especificações e características (Tag Cartão 13,56MHz):
– Frequência de operação: 13,56MHz
– Taxa de transferência: 106Kbaud
– Capacidade: 8Kbit / 16 partições
– Alcance: 2 a 10cm
– Tempo de leitura e escrita: 1 a 2ms
– Temperatura de operação: -20º a 55º celsius
– Material: PVC
Especificações e características (Tag Chaveiro 13,56MHz):
– Frequência de operação: 13,56MHz
– Taxa de transferência: 106Kbaud
– Capacidade: 8Kbit / 16 partições
– Alcance: 2 a 10cm
– Tempo de leitura e escrita: 1 a 2ms
– Temperatura de operação: -20º a 80º celsius
– Material: ABS
– Datasheet:
– Aplicações:
A partir da leitura da tag é possível definir ações a serem executada, como, por exemplo, abertura de uma cancela eletrônica, abertura de um portão, liberação de roleta na portaria de uma empresa mediante a leitura da tag de cadastro do funcionário e etc.
– Proposta da prática:
1) Utilizar o KIT com Leitor RFID MFRC522/Tag Chaveiro/Tag Cartão – 13,56MHz em conjunto com o Arduino para capturar os UIDs das tags.
2) Em seguida efetuar leitura das tags a partir do leitor e caso seja uma tag válida (cadastrada) o LED verde irá acender e caso seja uma tag inválida (não cadastrada) o LED vermelho irá acender.
– Lista dos itens necessários:
01 – Arduino com Cabo USB
01 – KIT com Leitor RFID MFRC522
01 – LED Difuso 5mm Vermelho
01 – LED Difuso 5mm Verde
02 – Resistor de 150Ω
01 – Protoboard
04 – Cabos Jumper macho-macho
07 – Cabos Jumper macho-fêmea
– Esquema de ligação da prática (capturar os UIDs das tags):
– Tutorial de instalação e configuração do ambiente de programação do Arduino:
Arduino – Instalação e Configuração da IDE no Windows
– Biblioteca:
– Importando bibliotecas para o ambiente de programação do Arduino:
Arduino – Importando bibliotecas para a IDE
– Código (capturar os UIDs das tags):
OBS: anote os UIDs capturados para utilizar um deles no código de validação da tag cadastrada.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
#include <SPI.h> //INCLUSÃO DE BIBLIOTECA #include <MFRC522.h> //INCLUSÃO DE BIBLIOTECA #define SS_PIN 10 //PINO SDA #define RST_PIN 9 //PINO DE RESET MFRC522 rfid(SS_PIN, RST_PIN); //PASSAGEM DE PARÂMETROS REFERENTE AOS PINOS void setup() { Serial.begin(9600); //INICIALIZA A SERIAL SPI.begin(); //INICIALIZA O BARRAMENTO SPI rfid.PCD_Init(); //INICIALIZA MFRC522 } void loop() { if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) //VERIFICA SE O CARTÃO PRESENTE NO LEITOR É DIFERENTE DO ÚLTIMO CARTÃO LIDO. CASO NÃO SEJA, FAZ return; //RETORNA PARA LER NOVAMENTE /***INICIO BLOCO DE CÓDIGO RESPONSÁVEL POR GERAR A TAG RFID LIDA***/ String strID = ""; for (byte i = 0; i < 4; i++) { strID += (rfid.uid.uidByte[i] < 0x10 ? "0" : "") + String(rfid.uid.uidByte[i], HEX) + (i!=3 ? ":" : ""); } strID.toUpperCase(); /***FIM DO BLOCO DE CÓDIGO RESPONSÁVEL POR GERAR A TAG RFID LIDA***/ Serial.print("Identificador (UID) da tag: "); //IMPRIME O TEXTO NA SERIAL Serial.println(strID); //IMPRIME NA SERIAL O UID DA TAG RFID rfid.PICC_HaltA(); //PARADA DA LEITURA DO CARTÃO rfid.PCD_StopCrypto1(); //PARADA DA CRIPTOGRAFIA NO PCD } |
– Resultado (capturar os UIDs das tags):
– Esquema de ligação da prática (validação da tag cadastrada):
– Código (validação da tag cadastrada):
OBS: antes de carregar o código abaixo no Arduino, substitua o texto 27:41:AA:AB na linha “if (strID.indexOf(“27:41:AA:AB”) >= 0) {” pelo UID de uma das tags que fez a captura. Qualquer outro UID diferente do identificador (UID) que você inserir no código será inválido.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
#include <Wire.h> //INCLUSÃO DA BIBLIOTECA NECESSÁRIA #include <SPI.h> //INCLUSÃO DE BIBLIOTECA #include <MFRC522.h> //INCLUSÃO DE BIBLIOTECA #define SS_PIN 10 //PINO SDA #define RST_PIN 9 //PINO DE RESET MFRC522 rfid(SS_PIN, RST_PIN); //PASSAGEM DE PARÂMETROS REFERENTE AOS PINOS const int pinoLedVerde = 3; //PINO DIGITAL REFERENTE AO LED VERDE const int pinoLedVermelho = 2; //PINO DIGITAL REFERENTE AO LED VERMELHO void setup(){ Wire.begin(); //INICIALIZA A BIBLIOTECA WIRE SPI.begin(); //INICIALIZA O BARRAMENTO SPI rfid.PCD_Init(); //INICIALIZA MFRC522 pinMode(pinoLedVerde, OUTPUT); //DEFINE O PINO COMO SAÍDA pinMode(pinoLedVermelho, OUTPUT); //DEFINE O PINO COMO SAÍDA digitalWrite(pinoLedVerde, LOW); //LED INICIA DESLIGADO digitalWrite(pinoLedVermelho, LOW); //LED INICIA DESLIGADO } void loop() { leituraRfid(); //CHAMA A FUNÇÃO RESPONSÁVEL PELA VALIDAÇÃO DA TAG RFID } //FUNÇÃO DE VALIDAÇÃO DA TAG RFID void leituraRfid(){ if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) //VERIFICA SE O CARTÃO PRESENTE NO LEITOR É DIFERENTE DO ÚLTIMO CARTÃO LIDO. CASO NÃO SEJA, FAZ return; //RETORNA PARA LER NOVAMENTE /***INICIO BLOCO DE CÓDIGO RESPONSÁVEL POR GERAR A TAG RFID LIDA***/ String strID = ""; for (byte i = 0; i < 4; i++) { strID += (rfid.uid.uidByte[i] < 0x10 ? "0" : "") + String(rfid.uid.uidByte[i], HEX) + (i!=3 ? ":" : ""); } strID.toUpperCase(); /***FIM DO BLOCO DE CÓDIGO RESPONSÁVEL POR GERAR A TAG RFID LIDA***/ //O ENDEREÇO "27:41:AA:AB" DEVERÁ SER ALTERADO PARA O ENDEREÇO DA SUA TAG RFID QUE CAPTUROU ANTERIORMENTE if (strID.indexOf("27:41:AA:AB") >= 0) { //SE O ENDEREÇO DA TAG LIDA FOR IGUAL AO ENDEREÇO INFORMADO, FAZ digitalWrite(pinoLedVerde, HIGH); //LIGA O LED VERDE delay(3000); //INTERVALO DE 4 SEGUNDOS digitalWrite(pinoLedVerde, LOW); //DESLIGA O LED VERDE }else{ //SENÃO, FAZ (CASO A TAG LIDA NÃO SEJÁ VÁLIDA) digitalWrite(pinoLedVermelho, HIGH); //LIGA O LED VERMELHO delay(3000); ////INTERVALO DE 6 SEGUNDOS digitalWrite(pinoLedVermelho, LOW); //DESLIGA O LED VERDE } rfid.PICC_HaltA(); //PARADA DA LEITURA DO CARTÃO rfid.PCD_StopCrypto1(); //PARADA DA CRIPTOGRAFIA NO PCD } |
– Resultado final (validação da tag cadastrada):
Gostou desta prática? Então deixa seu comentário, dúvida ou sugestão aí embaixo!
Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop
Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.
Obrigado e até a próxima!
Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.
Postagem anterior: Como usar com Arduino – Display LCD 16X2 com Backlight Azul
Próxima postagem: Como usar com Arduino – Sensor de Umidade e Temperatura DHT11
Boa! Tem algum modelo q tenha um alcance maior? 5,6m?
Olá Rafael.
Agradeço pelo comentário!
Com certeza tem, mas com finalidade de uso profissional / industrial.
Olá Euler!
É possível usar o sistema RFID para registrar “créditos” em um tag por bases remotas (baterias sem ser ligadas a tomada)
E outros sistemas remotos (a bateria) retirar os créditos desses tags (de forma simples de 1 em 1) por ação de um botão?
Vocês teriam todos os componentes necessários?
Desde ja agradeço a atenção.
Olá Sergio.
Agradeço pelo comentário e reconhecimento!
Infelizmente não vou saber te responder.
Como chama os cabos colorido e como se compra eles?
Olá Alan.
Agradeço pelo comentário!
São Cabos Jumper e você pode adquirir em nossa loja virtual:
https://www.masterwalkershop.com.br/cabos
oi galera , teria como alguém me ajudar, eu gostaria que o circuito funcionasse assim, ao aproximar a tag o led ascende e se apaga ao afastar a tag, algo como pressionar o botão e ligar o led, e ao soltar ele apaga. obrigado a todos
Como eu faço para colocar várias etiquetas para liberar o acesso? Eu poderia nomear elas no começo dando um nome (etiqueta “A” , “B”, “C” etc…) e ao invés de colocar o código, no IF só fazer pelo nome)
Olá Euler. Obrigado por compartilhar! Eu tenho uma pergunta… Seria possível ter a saída ativa sempre enquanto o tag estiver próxima do sensor, desligando ao retirar? Vou explicar melhor minha idéia. Seria para usar um tag para ligar um determinado equipamento, que ficaria energizado enquanto o tag estiver ali no sensor. Quando retirar o tag do sensor, cortaria a alimentação. Talvez esse seu exemplo já faça isso… O LED verde permanece acesoe nquanto o TAG estiver ali e só apaga ao retirar?
Obrigado por alguma resposta!
Olá Marcus.
Agradeço pelo comentário!
Sim, é possível.
GOSTARIA DE ADICIONAR UM BUZZER TERIA COMO?
Olá Filipe.
Agradeço pelo comentário!
Sim, é possível.
No meu monitor serial só aparece caracteres estranhos
teria como mandar os dados de cada cartão para o excel
Seria possível utilizar este kit para registrar a localização de um determinado item?
Olá Ezequiel.
Agradeço pelo comentário!
Não.