Obtenga entrega gratuita en todas las órdenes más de £20!

Usando el PN532 con la Raspberry Pi

Using the PN532 with the Raspberry Pi

El PN532 es un módulo NFC (Near Field Communication) versátil que se puede usar para leer y escribir etiquetas NFC, así como para implementar sistemas RFID. Usar el PN532 con una Raspberry Pi te permite integrar capacidades NFC en tus proyectos para aplicaciones como control de acceso, pagos sin contacto y dispositivos IoT. Esta guía te lleva paso a paso para configurar y usar el PN532 con una Raspberry Pi.


Lo que necesitarás

  1. Raspberry Pi (cualquier modelo con soporte GPIO, p. ej., Pi 3, Pi 4)
  2. Módulo NFC PN532
  3. Protoboard y cables dupont
  4. Un ordenador con acceso SSH a la Raspberry Pi o un teclado y monitor conectados
  5. Python instalado en la Raspberry Pi

Paso 1: Cableado del PN532 a la Raspberry Pi

El módulo PN532 admite múltiples protocolos de comunicación, incluyendo I2C, SPI y UART. Esta guía usa la interfaz I2C por simplicidad.

Conexiones (modo I2C)

PN532 Pin Pin Raspberry Pi
VCC 3.3V (Pin 1)
GND Masa (Pin 6)
SDA SDA (Pin 3, GPIO2)
SCL SCL (Pin 5, GPIO3)
SEL0 GND
SEL1 VCC

Nota: Los pines SEL0 y SEL1 determinan el modo de comunicación. Conectar SEL0 a GND y SEL1 a VCC selecciona el modo I2C.


Paso 2: Habilitar la interfaz I2C en la Raspberry Pi

  1. Abre la herramienta de configuración de la Raspberry Pi:
    sudo raspi-config
    
  2. Navega a Interface Options > I2C y habilítala.
  3. Reinicia la Raspberry Pi:
    sudo reboot
    

Paso 3: Instalar herramientas y bibliotecas necesarias

  1. Actualiza tu Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Instala las herramientas I2C:
    sudo apt install -y i2c-tools
    
  3. Instala las bibliotecas de Python para comunicación I2C y la funcionalidad del PN532:
    pip install adafruit-circuitpython-pn532
    

Paso 4: Verificar la conexión

  1. Usa i2cdetect para verificar que el PN532 se detecta en el bus I2C:
    sudo i2cdetect -y 1
    
  2. Deberías ver el PN532 en la dirección 0x24 o 0x48. Si no:
    • Revisa tu cableado.
    • Asegúrate de que el PN532 esté alimentado.

Paso 5: Lectura de etiquetas NFC con Python

El siguiente script de Python demuestra cómo leer etiquetas NFC usando el PN532.

Ejemplo de código Python

import board
import busio
from adafruit_pn532.i2c import PN532_I2C

# Configuración de la conexión I2C
i2c = busio.I2C(board.SCL, board.SDA)
pn532 = PN532_I2C(i2c, debug=False)

# Configurar el PN532 para leer etiquetas NFC
pn532.SAM_configuration()

print("Esperando una etiqueta NFC...")

while True:
    uid = pn532.read_passive_target(timeout=0.5)
    if uid is not None:
        print(f"Etiqueta NFC encontrada con UID: {uid.hex()}")

Paso 6: Aplicaciones del PN532

  1. Control de acceso: Crea un sistema de bloqueo de puertas basado en NFC.
  2. Pagos sin contacto: Simula sistemas de pago con tarjetas NFC.
  3. Proyectos IoT: Usa etiquetas NFC para activar eventos de automatización.
  4. Registro de datos: Escribe datos en etiquetas NFC para inventario o seguimiento.

Solución de problemas

  1. Dispositivo no detectado:

    • Verifica las conexiones SDA y SCL.
    • Asegúrate de que la interfaz I2C esté habilitada en la Raspberry Pi.
    • Revisa la configuración de los pines SEL0 y SEL1 para el modo I2C.
  2. Errores de lectura:

    • Asegúrate de que la etiqueta NFC esté dentro del alcance del PN532.
    • Revisa si hay interferencias de objetos metálicos u otros dispositivos electrónicos.
  3. Errores I2C:

    • Asegúrate de que no haya dispositivos conflictivos en el bus I2C.

Conclusión

El módulo NFC PN532 es una herramienta versátil para añadir capacidades NFC y RFID a tus proyectos con Raspberry Pi. Siguiendo esta guía, puedes configurar y usar el PN532 para aplicaciones como control de acceso, automatización IoT e intercambio de datos sin contacto. ¡Experimenta con la lectura y escritura de etiquetas NFC para explorar todo el potencial de este potente módulo!

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.

Escribir un comentario