Como usar o leitor PN532 RFID/NFC com Arduino

How to Use the PN532 RFID/NFC Reader with Arduino

O PN532 é um módulo de leitor RFID/NFC versátil que suporta vários modos e padrões de comunicação, tornando -o ideal para autenticação, pagamento sem contato e projetos de IoT. Este tutorial o guiará através da interface do módulo PN532 com um Arduino para ler tags RFID/NFC.

O que você precisará

  1. Módulo PN532 RFID/NFC
  2. Board Arduino (por exemplo, Uno, Mega, Nano)
  3. Pão de pão
  4. Fios de jumper
  5. Tags RFID/NFC (por exemplo, cartões Mifare)
  6. Um computador com o Arduino IDE instalado

Etapa 1: Compreendendo o módulo PN532

O módulo PN532 suporta três modos de comunicação:

  1. I2c (Padrão para muitos módulos): usa linhas SDA e SCL.
  2. Spi: Usa linhas de mosi, miso e sck.
  3. UART (serial): Usa pinos TX e RX.

Neste tutorial, usaremos o Modo I2C, pois é mais simples de configurar e amplamente suportado.

Pinout pn532 no modo i2c

Alfinete Função
VCC Fonte de alimentação (3,3V/5V)
Gnd Chão
SDA I2C Linha de dados
SCL I2C Linha do relógio

Etapa 2: Fiação do PN532 para Arduino

Veja como conectar o módulo PN532 a um Arduino UNO no modo I2C:

Pin pn532 Pino Arduino
VCC 5V
Gnd Gnd
SDA A4
SCL A5

Observação: Se o seu módulo tiver um jumper de seleção de modo, defina -o no modo I2C.

Etapa 3: Instale as bibliotecas necessárias

Para simplificar a interação com o módulo PN532, instale as seguintes bibliotecas:

  1. Biblioteca Adafruit PN532
  2. Biblioteca Adafruit Busio (uma dependência para a biblioteca PN532)

Etapas para instalar:

  1. Abra o Arduino IDE.
  2. Vá para Esboço > Inclua biblioteca > Gerenciar bibliotecas.
  3. Pesquise "Adafruit PN532" e clique Instalar.
  4. Pesquise por "Adafruit Busio" e clique Instalar.

Etapa 4: Faça o upload do código

Aqui está um exemplo de esboço para ler dados de uma tag RFID/NFC:

#include <Wire.h>
#include <Adafruit_PN532.h>

#define SDA_PIN A4
#define SCL_PIN A5

Adafruit_PN532 nfc(SDA_PIN, SCL_PIN);

void setup() {
  Serial.begin(9600);
  Serial.println("PN532 RFID/NFC Reader Test");

  nfc.begin();

  uint32_t versiondata = nfc.getFirmwareVersion();
  if (!versiondata) {
    Serial.println("Didn't find PN532 module. Check connections.");
    while (1);
  }

  Serial.println("Found PN532 module.");
  nfc.SAMConfig(); // Configure the module in normal mode
  Serial.println("Waiting for an NFC card...");
}

void loop() {
  uint8_t success;
  uint8_t uid[] = { 0 }; // Buffer to store UID
  uint8_t uidLength;     // Length of the UID

  // Check if an NFC card is present
  success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength);

  if (success) {
    Serial.println("Found an NFC card!");
    Serial.print("UID Length: ");
    Serial.print(uidLength, DEC);
    Serial.println(" bytes");
    Serial.print("UID Value: ");
    for (uint8_t i = 0; i < uidLength; i++) {
      Serial.print(" 0x");
      Serial.print(uid[i], HEX);
    }
    Serial.println("");
    delay(1000); // Wait 1 second
  }
}

Etapa 5: teste a configuração

  1. Conecte o Arduino ao seu computador via USB.
  2. Abra o Arduino IDE e selecione o correto Quadro e Porta sob o Ferramentas menu.
  3. Faça o upload do código para o Arduino clicando Carregar.
  4. Abra o monitor serial (Ferramentas > Monitor serial) e definir a taxa de transmissão como 9600.
  5. Coloque uma etiqueta RFID/NFC próxima ao módulo PN532. O monitor serial deve exibir o UID (identificador exclusivo) da tag.

Solução de problemas

  • Módulo não detectado: Verifique duas vezes a fiação e verifique se o jumper do modo está definido como I2C.
  • Nenhuma etiqueta detectada: Verifique se a tag é compatível (por exemplo, cartões Mifare para este exemplo).
  • Leituras erráticas: Use fios de jumper mais curtos e garanta energia estável no módulo.

Aplicações do módulo PN532

  1. Sistemas de controle de acesso
  2. Sistemas de pagamento sem contato
  3. Gerenciamento de inventário inteligente
  4. Dispositivos de IoT que requerem autenticação segura

Conclusão

Você interfigurou com sucesso o módulo PN532 RFID/NFC com um Arduino e leu as tags RFID/NFC. Este módulo versátil abre inúmeras possibilidades de autenticação segura e troca de dados em seus projetos. Experimente recursos adicionais, como escrever para tags ou comunicação ponto a ponto para criar aplicativos mais avançados!

Deixe um comentário

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.