Lecteur NFC 13.56 Mhz

Badge ou carte RFID de type Mifare 

Le module NFC Grove, basé sur le circuit PN532, permet de lire et écrire des cartes ou badges RFID de type Mifare.

Le NFC (Near Field Communication) est une technologie permettant d'établir une liaison sans contact à courte distance et est issue de la technologie RFID

Alimentation: 3,3 Vcc
Fréquence: 13,56 MHz
Antenne déportée
Portée de communication: 28 mm maxi
Interface Uart par défaut


Exemple, structure mémoire de badge Mifare classic 1k



Télécharger la bibliothèque  : pi_pico_nfc_grove.zip 


Installer la bibliothèque sur la Raspberry Pi Pico  (voir le tutoriel)


Raspberry Pi Pico MicroPython NFC RFID 13.56 Mhz Grove

Programme qui permet de lire et écrire sur un badge RFID 13.56 MHz 


from pi_pico_nfc_grove import *
from machine import Pin, UART

# Création d'un objet uart0   
uart0 = UART(0, baudrate=115200)
uart0.init(115200, bits=8, parity=None, stop=1, tx=Pin(0), rx=Pin(1) )  # paramètres de la liaison série

# création d'un objet Pn532_uart
nfc = Pn532_uart(uart0)

# Configuration du PN532 pour communiquer avec les cartes MiFare
# Carte de 16 secteurs (0 à 15) de 4 blocs (de 0 à 63)
nfc.SAM_configuration()

# Attente carte valable présente
print("Attente carte NFC", end="")
uid = None
while uid is None:   
    uid = nfc.read_passive_target(timeout=500)
    print(".", end="")
print("")
print("Trouvé carte UID = ", [(hex(i)) for i in uid])

# Lecture du 1er bloc du secteur 2 (bloc 8)
# Il faut s'authentifier sur un secteur pour y accéder avec la clé par défaut 0xFFFFFFFFFFFF
cle = b"\xFF\xFF\xFF\xFF\xFF\xFF"
authentification = nfc.mifare_classic_authenticate_block(uid, 8, MIFARE_CMD_AUTH_B, cle)
print([hex(x) for x in nfc.mifare_classic_read_block(8)])

# Ecritue du 1er bloc du secteur 2 (bloc 8)
# Il faut s'authentifier sur un secteur pour y accéder avec la clé par défaut 0xFFFFFFFFFFFF
# Attention, destruction du secteur si écriture sur le 4ème bloc (blocs 3, 7, 11, 15...)
data = bytearray(16)
data[0:16] = b"\x08\xFF\x00\xFF\xFF\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
nfc.mifare_classic_write_block(8, data)
print(nfc.mifare_classic_read_block(8))
print([hex(x) for x in nfc.mifare_classic_read_block(8)])








































Créé avec HelpNDoc Personal Edition: Créer des livres électroniques EPub facilement