Descrição:
Nesse projeto vamos utilizar um leitor RFID-RC522 juntamente com um cartão e um chaveiro para controlar o acesso de pessoas a um determinado recinto. Vamos supor que o
cartão tenha autorização para entrar no ambiente e o chaveiro não. Um LCD 16x2 será usado para mostrar as informações coletadas pelo leitor, e um potenciômetro para controlar a
intensidade do brilho do LCD.
Essas informações serão mostradas também no Monitor serial. Podemos encontrar esse tipo de sensor sendo utilizado nos pedágios de estradas e pontes,
aberturas de portas, em produtos, em cartões para acesso ao transporte coletivo, entre outras aplicações. As etiquetas (ou tags como são também conhecidas) RFID podem conter
vários dados sobre o proprietário do cartão, como nome, endereço e telefone, e no caso de produtos, informações sobre procedência, valor e data de validade, apenas para citar alguns exemplos.
Mas agora vamos conhecer os componentes que farão parte desse projeto.
Leitor RFID-RC522:
RFID significa Radio Frequency Identification (Identificação por Radiofrequência). Além da identificação e acesso de pessoas a determinados lugares, como já dissemos
anteriormente, esse leitor pode ser também utilizado para identificar produtos e equipamentos, seja por meio de crachás ou etiquetas aplicadas a esses produtos. Você também poderá
utilizar esse sensor para ligar motores, outros sensores, lâmpadas ou LEDs, entre outros dispositivos. As tags RFID podem ser embutidas facilmente em vários objetos, nos mais variados
tamanhos e for-matos. Cada etiqueta (ou tag) do leitor RFID tem a sua própria identificação (UID).
Esse leitor é composto de três partes: um sensor, uma tag no formato de chaveiro e uma tag no formato de cartão. Toda tag que acompanha o leitor é identificada com um
código hexadecimal único, que você poderá utilizar para cadastrar as pessoas, produtos, peças, etc. Nenhum código é igual a outro. Você poderá adquirir vários cartões e vários
chaveiros para utilizar com um mesmo leitor.
O tipo de leitor que vamos utilizar no nosso projeto é o mostrado na Figura 4.1:
Figura 4.1 – Leitor RFID-RC522.
(Imagem: do Autor)
Vejamos algumas especificações técnicas desse componente de acordo com o fabricante:
• Corrente de pico: & lt; 30mA.
• Umidade relativa: 5% -95%.
• Corrente: 13-26mA/DC 3.3V.
• Corrente ociosa: 10-13mA / DC 3.3V.
• Frequência de operação: 13.56MHz.
• Dimensões: 40mm x 60mm.
• Temperatura de armazenamento do ambiente: -40 ~ 85 graus Celsius.
• Temperatura de operação ambiental: -20 ~ 80 graus Celsius.
• Tipos de cartões suportados: mifare1 S50, mifare1 S70, mifare UltraLight, mifare Pro, mifare Desfire.
Pinagem:
Esse componente dispõe de oito pinos para a conexão com o Arduino, conforme mostra a Figura 4.2:
Figura 4.2 – Leitor RFID-RC522.
(Imagem: do Autor)
A partir da esquerda (parte superior), temos:
• Pino 3.3 – alimentação: 3.3V.
• Pino RST – porta 9 do Arduino.
• Pino GND – terra.
• Pino NC – Não conectado.
• Pino MISO – porta 12 do Arduino.
• Pino MOSI – porta 11 do Arduino.
• Pino SCK – porta 13 do Arduino.
• Pino SDA – porta 10 do Arduino.
Lembrete: A tensão desse sensor é de 3.3V, e não 5V como é de costume na maioria dos componentes. Portanto, cuidado para não conectá-lo no
pino errado, senão poderá danificar o componente.
Potenciômetro:
Um potenciômetro é um sensor analógico com um botão giratório ajustável entre um valor mínimo e um máximo. É como se fosse um resistor variável. Seus valores variam
entre 0 e 1023, e você poderá utilizar esse componente para controlar o volume de um som, a veloci-dade de um motor, a intensidade de um LED ou de uma lâmpada, entre outras
aplicações. Sua tensão pode variar entre 3,3V e 5V. Existem vários tipos, tamanhos e formatos desse componente no mercado, e você poderá utilizar qualquer um que seja compatível
com o que vamos utilizar em nosso projeto, conforme mostra a Figura 4.3:
Figura 4.3 – Potenciômetro.
(Imagem: do Autor)
Pinagem:
Esse componente dispõe de três pinos (ou terminais) para a conexão com o Arduino. A partir da esquerda, temos:
• GND – terra.
• VCC – 5V.
• SIG – sinal.
Display LCD 16x2:
Esse componente é utilizado para exibir informações provenientes de resultados obtidos da leitura de outros componentes, como sensores de movimento, ultrassônicos, infravermelho,
de temperatura, etc. Essas informações serão exibidas em um visor de cristal líquido contendo 16 colunas por 2 linhas. Esse componente poderá ser usado com vários tipos de placas
e microcontroladores, tais como Arduino, Raspberry PI, PIC, entre outros. O tamanho, as cores de fundo e dos caracteres variam de acordo com o modelo e o fabricante. Entretanto,
essas características não afetam a finalidade do nosso projeto.
O tipo de display que vamos utilizar em nosso projeto é o mostrado na Figura 4.4:
Figura 4.4 – Display LCD 16x2
(Imagem: do Autor)
Vejamos algumas especificações técnicas desse componente de acordo com o fabricante:
• Módulo I2C 1602 LCD Azul 16x2.
• Tela de cristal líquido para Arduino e outros microcontroladores.
• Com o conversor serial I2C, o módulo usa o chip pcf8574.
• Ele permite que você use este LCD com apenas 4 pinos. Há uma luz de fundo que levaria um quinto pino se você quiser ligar e desligar.
• Tela retro iluminada azul de 16x2 caracteres.
• O conversor I2C incluído salva os pinos no seu projeto.
• O LCD e o conversor são componentes separados com os pinos soldados no conversor.
• Será necessário soldar o conversor no LCD.
Agora que você já conhece o componente essencial para esse projeto, vejamos o material necessário para sua execução:
• 1 Arduino Uno (recomendado) ou compatível.
• 1 Protoboard.
• 1 Leitor RFID-RC522.
• 1 Tag Cartão.
• 1 Tag Chaveiro.
• 1 Display LCD 16x2.
• 1 Potenciômetro de 10K.
• Alguns jumpers.
Conectando os componentes ao Arduino:
Estando com todo o material em mãos, conecte-os de acordo com o esquema mostrado na Figura 4.5, mas antes certifique-se que o cabo USB do
Arduino esteja desconectado do computador:
Figura 4.5 – Conexão esquemática dos componentes com o Arduino e a protoboard.
(Imagem: do Autor)
Faça as conexões da seguinte forma:
• Arduino – conecte o pino 5V a um dos pinos da trilha vermelha da protoboard (fio vermelho), e o pino GND a um dos pinos da trilha preta da protoboard
(fio marrom).
• Leitor RFID-RC522 – conecte o primeiro pino da esquerda (SDA) ao pino 10 do Arduino (fio verde), o segundo pino (SCK), conecte ao pino 13
do Arduino (fio vermelho), o pino MOSI, conecte ao pino 11 do Arduino (fio verde), o pino MISO, conecte ao pino 12 do Arduino (fio vermelho), o pino NC, deixe desconectado, o pino GND,
conecte a um dos pinos da trilha preta da protoboard (fio azul), o pino RST, conecte ao pino 9 do Arduino (fio laranja), e finalmente, o pino 3.3, conecte ao pino 3.3V do Arduino (fio verde).
• Display LCD – conecte o primeiro pino da esquerda, VSS (Ground), a um dos pinos da trilha preta da protoboard (fio azul), o segundo pino, VDD (5V),
conecte a um dos pinos da trilha vermelha da protoboard (fio azul), o terceiro pino, VE (Contrast), conecte um potenciômetro (veja abaixo) (fio amarelo), o quarto pino RS conecte à saída
digital 6 do Arduino (fio laranja), o quinto pino, RW, conecte a um dos pinos da trilha preta da protoboard (fio marrom), o sexto pino (E), conecte à saída digital 7 do Arduino (fio lilás),
deixe os próximos 4 pinos (D0 a D3) desconectados, o pino D4, conecte à saída digital 5 do Arduino (fio verde), o pino D5, conecte à saída digital 4 do Arduino (fio azul), o pino D6,
conecte à saída digital 3 do Arduino (fio verde), o pino D7, conecte à saída digital 2 do Arduino (fio vermelho), o penúltimo pino, Backlight Anode, conecte à um dos pinos da trilha vermelha
da protoboard (fio vermelho), e finalmente o pino, Backlight Cathode, conecte à um dos pinos da trilha preta da protoboard (fio preto).
• Potenciômetro (considerando a parte de trás do componente) – conecte o primeiro terminal (SIG) ao terceiro pino (Contrast) do LCD (fio ama-relo),
o segundo terminal a um dos pinos da trilha vermelha da protoboard (fio vermelho), e o último terminal conecte a um dos pinos da trilha preta da protoboard (fio laranja).
Para facilitar a conexão do LCD 16x2 com o Arduino e a protoboard, consulte a tabela a seguir:
Tabela 4.1 – Conexão dos pinos do LCD 16x2 com o Arduino e a protoboard.
(Imagem: do Autor)
Veja nas Figura 4.6, 4.7, 4.8, 4.9 e 4.10 o mesmo projeto na versão real:
Figura 4.6 – Visão real das conexões dos componentes com o Arduino e a protoboard.
(Imagem: do Autor)
Figura 4.7 – Detalhes do leitor e do potenciômetro.
(Imagem: do Autor)
Figura 4.8 – LCD mostrando mensagem inicial
quando o código é executado.
(Imagem: do Autor)
Figura 4.9 – LCD mostrando mensagem
quando o cartão é utilizado.
(Imagem: do Autor)
Figura 4.10 – LCD mostrando mensagem
quando o chaveiro é utilizado.
(Imagem: do Autor)
Criando o sketch:
Para a criação do nosso sketch, precisamos primeiro baixar e instalar a biblioteca do RFID no Arduino necessária para a execução do projeto. Se a biblioteca já estiver instalada
execute o passo seguinte:
Instalando a biblioteca MFRC522:
• Faça o download da biblioteca MFRC522 no link:
Biblioteca MFRC522
e salve-a em algum lugar de sua preferência.
• Descompacte o arquivo e mova ou copie a pasta MFRC522 para o diretório libraries do Arduino (onde ele foi instalado).
• Execute o Arduino e verifique se a biblioteca instalada faz parte da lista de bibliotecas utilizando o menu: Sketch >> Incluir Biblioteca.
Ela deve estar no final da lista com o nome: MFRC522.
OBS.: Se o Arduino já estiver sendo executado será necessário fechá-lo e executá-lo novamente para que a biblioteca seja incluída na lista.
Agora que a biblioteca está devidamente instalada e os componentes conectados, digite o código da Listagem 4.1 (desconsidere os números à esquerda,
só servem como referência), ou carregue o arquivo (leitor_rfid) utilizando o link:
Leitor RFID-RC522
E abra no editor do Arduino.
Listagem 4.1
Salve esse projeto com o nome (sugestão) de: leitor_rfid.
Alguns comentários sobre o código:
1) Nas linhas 6 a 8, incluímos as bibliotecas necessárias para a execução do nosso projeto.
2) Nas linhas 9 e 10, definimos os pinos do Arduino onde serão conectados os pinos SDA e RST do leitor.
3) Na linha 23, será mostrada no Monitor serial a mensagem inicial quando o código for executado. Na linha 25, executamos a função criada no final do código.
4) Na linha 31, criamos uma condição para procurar por novos cartões. Se não houver, o programa retorna ao início do loop.
5) Na linha 36, criamos outra condição para selecionar um dos cartões apresentados. Se a UID do cartão ou do chaveiro não for reconhecida o programa retornará ao
início do loop, caso contrário, o programa seguirá adiante.
6) Na linha 53, criamos uma condição para sabermos se o cartão está cadastrado e autori-zado ao acesso. Em caso positivo, serão impressas as devidas mensagens tanto
no Monitor serial quanto no LCD.
7) Na linha 65, criamos outra condição para testar o chaveiro da mesma forma que fizemos com o cartão.
8) Finalmente, na linha 79 criamos uma função para imprimir no LCD a mesma mensagem da linha 23 para o Monitor.
Executando o projeto:
Inicialmente conecte o cabo USB no computador, selecione uma porta utilizando o menu Ferramentas/Porta, e em seguida faça o upload do código para o
Arduino clicando no ícone Carregar (ou utilize o menu Sketch >> Carregar). Se o seu código apresentar algum tipo de erro, ele será identificado
com uma tarja sobre a linha onde se encontra o erro e/ou no rodapé do Editor, isso vai depender do tipo de erro. Cabe a você procurar saber que tipo de erro ocorreu e consertá-lo.
Testando o projeto:
Inicialmente você deverá saber quais são os códigos hexadecimais das suas tags. Para isso, você deverá aproximar cada uma delas (cartão e chaveiro) do leitor que o código
será mostrado no Monitor serial. Anote o código de cada tag e substitua esses valores pelos códi-gos das linhas 53 (para o cartão), e linha 65 (para o chaveiro). Feito isso, faça
o upload do código novamente e teste as duas tags que você verá as mensagens de cada uma, tanto no LCD quanto no Monitor serial Figura 4.11:
Figura 4.11 – Monitor mostrando os valores hexadecimais
do cartão e do chaveiro, como também a situação de cada
tag ao serem aproximadas do leitor.
(Imagem: do Autor)
Atividade:
1) Adicione um alarme e um LED vermelho ao projeto, e altere o código de forma que, se a pessoa não estiver autorizada (no caso, o chaveiro), o alarme deverá ser disparado
e o LED ficar aceso, caso contrário, ambos deverão ficar desligados.
Dúvidas:
E-mail: jorge.eider@gmail.com
WhatsApp: (55) 84-99988-4136
|
|