ESP8266-Arduino编程实例-RFID-RC522模块驱动

RFID-RC522模块驱动

1、RFID-RC522介绍

基于 NXP 的 MFRC522 IC 的 RC522 RFID 模块通常带有一个 RFID 卡标签和具有 1KB 内存的密钥卡标签。 最重要的是,它可以写一个标签,这样你就可以在里面存储你的某种秘密信息。

RC522 RFID 阅读器模块旨在创建一个 13.56MHz 的电磁场,用于与 RFID 标签(ISO 14443A 标准标签)进行通信。 阅读器可以通过 4 针串行外设接口 (SPI) 与微控制器通信,最大数据速率为 10Mbps。 它还支持通过 I2C 和 UART 协议进行通信。

在这里插入图片描述

RFID-RC522模块具有如下特性:

  • 基于MFRC522芯片的板子
  • 工作频率:13.56MHz
  • 电源电压:3.3V
  • 电流:13-26mA
  • 读取范围:约 3 厘米,随附卡片和遥控钥匙
  • SPI接口
  • 最大数据传输率:10Mbit / s
  • 尺寸:60mm×39mm

2、硬件准备

  • ESP8266 NodeMCU开发板一块
  • RFID-RC522模块一个
  • 面板板一个
  • 杜邦线若干
  • 数据线一条

硬件接线如下:

在这里插入图片描述

3、软件准备

  • Arduino IDE或VSCode + PlatformIO

在前面的文章中,对如何搭建ESP8266开发环境做了详细的介绍,请参考:

ESP8266 NodeMCU的引脚介绍在前面的文章中做了详细的介绍,请参考:

4、代码实现

本次使用到RFID-RC522驱动库如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <SPI.h>
#include <MFRC522.h>

#define RST\_PIN D3 // Configurable, see typical pin layout above
#define SS\_PIN D8 // Configurable, see typical pin layout above

MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance

void setup() {
Serial.begin(9600); // Initialize serial communications with the PC
SPI.begin(); // Init SPI bus
mfrc522.PCD\_Init(); // Init MFRC522
mfrc522.PCD\_DumpVersionToSerial(); // Show details of PCD - MFRC522 Card Reader details
Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks..."));
}

void loop() {
// Look for new cards
if ( ! mfrc522.PICC\_IsNewCardPresent()) {
return;
}

// Select one of the cards
if ( ! mfrc522.PICC\_ReadCardSerial()) {
return;
}

// Dump debug info about the card; PICC\_HaltA() is automatically called
mfrc522.PICC\_DumpToSerial(&(mfrc522.uid));
}

文章来源: https://iotsmart.blog.csdn.net/article/details/126447149