Arduino Nano - RFID

Este tutorial ensina como usar RFID/NFC com o Arduino Nano. O sistema RFID/NFC é formado por dois componentes: um leitor e uma tag. Dois dos leitores RFID/NFC mais populares são o RC522 e o PN532. Este tutorial vai usar o leitor RFID/NFC RC522, que é barato e fácil de usar.

O leitor RFID/NFC RC522 pode:

Este tutorial é focado em:

Hardware Necessário

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cabo USB A para Mini-B
1×RFID/NFC RC522 Kit (reader + tags)
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Sobre o Módulo RFID-RC522

Pinagem do Módulo RFID-RC522

O RFID-RC522 tem 8 pinos, alguns deles são pinos gerais e os outros são compartilhados entre três modos de comunicação: SPI, I2C e UART. Só é possível usar um desses modos por vez. Os pinos são:

  • Pino GND: Precisa ser conectado ao terra (0V).
  • Pino VCC: Precisa ser conectado à fonte de tensão (3.3V).
  • Pino RST: É um pino de reset e desligamento. Quando este pino vai para nível baixo, ele ativa o desligamento total. Na borda de subida, o módulo é resetado.
  • Pino IRQ: É um pino de interrupção que pode avisar o microcontrolador quando uma tag RFID chega perto dele.
  • Pino MISO/SCL/TX: Atua como MISO quando a interface SPI está ativada, SCL quando a interface I2C está ativada e TX quando a interface UART está ativada.
  • Pino MOSI: Atua como MOSI quando a interface SPI está ativada.
  • Pino SCK: Atua como SCK quando a interface SPI está ativada.
  • Pino SS/SDA/RX: Atua como SS quando a interface SPI está ativada, SDA quando a interface I2C está ativada e RX quando a interface UART está ativada.
RFID-RC522 pinout

※ Nota:

  • A disposição dos pinos pode variar dependendo do fabricante. É essencial usar os rótulos impressos no módulo, como ilustrado na imagem acima do fabricante DIYables.
  • Não conecte o pino VCC ao pino 5V, pois isso pode danificar o módulo.
  • A biblioteca MFRC522 suporta apenas o modo SPI, então este tutorial vai focar na comunicação SPI.

Como o RFID/NFC Funciona

O RFID/NFC é composto por duas partes: um leitor e uma tag.

  • O leitor é formado por um módulo de radiofrequência e uma antena que produz um campo eletromagnético de alta frequência.
  • A tag normalmente é um dispositivo passivo, ou seja, não precisa de uma fonte de energia. Ela tem um microchip que armazena e processa informações, além de uma antena para receber e transmitir um sinal. Essa tag é usada para armazenar os dados e seu ID único.
arduino rfid nfc system

A tag precisa estar perto do leitor para que as informações que ela contém possam ser lidas. O processo envolve o leitor gerando um campo eletromagnético, que faz os elétrons se moverem pela antena da tag e alimentarem o chip. Em seguida, o chip envia as informações solicitadas de volta ao leitor como um sinal de rádio. O leitor detecta esse sinal e o transforma em dados, que são então lidos pelo Arduino Nano.

Diagrama de Ligação entre o Módulo RFID-RC522 e o Arduino Nano

O Módulo RFID-RC522 requer uma tensão de 3.3V, mas os pinos de saída do Arduino fornecem 5V. Portanto:

  • Para garantir a segurança, a tensão dos pinos do Arduino deve ser regulada para 3.3V antes de conectar ao Módulo RC522.
  • Para fins de teste, os pinos do Arduino podem ser conectados diretamente ao Módulo RC522, mas isso pode causar problemas em alguns casos.

Este tutorial fornece dois diagramas de ligação diferentes para os dois casos:

  • Diagrama de Ligação entre o RC522 e o Arduino sem regulador de tensão
The wiring diagram between Arduino Nano and RFID RC522

This image is created using Fritzing. Click to enlarge image

  • Diagrama de Ligação entre o RC522 e o Arduino com regulador de tensão
The wiring diagram between Arduino Nano and RFID RC522 with voltage regulated

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Nano e outros componentes.

Como indicado no diagrama de ligação acima, pares de resistores com valores de 1kOhm e 2kOhm são usados para regular 5V para 3.3V.

  • Não é preciso regular a tensão entre o pino do Arduino e o pino MISO do módulo RC522.
  • No entanto, é preciso regular a tensão entre os pinos do Arduino e os pinos SS, SCK, MOSI e RST do módulo RC522.

Tabela de ligação do Módulo RFID/NFC RC522 e do Arduino Nano

RFID/NFC RC522 Arduino Nano
SS → 10
SCK → 13
MOSI → 11
MISO → 12
IRQ não conectado
GND → GND
RST → 5
VCC → 3.3V

Código RFID/NFC para Arduino Nano

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-rfid */ #include <SPI.h> #include <MFRC522.h> #define RC522_SS_PIN 10 // The Arduino Nano pin connected to RC522's SS pin #define RC522_RST_PIN 5 // The Arduino Nano pin connected to RC522's RST pin MFRC522 rfid(RC522_SS_PIN, RC522_RST_PIN); void setup() { Serial.begin(9600); SPI.begin(); // init SPI bus rfid.PCD_Init(); // init MFRC522 Serial.println("Tap RFID/NFC Tag on reader"); } void loop() { if (rfid.PICC_IsNewCardPresent()) { // new tag is available if (rfid.PICC_ReadCardSerial()) { // NUID has been readed MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak); //Serial.print("RFID/NFC Tag Type: "); //Serial.println(rfid.PICC_GetTypeName(piccType)); // print NUID in Serial Monitor in the hex format Serial.print("UID:"); for (int i = 0; i < rfid.uid.size; i++) { Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " "); Serial.print(rfid.uid.uidByte[i], HEX); } Serial.println(); rfid.PICC_HaltA(); // halt PICC rfid.PCD_StopCrypto1(); // stop encryption on PCD } } }

Passos Rápidos

  • Clique no ícone Libraries na barra lateral esquerda da Arduino IDE.
  • Pesquise por “MFRC522” e localize a biblioteca de GithubCommunity.
  • Em seguida, pressione o botão Install para instalar a biblioteca MFRC522.
Arduino Nano MFRC522 library
  • Copie o código acima e abra-o com a Arduino IDE.
  • Clique no botão Upload da Arduino IDE para compilar e fazer o upload do código para o Arduino Nano.
  • Abra o Serial Monitor.
  • Encoste várias tags RFID/NFC no módulo RFID-RC522.
  • Confira o UID no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
Tap RFID/NFC tag on reader RFID/NFC tag Type: MIFARE 1KB UID: 3A C9 6A CB RFID/NFC tag Type: MIFARE Ultralight or Ultralight C UID: 04 64 34 5A 1E 4E 80
Ln 11, Col 1
Arduino Nano on COM15
2

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!