El PN532 es un módulo de lector RFID/NFC versátil que admite múltiples modos y estándares de comunicación, lo que lo hace ideal para autenticación, pago sin contacto y proyectos IoT. Este tutorial lo guiará a través de la interfaz del módulo PN532 con un Arduino para leer etiquetas RFID/NFC.
Lo que necesitarás
- Módulo PN532 RFID/NFC
- Arduino Board (por ejemplo, Uno, Mega, Nano)
- Tablero de circuitos
- Cables de jersey
- Etiquetas RFID/NFC (por ejemplo, tarjetas MiFare)
- Una computadora con el Arduino IDE instalado
Paso 1: Comprender el módulo PN532
El módulo PN532 admite tres modos de comunicación:
- I2C (predeterminado para muchos módulos): usa líneas SDA y SCL.
- SPI: Utiliza líneas MOSI, MISO y SCK.
- Uart (serie): Usa pines TX y RX.
En este tutorial, usaremos el Modo I2C, como es más simple configurar y ampliamente compatible.
PN532 Pinout en modo I2C
Alfiler | Función |
---|---|
VCC | Fuente de alimentación (3.3V/5V) |
Gnd | Suelo |
SDA | Línea de datos I2C |
SCL | Línea de reloj I2C |
Paso 2: Cableado el PN532 a Arduino
Aquí le mostramos cómo conectar el módulo PN532 a un Arduino UNO en modo I2C:
PIN PN532 | Alfiler de arduino |
---|---|
VCC | 5V |
Gnd | Gnd |
SDA | A4 |
SCL | A5 |
Nota: Si su módulo tiene un puente de selección de modo, configúrelo en modo I2C.
Paso 3: Instale las bibliotecas requeridas
Para simplificar la interacción con el módulo PN532, instale las siguientes bibliotecas:
- Biblioteca Adafruit PN532
- Biblioteca Adafruit Busio (una dependencia para la biblioteca PN532)
Pasos para instalar:
- Abra el IDE Arduino.
- Ir a Bosquejo > Incluir biblioteca > Administrar bibliotecas.
- Busque "AdaFruit PN532" y haga clic Instalar.
- Busque "Adafruit Busio" y haga clic en Instalar.
Paso 4: cargar el código
Aquí hay un boceto de ejemplo para leer datos de una etiqueta 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
}
}
Paso 5: prueba la configuración
- Conecte el Arduino a su computadora a través de USB.
- Abra el IDE Arduino y seleccione el correcto Junta y Puerto bajo el Herramientas menú.
- Sube el código al Arduino haciendo clic en Subir.
- Abra el monitor en serie (Herramientas > Monitor en serie) y establecer la tasa de baudios en
9600
. - Coloque una etiqueta RFID/NFC cerca del módulo PN532. El monitor en serie debe mostrar el UID (identificador único) de la etiqueta.
Solución de problemas
- Módulo no detectado: Compruebe dos veces el cableado y asegúrese de que el puente de modo esté configurado en I2C.
- Sin etiqueta detectada: Asegúrese de que la etiqueta sea compatible (por ejemplo, tarjetas MiFare para este ejemplo).
- Lecturas erráticas: Use cables de puente más cortos y garantice una potencia estable para el módulo.
Aplicaciones del módulo PN532
- Sistemas de control de acceso
- Sistemas de pago sin contacto
- Gestión de inventario inteligente
- Dispositivos IoT que requieren autenticación segura
Conclusión
Has interactuado con éxito el módulo PN532 RFID/NFC con un Arduino y lee etiquetas RFID/NFC. Este módulo versátil abre infinitos posibilidades para la autenticación segura y el intercambio de datos en sus proyectos. ¡Experimente con características adicionales como escribir en etiquetas o comunicación entre pares para construir aplicaciones más avanzadas!