Módulo Leitor RFID RC522 com Raspberry Pi Pico - Cap Sistema
Tempo de leitura: 15 minutes
Neste tutorial, aprenderemos a fazer a interface do Módulo Leitor RFID RC522 com o Raspberry Pi Pico usando o MicroPython. Esses módulos de leitor RFID são muito úteis no mundo acelerado de hoje. Devido à sua natureza rápida, precisa e segura, eles são amplamente utilizados com microcontroladores em vários campos, por exemplo. de supermercados para check-outs rápidos a sistemas de segurança bem conservados para bancos/cadeias/salas de servidores.
O módulo leitor RFID que veremos é conhecido como RC522. Usaremos o Raspberry Pi Pico com ele e mostraremos um projeto MicroPython que usará diferentes cartões RFID para iluminar um LED RGB em três cores diferentes.
Ao final deste tutorial você será capaz de:
Conheça a introdução sobre o módulo leitor RFID RC522 (recursos e pin out)
Interface do módulo leitor RC522 com Raspberry Pi Pico juntamente com LED RGB
Leia a etiqueta RFID
Controle o LED RGB usando o módulo leitor RFID RC522
Módulo Leitor RFID RC522
Layout de memória de etiqueta de cartão RFID de 1 KB
Aplicações do módulo RFID RC522
Apresentando o LED RGB
Interface do módulo leitor RFID RC522 e LED RGB com Raspberry Pi Pico
Raspberry Pi Pico com Módulo RC522
Raspberry Pi Pico com Módulo LED RGB (Catodo Comum)
Instalando a Biblioteca MicroPython MFRC522
Controle de LED RGB RFID RC522
Raspberry Pi Pico MicroPython: Controle de LED RFID RC522 RGB
RC522 é um módulo RFID multicomunicação para Arduino e microcontroladores. O RC522 é conhecido como MFRC-522 devido ao seu microcontrolador semicondutor NFX. O módulo permite que os desenvolvedores o conectem com qualquer outro microcontrolador baseado em SPI, I2C e UART. Ele vem com uma etiqueta de cartão RFID e chaveiro com 1 KB de memória.
Etiqueta de cartão RFID e porta-chaves
O módulo RC522 funciona na frequência de 13,56 MHz e pode atuar como leitor e escrever para cartões UID/RFID. Os cartões RFID comunicam-se com o módulo a curta distância com radiofrequência devido à técnica de indução mútua. Na maioria dos produtos comerciais e de segurança, o módulo é eficaz porque os erros e problemas com as etiquetas RFID são detectáveis ​​por ele.
O cartão RFID é um dispositivo de armazenamento de memória com 1 KB de memória. Esta memória é dividida em 16 setores (0-15) onde cada setor é dividido em 4 blocos (0,1,2,3). Cada bloco é de 16 bytes cada. Assim 4 blocos x 16 bytes x 16 setores = 1024 bytes que é 1KB
Recursos do Leitor RFID RC522
RFID RC522 usa indução mútua para ativar os cartões e 13,56MHz para transferência de dados.
Os Cartões RFID são utilizáveis ​​em ambos os lados do módulo a um máximo de 5 cm.
Os únicos 3,3 V são necessários para ativar o dispositivo.
Seu modo de suspensão automática torna o módulo de menor consumo de energia.
O módulo possui três tipos de comunicação (UART, SPI, I2C). Portanto, é utilizável com quase odos os microcontroladores ou dispositivos do mercado.
Os cartões e leitor RFID (RC522) podem transferir dados até 10Mb/s.
RFID tem a maior parte do uso como um dispositivo de segurança.
Em algumas empresas, os dispositivos usam com itens de compras.
Alguns aeroportos também começam a usar RFID para identificar e rastrear malas e outros itens.
O sistema de atendimento ou estacionamento também usa RFID para manter o sistema seguro.
Neste módulo, existem apenas dois tipos de pinos. Então, o primeiro é o poder e o segundo são os pinos de comunicação. Portanto, o dispositivo pode ter seu chip microcontrolador em si mesmo, mas só faz funcionar como um RFID. O microcontrolador integrado não tornará o módulo um dispositivo autônomo.
Todos os pinos do leitor de cartão RFID MFRC/RC522 são:
A tabela abaixo mostra os oito pinos encontrados no módulo RFID RC522. Você também pode ver suas descrições.
Pin Descrição
VCC Os pinos de alimentação são VCC. Em algumas versões do RC522, este pino é indicado por 3V3 no módulo em vez de VCC.
RST Este é o pino de reset para o módulo. Portanto, ele redefine o dispositivo em caso de erro quando um dispositivo não está dando nenhuma resposta.
GND O aterramento ajuda a estabelecer uma base comum com todos os dispositivos externos, por exemplo, fonte de alimentação ou microcontrolador.
IRQ O dispositivo pode entrar no modo de suspensão para economizar energia. Então, o IRQ ajuda a despertá-lo.
MISO Este pino se conecta ao microcontrolador para comunicação SPI. No entanto, ele transfere os dados do módulo para o microcontrolador.
O pino MISO também pode ser usado para outras funções em vez do SPI.
Ele também pode fazer interface com I2C para pulso de clock e UART Serial para transferência de dados do módulo.
MOSI MOSI é o pino de entrada de dados para o módulo RFID na comunicação SPI
SCK Os pinos SCK ajudam a enviar o pulso de clock nas comunicações SPI.
SS O pino SS é um pino de habilitação de chip na comunicação SPI. Portanto, ele recebe o sinal quando o Mestre (Raspberry Pi Pico) deve realizar a comunicação SPI.
O pino SS em RFID pode ser usado como um segundo pino (SDA) para comunicação I2C.
Ele também recebe dados durante a comunicação UART.
O LED RGB é um diodo emissor de luz que emite luzes vermelhas, verdes e azuis. Consiste em três LEDs discretos: vermelho, verde e azul alojados em um único pacote, portanto, combinando essas três cores, podemos criar qualquer cor. Sempre que a tensão for aplicada ao terminal vermelho, uma luz vermelha será emitida e, da mesma forma, quando a tensão for aplicada ao terminal verde e azul, as luzes verde e azul serão emitidas, respectivamente.
O LED RGB tem quatro pinos. Esses pinos são usados ​​para controlar a cor do LED. O pino mais longo é o ânodo ou o cátodo, dependendo do tipo de LED RGB.
Existem dois tipos de diodos emissores de luz RGB disponíveis no mercado.
Tipo de ânodo comum: No tipo de ânodo comum, o ânodo é comum para todos os três diodos emissores de luz e o ânodo de todos os diodos emissores de luz se conecta com a fonte de alimentação positiva. Outros terminais se conectam com o microcontrolador e ligamos e desligamos esses terminais de acordo com qual LED queremos ligar ou desligar.
Tipo de cátodo comum: No tipo de cátodo comum, o cátodo de todos os três diodos emissores de luz são comuns e o terminal de cátodo comum é conectado ao terra da fonte de alimentação e o outro terminal de cada LED de energia é conectado ao microcontrolador pic de acordo com o LED que queremos ligar ou desligue.
A imagem do LED RGB do tipo ânodo comum e cátodo comum é mostrada abaixo:
O LED RGB e sua pinagem são mostrados abaixo.
1 Este é o pino de seleção da cor vermelha. Conecte com o pino de saída digital do microcontrolador.
2 Este é o pino terra para o tipo de cátodo comum e o pino Vdd de 5 volts para o tipo de ânodo comum.
3 Este é o pino de seleção da cor azul. Conecte com o pino de saída digital do microcontrolador.
4 Este é o pino de seleção da cor verde. Conecte com o pino de saída digital do microcontrolador.
Ponto para Observação:
Para limitar a corrente que passará pelo LED RGB, precisaremos usar três resistores, um para cada pino de cor. Se não usarmos um resistor ou se usarmos um valor de resistor baixo, o LED será destruído. Precisamos usar um resistor de 220 ohm ou superior. Quanto maior o valor do resistor, menor o brilho do LED.
O LED RGB também vem em um módulo com os resistores limitadores de corrente já acoplados. Eles também estão disponíveis em dois tipos: o módulo de cátodo comum e o módulo de ânodo comum.
O módulo de LED RGB já vem com os resistores limitadores de corrente para não adicionarmos resistores externos.
Abaixo você pode ver os dois módulos com seus pinos.
Precisaremos dos seguintes componentes para conectar nossa placa Raspberry Pi Pico ao módulo RC522 e ao módulo LED RGB.
O módulo RC522 possui 8 terminais que iremos conectar com o Raspberry Pi Pico. Como o RC522 requer uma tensão de operação na faixa de 2,5-3,3V, o terminal VCC do módulo RC522 será em comum com o pino de 3,3V da placa. Da mesma forma, todos os dispositivos terão seus fundamentos em comum.
A comunicação SPI ajuda a comunicar com o módulo leitor RFID, que é comum em todos os microcontroladores. Assim, utilizaremos a interface SPI do Raspberry Pi Pico. Vamos primeiro aprender sobre a interface Raspberry Pi Pico SPI.
Controlador SPI Pinos GPIO
Módulo Leitor RFID RC522 Raspberry Pi Pico
IRQ Não conectado.
Estamos usando o módulo de LED RGB de cátodo comum para este projeto. A tabela abaixo mostra as conexões que estamos usando entre o módulo de LED e o Raspberry Pi Pico.
Modulo RGB LED Raspberry Pi Pico
Os pinos vermelho, verde e azul do módulo LED RGB serão conectados aos pinos GPIO do Raspberry Pi Pico. Usaremos GP13, GP12 e GP11 para conectar com cada pino de cor. Você pode usar qualquer pino GPIO apropriado.
Siga o diagrama esquemático abaixo e conecte os três dispositivos de acordo.
Todas as conexões entre os dispositivos são as mesmas que as listamos nas tabelas acima.
Diagrama de conexão do módulo Raspberry Pi Pico com RC522 e RGB LED
Para este projeto, precisaremos da biblioteca MicroPython MRRC522. Copie esta biblioteca e salve-a em seu Raspberry Pi Pico com o respectivo nome de arquivo (mfrc522.py) do link do GitHub.
Abra um novo arquivo no Thonny. Copie a biblioteca fornecida abaixo ou do link fornecido acima. Salve-o no Raspberry Pi Pico com o nome mfrc522.py na pasta lib.
Usaremos o Raspberry Pi Pico com ele e mostraremos um projeto MicroPython que usará diferentes cartões RFID para iluminar um LED RGB em três cores diferentes. Um cartão fará com que o LED acenda na cor verde enquanto outro acenderá na cor azul. Qualquer cartão desconhecido definirá a luz RGB para a cor vermelha. O usuário aproxima o cartão/tags RFID do leitor RFID e a luz RGB é definida para a cor apropriada junto com as mensagens relevantes no Thonny Shell.
Raspberry Pi Pico MicroPython: Lendo etiquetas RFID
Abra seu Thonny IDE e vá em File > New para abrir um novo arquivo. Copie o código a seguir nesse arquivo. Este esboço identificará o ID do cartão/tag RFID. Quando o usuário traz uma etiqueta/cartão RFID próximo ao módulo RC522, ele detecta a etiqueta e lê seu valor.
O primeiro passo é incluir todas as bibliotecas necessárias para este projeto. Importaremos o módulo utime para gerar o delay e a classe MFRC522 do módulo mfrc522 para trabalhar com o leitor RC522 para esta tarefa.
Em seguida, definiremos a conexão RFID do RC522 criando um objeto 'leitor'. Ao usar MFRC522(), especificamos o número do canal SPI como o primeiro parâmetro e os pinos SPI como o restante dos parâmetros.
A seguinte mensagem impressa no Thonny Shell indica que o usuário deve aproximar seu cartão/tag RFID do módulo RFID.
Dentro do loop infinito, primeiro inicializaremos o leitor RFID usando o método init() no objeto leitor. Em seguida, obteremos o status do leitor. Se o status for válido, seguiremos em frente com nosso programa. Criaremos outro objeto 'cartão' que conterá o ID do cartão RFID. Obteremos o ID de tag exclusivo associado à tag sempre que ela for detectada. Isso é impresso no console Thonny shell.
Agora traga um cartão/tag RFID perto do leitor RC522. Imediatamente o ID do cartão será impresso no terminal shell. Aqui, digitalizamos duas tags diferentes e obtivemos seus IDs.
Usaremos esses dois IDs para acender o LED RGB adequadamente. Se o primeiro ID for digitalizado pelo leitor, o LED RGB será definido para luz verde e se o segundo ID for digitalizado, o LED RGB será definido para luz azul. Para qualquer outra tag RFID que seja digitalizada, o LED RGB será configurado para vermelho.
Quando o usuário traz uma etiqueta/cartão RFID próximo ao RC522, ele detecta a etiqueta e lê seu valor. Se o valor for o mesmo definido no código para verde, a mensagem 'PASS: Green Light Activated' é mostrada no terminal do shell. Se o valor for o mesmo definido no código para azul, a mensagem 'PASS: Blue Light Activated' é mostrada no terminal do shell. Caso contrário, 'CARTÃO DESCONHECIDO! A mensagem Red Light Activated' é mostrada em vez disso. O LED RGB será definido para as cores verde, azul ou vermelho neste processo. Este processo ocorre sempre que o usuário aproxima uma etiqueta RFID do módulo.
A maior parte do código é semelhante ao acima, onde estamos obtendo as identificações das etiquetas RFID. Depois de obter o ID do cartão, verificaremos se o ID é um dos dois que configuramos para uma passagem verde e azul e, em seguida, configuramos o LED RGB para essa cor específica.
Como estamos usando o módulo RGB de cátodo comum, para definir a cor para verde, teremos que garantir que o GPIO conectado ao pino verde esteja em um estado alto e o restante dos dois esteja em um estado baixo.
Para definir a cor para azul, teremos que garantir que o GPIO conectado ao pino azul esteja em um estado alto e o restante dos dois esteja em um estado baixo.
Da mesma forma, para definir a cor para vermelho, teremos que garantir que o GPIO conectado ao pino vermelho esteja em estado alto e o restante dos dois esteja em estado baixo.
Depois de salvar o código, pressione o botão Executar para fazer o upload do código para o seu módulo Raspberry Pi Pico.
Aproxime o cartão/tags RFID do leitor RC522 e imediatamente o LED RGB acenderá em verde, azul ou vermelho.
O terminal Thonny Shell também imprimirá mensagens relevantes à medida que cada tag for digitalizada.
Visits: 4 Visits: 1126044
código, Desenvolvimento, Eletrônica, Fios, Leitor RFID EM18, micropython, Módulo LED RGB, Modulo RFID-RC522, Pico, Programação, Projetos, ProtoBoard, Python, Raspberry Pi Pico, Sketch