Support de cours Arduino RFID RC522
![Support de cours Arduino RFID RC522](/images/remos_downloads/id-10717.10717.pdf_thumb_prev.jpg)
Support de cours Arduino RFID RC522
...
Utilisation avec un Arduino (ou compatible)
Connecter le module
Branchez le module LCD aux broches de l’Arduino comme représenté ci-dessous :
Table de correspondance :
RFID RC522 Arduino
VCC +5V
RST 9
GND GND
MISO 12
MOSI 11
SCK 13
NSS 10
IRC /
Installation de la bibliothèque
Pour pouvoir utiliser ce module, la bibliothèque MFRC522 doit être installée :
Ouvrez l’IDE Arduino et aller dans Croquis à Inclure une bibliothèque à Gérer les bibliothèques
Dans le gestionnaire de bibliothèques, recherchez « MFRC522 » et installez MFRC522 :
![](/images/remos_downloads/detail/107/id-10717.10717.pdf-001.jpg)
Fermez la fenêtre une fois l’installation terminée.
Exemple de programme
L’exemple de code suivant (à copier dans l’IDE Arduino) initialise le module RFID et affiche les données de la carte ou du badge présenté sur le moniteur série (CTRL+MAJ+M pour ouvrir le moniteur série) :
Utilisation avec un Raspberry Pi
Connecter le module
Branchez le module LCD aux broches du Raspberry Pi comme représenté ci-dessous :
RFID RC522 Raspberry Pi
VCC PIN 1 (3V)
RST PIN 22 (GPIO 18)
GND PIN 6 (GND)
MISO PIN 21 (SPI_MISO)
MOSI PIN 19 (SPI_MOSI)
SCK PIN 23 (SPI_CLK)
NSS PIN 24 (SPI_CE0_N)
IRC /
Prérequis
Les explications et programmes qui suivent ont été créés et testés pour un Raspberry utilisant le système d’exploitation Raspbian.
Un guide d’installation est disponible ici :
Un guide de démarrage est disponible ici :
![](/images/remos_downloads/detail/107/id-10717.10717.pdf-002.jpg)
Installation des bibliothèques
Pour installer les bibliothèques nécessaires, entrez les commandes ci-dessous dans LXTerminal :
Bibliothèque GPIO et Python :
sudo apt-get install python-pip python-dev build-essential sudo pip install sudo apt-get install python-imaging
Si ce n’est pas encore fait, il faut activer le bus SPI. Ouvrez les paramètres :
sudo raspi-config
Sélectionnez le menu des optons avancées « Advenced Option »
Et activez l’option SPI : « Enable/Disable automatic loading of SPI kernel module »
Redémarrez le Raspberry :
sudo reboot
Installation de l’extension
Pour nous pouvoir utiliser le module RFID facilement, nous utilisons une extension de Louis Thiery et Connor Wolf.
Vous pouvez la télécharger et l’installer en exécutant les commandes suivantes dans LXTerminal :
sudo apt-get install git python-def --yes git clone cd SPI-Py sudo python install cd .. git clone && cd MFRC522-python |
Exemples de programmes
Des exemples de programmes en python sont disponibles dans le dossier de l’extension téléchargée (/home/pi/MFRC522-python).
Lecture
Pour exécuter le programme d’exemple de lecture de carte RFID, entrez la commande suivante dans LXTerminal :
![](/images/remos_downloads/detail/107/id-10717.10717.pdf-003.jpg)
sudo python
Vous devriez obtenir un message du type :
Card detected
Card read UID: 187,213,135,171
Size: 8
Sector 8 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
La ligne « Sector 8 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] » reprend les 16 données présentes sur la carte RFID (ici, les données sont toutes 0). Allez à la section suivante pour modifier les données d’une carte.
Ecriture
Pour exécuter le programme d’exemple d’écriture de carte RFID, entrez la commande suivante dans LXTerminal :
sudo python
Les données modifiables sur les cartes sont une série de 16 nombres que l’on peut entrer à la ligne 56 du programme :
# Variable for the data to write
data = [114, 97, 115, 112, 98, 101, 114, 114, 121, 45, 116, 117, 116, 111, 114, 0]
Appuyez sur CTRL+C à tout moment pour arrêter le programme en cours.
Si vous rencontrez des problèmes, merci de nous contacter par courriel à :
… … …
Ce sont les informations que vous pouvez lire sur la carte, y compris l'UID de la carte qui est surligné en rouge. Les informations sont stockées dans une mémoire divisée en segments et en blocs, comme vous pouvez le voir sur l'image précédente.
Vous disposez de 1024 octets de stockage de données répartis en 16 secteurs et chaque secteur est protégé par deux clés différentes, A et B.
Ecrivez votre carte UID car vous en aurez besoin plus tard. Dans ce cas, ID carte: B0 AC 7E 7A.
![](/images/remos_downloads/detail/107/id-10717.10717.pdf-004.jpg)
Téléchargez le code suivant sur le tableau Arduino:
/ *
*
* Toutes les ressources pour ce projet:
* Modifié par Handson Technology
* www.handsontec.com
* Créé par l'équipe technique de Handsontec
*
* /
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522, mfrc522 (SS_PIN, RST_PIN); // Créer une instance MFRC522.
void setup()
{
Serial.begin (9600); // Initier une communication série
SPI.begin (); // Initie le bus SPI
mfrc522.PCD_Init (); // Initier le CRFM522
![](/images/remos_downloads/detail/107/id-10717.10717.pdf-014.jpg)
Serial.println ("Mettez votre carte au lecteur ...");
Serial.println ();
}
boucle vide ()
{
// Rechercher de nouvelles cartes
if (! mfrc522.PICC_IsNewCardPresent ())
{
revenir;
}
// Sélectionnez l'une des cartes
if (! mfrc522.PICC_ReadCardSerial ())
{
revenir;
}
// Afficher l'UID sur le moniteur série
Serial.print ("balise UID:");
String content = "";
lettre d'octet;
![](/images/remos_downloads/detail/107/id-10717.10717.pdf-024.jpg)
pour (octet i = 0; i <mfrc522.uid.size; i ++)
{
Serial.print (mfrc522.uid.uidByte [i] <0x10? "0": "");
Serial.print (mfrc522.uid.uidByte [i], HEX);
content.concat (String (mfrc522.uid.uidByte [i] <0x10? "0": ""));
content.concat (String (mfrc522.uid.uidByte [i], HEX));
}
Serial.println ();
Serial.print ("Message:");
content.toUpperCase ();
if (content.substring (1) == "B0 AC 7E 7A") // change ici l'UID de la / des carte (s) que vous voulez donner accès
{
Serial.println ("Accès autorisé");
Serial.println ();
retarder (3000);
}
autre {
Serial.println ("Accès refusé");
retarder (3000);
![](/images/remos_downloads/detail/107/id-10717.10717.pdf-025.jpg)
}
}
Dans la partie de code ci-dessus, vous devez changer le if (content.substring (1) == «REMPLACER AVEC VOTRE UID») et taper la carte d’ID utilisateur que vous avez écrite précédemment.
Manifestation:
Maintenant, téléchargez le code sur votre Arduino et ouvrez le moniteur série. Vous verrez l'écran comme ci-dessous:
Placez la carte que vous avez choisie pour l’accès (dans ce cas avec UID: B0 AC 7E 7A) à proximité du module de lecture et vous verrez:
…
Ce package de développement RFID comprend:
- 1x Lecteur RFID RC522
- 1 carte RFID au format carte de crédit (carte IC M1 S50)
- 1x porte-clés RFID (badge M1 S50)
- 1x connecteur de tête de détroit à 8 broches
- 1x connecteur de tête à angle droit à 8 broches
… … …
Après avoir installé la bibliothèque AddicoreRFID dans les étapes ci-dessus, elle sera disponible pour les esquisses, mais les exemples d’esquisses inclus dans la bibliothèque risquent de ne pas être affichés dans Fichier> Exemples avant le redémarrage de l’EDI Arduino.
- Redémarrez l'IDE Arduino en fermant toutes les fenêtres IDE Arduino actuellement ouvertes, puis en ouvrant l'IDE Arduino.
- Lorsque l'EDI Arduino s'ouvre, accédez à Fichier> Exemples> AddicoreRFID. Sélectionnez l'esquisse “Addicore_RFID_Example”. Cela ouvrira une esquisse que nous utiliserons avec le module RFID que nous avons déjà câblé à notre Arduino.
- Maintenant, connectez votre Arduino à votre ordinateur et téléchargez le code.
Lecture des étiquettes RFID
Avec votre Arduino programmé avec l’esquisse «Addicore_RFID_Example» et toujours connecté à votre ordinateur, ouvrez le moniteur série en cliquant sur l’icône Moniteur en série ou en appuyant sur CTRL + MAJ + M. Si ce n’est pas déjà fait, définissez le débit en bauds série sur 9600 bauds en cliquant sur la liste déroulante située dans le coin inférieur droit de la fenêtre Serial Monitor (voir ci-dessous) et en sélectionnant 9 600 bauds.