.. note::
Bonjour et bienvenue dans la communauté des passionnés de Raspberry Pi, Arduino et ESP32 sur Facebook, animée par SunFounder ! Explorez plus en profondeur l'univers de Raspberry Pi, Arduino et ESP32 avec d'autres passionnés.
**Pourquoi nous rejoindre ?**
- **Support d'experts** : Résolvez vos problèmes après-vente et vos défis techniques avec l'aide de notre communauté et de notre équipe.
- **Apprendre et partager** : Échangez des conseils et des tutoriels pour améliorer vos compétences.
- **Aperçus exclusifs** : Bénéficiez d'un accès anticipé aux annonces de nouveaux produits et d'aperçus exclusifs.
- **Réductions spéciales** : Profitez de réductions exclusives sur nos derniers produits.
- **Promotions festives et concours** : Participez à des concours et des promotions pendant les fêtes.
👉 Prêt à explorer et créer avec nous ? Cliquez sur [|link_sf_facebook|] et rejoignez-nous dès aujourd'hui !
.. _ar_rfid:
2.35 Module RFID-RC522
=========================
Aperçu
---------
Dans cette leçon, vous apprendrez à utiliser le module RFID. RFID est
l'abréviation de **Radio Frequency Identification** (Identification par
Radiofréquence). Son principe de fonctionnement repose sur une communication
sans contact entre le lecteur et l'étiquette afin de permettre l'identification
de la cible. L'application de la technologie RFID est très vaste, et ses
applications typiques incluent les puces animales, l'antidémarrage, le contrôle
d'accès, le contrôle de stationnement, l'automatisation des chaînes de production,
la gestion des matériaux, etc.
Composants requis
--------------------
.. image:: img/Part_two_35.png
* :ref:`cpn_mega2560`
* :ref:`cpn_wires`
* :ref:`cpn_rfid`
Circuit Fritzing
--------------------
Dans cet exemple, nous insérons le module RFID dans la breadboard.
Nous connectons le 3.3V du module RFID à 3.3V, GND à GND, RST à la
broche 2, SDA à la broche 6, SCK à la broche 5, MOSI à la broche 4,
MISO à la broche 3 et IRQ à la broche 7.
.. image:: img/image259.png
:align: center
**Schéma de câblage**
------------------------
.. image:: img/image260.png
:align: center
Code
-----
.. note::
* Vous pouvez ouvrir directement le fichier ``2.35_RFID.ino`` situé dans le dossier ``sunfounder_vincent_kit_for_arduino\code\2.35_RFID``.
* La bibliothèque ``RFID1`` est utilisée ici, consultez :ref:`install_lib_man` pour un tutoriel d'installation.
.. raw:: html
Après avoir téléchargé le code sur la carte Mega2560, vous pouvez approcher
votre carte RFID (clé secrète) près du lecteur RFID. Le module lira les
informations de la carte et les affichera sur le moniteur série.
Analyse du code
------------------
Les fonctions du module sont incluses dans la bibliothèque **rfid1.h**.
.. code-block:: arduino
#include
**Fonctions de la bibliothèque :**
.. code-block:: arduino
RFID1
Crée une nouvelle instance de la classe **rfid1** qui représente un module
RFID spécifique connecté à votre Arduino.
.. code-block:: arduino
void begin(IRQ_PIN,SCK_PIN,MOSI_PIN,MISO_PIN,SDA_PIN,RST_PIN)
Configuration des broches.
* ``IRQ_PIN, SCK_PIN, MOSI_PIN, MISO_PIN`` : les broches utilisées pour la communication SPI.
* ``SDA_PIN`` : Adaptateur de données synchrones.
* ``RST_PIN`` : Broches utilisées pour la réinitialisation.
.. code-block:: arduino
void init()
Initialise le module RFID.
.. code-block:: arduino
uchar request(uchar reqMode, uchar *TagType);
Recherche de la carte et lecture de son type. La fonction retournera l'état actuel de la lecture RFID et renverra **MI_OK** en cas de succès.
* ``reqMode`` : Mode de recherche. **PICC_REQIDL** est défini comme les bits de commande 0x26 (recherche des cartes qui ne sont pas en mode veille dans la zone d'antenne).
* ``*TagType`` : Il est utilisé pour stocker le type de carte, et sa valeur peut être de 4 octets (par exemple, 0x0400).
.. code-block:: arduino
char * readCardType(uchar *TagType)
Cette fonction décode le nombre hexadécimal à quatre chiffres de ``*TagType``
en un type de carte spécifique et renvoie une chaîne de caractères. Si 0x0400
est passé, "MFOne-S50" sera retourné.
.. code-block:: arduino
uchar anticoll(uchar *serNum);
Prévention des conflits et lecture du numéro de série de la carte.
La fonction retournera l'état actuel de la lecture RFID. Elle renverra
**MI_OK** en cas de succès.
* ``*serNum`` : Il est utilisé pour stocker le numéro de série de la carte, et renverra les 4 octets du numéro de série. Le 5ème octet est un octet de vérification (par exemple, mon ID de carte magnétique est 5AE4C955).
Illustration du phénomène
-----------------------------
.. image:: img/Part_two_35_Code_Analysis.png
:alt: 2.35
:align: center