Mention légal| Contact

RFID avec Arduino

Le module RFID RC522

Photo module RFID

Principe de fonctionnement

Ce cours a pour objectif d'appréhender le module RFID. Le téléchargement du code source vous permettra de mettre en application la modification de chaque block.

Le module RFID détecte des badges ou des cartes magnétiques à moins de 10 cm. Le passage d’un composant magnétique permet de lire l’identifiant de l'UID de la carte, ainsi que les données enregistrées.

Par principe, chaque carte RFID dispose de son propre UID.

De plus, les cartes ou tags répondent à une fréquence. Les tags, les plus répandus, sont à une fréquence de 13,56Mhz.

Le contenu est divisé en plusieurs secteurs, subdivisé en block et encore en données.

Certaines cartes disposent du block 0 verrouillé, c’est-à-dire non modifiable. Celui-ci contient essentiellement l’identifiant unique "UID". 

Sur le marché, vous pouvez avoir des cartes dont le cluster UID est modifiable. Dans le cadre de ce tutoriel, j’utilise des cartes dont l’UID est modifiable à 13,56Mhz et d’une capacité mémoire de 1 Ko.

Schéma du module RFID RC522

Schéma RFID

Le montage du module RFID se compose de 7 fils :

  • RST/Reset   RST       —>   Pin 9 Arduino
  • SPI SS      SDA(SS)  —>    Pin 10 Arduino
  • SPI MOSI    MOSI      —>  Pin 11 Arduino
  • SPI MISO    MISO     —>    Pin 12 Arduino
  • SPI SCK     SCK      —>    Pin 13 Arduino
  • GND 
  • VCC 3,3V !Attention pas 5V

Lire le contenu d’un module RFID

Maintenant que nous avons vu à quoi ressemble le contenu d’un tag RFID,  passons à la pratique.

Premièrement, ajoutons la librairie MFRC522 

A ce stade, les exemples de la librairie MFRC52  permettent de lire et d’écrire (attention !!! le fait d’approcher votre carte du module en écriture modifie les informations contenues dans le tag et la rend inutilisable) . 

Voyons le résultat de l’exemple « dump info » qui est sans danger.

Exemple dump info:

Dump RFID

    

Cet exemple nous donne toutes les informations de notre carte RFID . On y trouve la capacité mémoire, l’UID, les secteurs, les adresses et les données.

Vous constaterez que les données sont sous formes hexadécimales, c’est un langage  machine qui nous est incompréhensible au premier abord.

Ecrire du contenu dans le module RFID

Pour écrire une information dans le tag, il est nécessaire de définir trois choses : le secteur , l’adresse , et les données.  La modification des données se font par ligne de 16 octets.  

 

Exemple de secteur RFID


Nous pourrions mettre n’importe quelles données hexadécimales. En ce qui me concerne, j’ai fait le choix de faire correspondre les données, au traditionnel tableau ascii. En effet , ce langage se montre  particulièrement utile pour l’exploitation des informations par la suite.

Lançons l’exemple ReadAndWrite (Attention!! Modification du tag).

L’exécution de ce sketch a pour effet de modifier le secteur 1, le block 4 et les 16 octets hexadécimales. 

En relisant le contenu, les données à cet emplacement, vous avez 0x01, 0x02, 0x03, 0x04,0x05, 0x06, 0x07, 0x08, 0x08, 0x09, 0xff, 0x0b,0x0c, 0x0d, 0x0e, 0x0f

Retour d'expérience

Suite aux deux "programmes exemples" que je vous ai présenté, vous êtes capable de lire et d'écrire sur une carte RFID.

Dans mon expérience de l'utilisation de la carte RFID, j'ai rendu inutilisable une paire de cartes en voulant tester les différents exemples de la librairie.

Ce que j'ai constaté:

  • Ne pas modifier le dernier block d'un secteur. Exemple: secteur 1 block 7, secteur 2 block 11 etc...
  • Ne pas tester n'importe quel code sans le comprendre .

 

 


Recevez gratuitement les codes sources de PlaisirArduino

Amusez-vous tout de suite avec les entrées/sorties de votre carte Arduino Uno

Vous y retrouverez : des scketchs, des schémas et des PDF