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á
- Módulo PN532 RFID/NFC
- Board Arduino (por exemplo, Uno, Mega, Nano)
- Pão de pão
- Fios de jumper
- Tags RFID/NFC (por exemplo, cartões Mifare)
- 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:
- I2c (Padrão para muitos módulos): usa linhas SDA e SCL.
- Spi: Usa linhas de mosi, miso e sck.
- 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:
- Biblioteca Adafruit PN532
- Biblioteca Adafruit Busio (uma dependência para a biblioteca PN532)
Etapas para instalar:
- Abra o Arduino IDE.
- Vá para Esboço > Inclua biblioteca > Gerenciar bibliotecas.
- Pesquise "Adafruit PN532" e clique Instalar.
- 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
- Conecte o Arduino ao seu computador via USB.
- Abra o Arduino IDE e selecione o correto Quadro e Porta sob o Ferramentas menu.
- Faça o upload do código para o Arduino clicando Carregar.
- Abra o monitor serial (Ferramentas > Monitor serial) e definir a taxa de transmissão como
9600
. - 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
- Sistemas de controle de acesso
- Sistemas de pagamento sem contato
- Gerenciamento de inventário inteligente
- 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!