MicroPython SPI driver for the PN532 NFC/RFID Breakout and PN532 NFC/RFID Shield (port from CircuitPython driver )
import NFC_PN532 as nfc
from machine import Pin, SPI
# SPI
spi_dev = SPI(1, baudrate=1000000)
cs = Pin(5, Pin.OUT)
cs.on()
# SENSOR INIT
pn532 = nfc.PN532(spi_dev,cs)
ic, ver, rev, support = pn532.get_firmware_version()
print('Found PN532 with firmware version: {0}.{1}'.format(ver, rev))
# Configure PN532 to communicate with MiFare cards
pn532.SAM_configuration()
# FUNCTION TO READ
def read_nfc(dev, tmot):
"""Accepts a device and a timeout in millisecs """
print('Reading...')
uid = dev.read_passive_target(timeout=tmot)
if uid is None:
print('CARD NOT FOUND')
else:
numbers = [i for i in uid]
string_ID = '{}-{}-{}-{}'.format(*numbers)
print('Found card with UID:', [hex(i) for i in uid])
print('Number_id: {}'.format(string_ID))
read_nfc(pn532, 500)
Reading...
Found card with UID: ['0x0', '0xa', '0x33', '0xc0']
Number_id: 0-10-51-192