ESP32 - RFID/NFC
Ce tutoriel vous explique comment utiliser l'ESP32 avec un lecteur RFID/NFC RC522 pour lire les informations d'une étiquette RFID/NFC.
Préparation du matériel
1 | × | ESP-WROOM-32 Dev Module | |
1 | × | USB Cable Type-C | |
1 | × | RFID/NFC RC522 Kit (reader + tags) | |
1 | × | RFID Key Fob | |
1 | × | Breadboard | |
1 | × | Jumper Wires | |
1 | × | (Optional) DC Power Jack | |
1 | × | (Recommended) ESP32 Screw Terminal Adapter |
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.
À propos du module RFID-RC522
Brochage
Le module RFID-RC522 possède 8 broches, certaines broches sont partagées entre trois interfaces de communication : SPI, I2C, UART. À la fois, un seul mode de communication peut être utilisé. Les broches sont :
- Broche GND : connectez cette broche à GND (0V)
- Broche VCC : connectez cette broche à VCC (3.3)
- Broche RST : broche pour réinitialisation et extinction. Lorsque cette broche est basse, l'extinction complète est activée. Sur le front montant, le module est réinitialisé.
- Broche IRQ : broche d'interruption qui peut alerter l'ESP32 lorsqu'une étiquette RFID entre dans sa portée de détection.
- Broche MISO/SCL/TX : fonctionne comme :
- Broche MISO si l'interface SPI est activée
- Broche SCL si l'interface I2C est activée
- Broche TX si l'interface UART est activée.
- Broche MOSI : fonctionne comme MOSI si l'interface SPI est activée.
- Broche SCK : fonctionne comme SCK si l'interface SPI est activée
- Broche SS/SDA/RX : fonctionne comme :
- Broche SS si l'interface SPI est activée
- Broche SDA lorsque l'interface I2C est activée
- Broche RX lorsque l'interface UART est activée.
- L'ordre des broches peut varier selon les fabricants. Utilisez TOUJOURS les étiquettes imprimées sur le module. L'image ci-dessus montre le brochage des modules du fabricant DIYables.
- Le module RFID-RC522 fonctionne avec 3,3V. Ne connectez pas la broche VCC du module RFID-RC522 à 5V. 5V peut endommager le module RFID-RC522.
- Ce tutoriel utilise l'interface SPI pour la communication entre l'ESP32 et le module RFID-RC522.
※ NOTE THAT:
Diagramme de câblage
This image is created using Fritzing. Click to enlarge image
Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, vous pouvez trouver des conseils dans le tutoriel suivant : Comment alimenter l'ESP32.
Tableau de câblage entre le module RFID/NFC RC522 et l'ESP32
RFID/NFC RC522 Module | ESP32 |
---|---|
SS pin | → (29) GPIO5 |
SCK pin | → (30) GPIO18 |
MOSI pin | → (37) GPIO23 |
MISO pin | → (31) GPIO19 |
IRQ pin(not connected) | |
GND pin | → GND |
RST pin | → (11) GPIO27 |
VCC pin | → 3.3V |
Code RFID/NFC ESP32
/*
* Ce code ESP32 a été développé par newbiely.fr
* Ce code ESP32 est mis à disposition du public sans aucune restriction.
* Pour des instructions complètes et des schémas de câblage, veuillez visiter:
* https://newbiely.fr/tutorials/esp32/esp32-rfid-nfc
*/
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 5 // ESP32 pin GPIO5
#define RST_PIN 27 // ESP32 pin GPIO27
MFRC522 rfid(SS_PIN, RST_PIN);
void setup() {
Serial.begin(9600);
SPI.begin(); // init SPI bus
rfid.PCD_Init(); // init MFRC522
Serial.println("Tap an RFID/NFC tag on the RFID-RC522 reader");
}
void loop() {
if (rfid.PICC_IsNewCardPresent()) { // new tag is available
if (rfid.PICC_ReadCardSerial()) { // NUID has been readed
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
Serial.print("RFID/NFC Tag Type: ");
Serial.println(rfid.PICC_GetTypeName(piccType));
// print UID in Serial Monitor in the hex format
Serial.print("UID:");
for (int i = 0; i < rfid.uid.size; i++) {
Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(rfid.uid.uidByte[i], HEX);
}
Serial.println();
rfid.PICC_HaltA(); // halt PICC
rfid.PCD_StopCrypto1(); // stop encryption on PCD
}
}
}
Étapes rapides
- Si c'est la première fois que vous utilisez l'ESP32, consultez comment configurer l'environnement pour l'ESP32 sur Arduino IDE.
- Cliquez sur l'icône Libraries dans la barre gauche de l'Arduino IDE.
- Tapez "MFRC522" dans la boîte de recherche, puis recherchez la bibliothèque par GithubCommunity
- Installez la bibliothèque en cliquant sur le bouton Install.
- Copiez le code ci-dessus et collez-le dans l'IDE Arduino.
- Compilez et téléchargez le code sur la carte ESP32 en cliquant sur le bouton Upload de l'IDE Arduino.
- Ouvrez le moniteur série sur l'IDE Arduino.
- Appuyez sur plusieurs étiquettes RFID/NFC sur le module RFID-RC522
- Voyez l'UID affiché sur le moniteur série
COM6
Tap an RFID/NFC tag on the RFID-RC522 reader
RFID/NFC tag Type: MIFARE 1KB
UID: 2B B8 59 B1
RFID/NFC tag Type: MIFARE Ultralight or Ultralight C
UID: 15 75 46 7A 2C 5B 7E
Autoscroll
Clear output
9600 baud
Newline