[转]ESP32 RFID教程:打印MFRC522固件版本

简介: 本文旨在介绍如何通过ESP32与MFRC522 RFID读卡器进行通信。本ESP32教程的测试是使用集成在ESP32开发板中的DFRobot的ESP-WROOM-32设备进行的。由于RFID设备可能非常复杂,我们将从打印其固件版本这样一个简单的示例入手。

【转载】本文转自于DF创客社区ESP32 RFID教程:打印MFRC522固件版本
步骤
我们将使用一个MFRC522 RFID设备,它集成于非常便宜且可直接使用的模块中,该模块包含了两个RFID卡,如图1中所示。

image.png


图1 - MFRC522模块


关于ESP32 FireBeetle开发板与MFRC522之间的连接,请查看图2电路图。请注意,如果您使用的是其它ESP32开发板,则需要考虑引脚的差异。ESP32的引脚名称是FireBeetle开发板上标注的引脚名称。

2esp32-mfrc522-connection-diagram.png


图2 - ESP32 FireBeetle开发板与MFRC522模块之间的连接图


由于MFRC522的工作电压为3.3V,所以我们可以直接使用FireBeetle开发板的3.3 V引脚为其供电。 或者,如果您的开发板没有可用的3.3V电源引脚,也可以使用外部3.3V电源为其供电,但外部电源要与MFRC522共地连接。
当然,ESP32与MFRC522模块之间也要连接公共的GND,按照电路图所示连接相应的引脚。
由于我们将使用SPI协议与MFRC522通信,所以我们需要连接设备上的相应引脚。MFRC522的MISO、MOSI和SCK引脚应连接至FireBeetle开发板上标记了相同名称的引脚。
对于SPI协议的Slave Select引脚(从属设备选择,SS),值得注意的是,大部分的MFRC522模块都将其标记为SDA。在此示例中,我将它连接至ESP32开发板的SDA/IO21引脚(ESP32 GPIO21),当然,您也可以使用其它数字输出引脚,只要在软件程序中将此引脚指定为Slave Select引脚即可。
MFRC522模块还有一个重置输入引脚,我将它连接了ESP32开发板的SLC/IO22引脚 (ESP32 GPIO22)。同样,我们需要在软件中指定所使用的这个引脚,当然,您也可以使用其它输出引脚。
由于未使用IRQ引脚,所以我们将悬空IRQ引脚。这个引脚与中断功能有关。

软件库文件
与MFRC522设备的低层交互并非易事。因此,我们将使用Arduino库文件处理大部分细节,这些库文件提供了更简单、更高层级的接口。
我们将要使用的库文件为MFRC522.h,点击此处可在GitHub上找到该文件。通过Arduino IDE库管理器是安装此库文件的最简单方法。
问Arduino IDE中库文件管理器并安装上述库文件的路径为:sketch ->Include library – > Manage libraries。 在打开的弹出窗口中,只需搜索“rfid”并安装图3中突出显示的那个库文件即可。

3esp32-rfid-mfrc522-library-arduino-install.png


图3 - 通过Arduino IDE库文件管理器安装RFID库文件


这个库文件附带了许多可以在Arduino IDE上直接访问的示例,或者您可以点击此处在GitHub上查看。
在本教程中,我将使用1.3.6版本的库文件,这是在撰写本文时最新的版本。
代码
首先,我们需要引用一些库文件。我们将引用之前安装的MFRC522.h库文件,以便使用与设备交互所需的所有函数。
由于我们将通过SPI协议与RFID读卡器进行通信,所以我们还需要引用SPI.h库文件。
接下来,我们将通过定义一些常量,更准确地说,是确定Slave Select(从属设备选择,SS)引脚的编号和复位引脚的编号。参照先前的电路图,我将ESP32引脚22指定为复位引脚,将引脚21指定为Slave Select引脚,当然,也可以使用其他引脚。
接下来,我们需要创建一个MFRC522类对象,以便利用它与RFID阅读器交互的方法。我们将这个构造函数的输入参数设置为刚刚定义的ssPin和resetPin变量。
然后,我们将编写Arduino setup函数。首先,我们将初始化串口,以便可以打印从设备获得的信息。我们还将初始化SPI接口,以便能够与MFRC522进行通信。
接下来,我们需要初始化MFRC522设备。幸运的是,这个库文件隐藏了低层细节,我们只需调用mfrc522对象的PCD_Init方法即可,此方法的使用在以前的教程中有详细的介绍。此方法调用不带参数,其返回值为空。
在初始化完成后,我们要把固件的版本信息打印到串口。同样,只需简单地调用mfrc522对象的方法即可完成。我们调用了PCD_DumpVersionToSerial方法,此方法调用不带参数,其返回值为空。
全部代码如下:

include <SPI.h>

include <MFRC522.h>

const int resetPin = 22; // Reset pin
const int ssPin = 21; // Slave select pin
MFRC522 mfrc522 = MFRC522(ssPin, resetPin); // Create instance
void setup() {
Serial.begin(115200);
SPI.begin();
mfrc522.PCD_Init();
mfrc522.PCD_DumpVersionToSerial();
}
void loop() {}
请注意,此方法将把信息打印到串口,这就是它返回void的原因。本教程的完整代码如下所示,其中包含了此函数调用。

相关文章
arduino环境基于wemos串口调试小助手控制小车前后左右烧写源码
arduino环境基于wemos串口调试小助手控制小车前后左右烧写源码
91 0
arduino环境基于wemos串口调试小助手控制小车前后左右烧写源码
|
物联网 开发者
Wifi-nodeMCU-esp8266 固件库下载与调试工具介绍 | 学习笔记
快速学习 Wifi-nodeMCU-esp8266 固件库下载与调试工具介绍
928 0
Wifi-nodeMCU-esp8266 固件库下载与调试工具介绍 | 学习笔记
|
1月前
|
内存技术
esp8266-01s烧录AT固件方法以及遇到的问题总结
esp8266-01s烧录AT固件方法以及遇到的问题总结
|
传感器 Ubuntu Java
ESP-IDF 蓝牙开发实战 — 传感器数据上传及手机控制开发板
ESP32-C3 蓝牙部分我们学习了GATT,本文博主手把手带领大家使用 ESP32-C3的蓝牙做一个简单的小应用。
787 0
ESP-IDF 蓝牙开发实战 — 传感器数据上传及手机控制开发板
|
11月前
|
内存技术
stm32实现iap远程固件更新
stm32实现iap远程固件更新
134 0
|
11月前
|
存储 缓存 安全
基于IAP和Keil MDK的远程升级设计
基于IAP和Keil MDK的远程升级设计
116 0
|
11月前
|
芯片 内存技术
LabVIEW实现ST-Link自动烧录单片机
在讲解LabVIEW实现ST-Link自动烧录之前先聊一聊ST官方提供一款专用的Flash烧录工具:ST-Link utility。
|
12月前
【51单片机】使用STC烧录软件自动生成延时代码
【51单片机】使用STC烧录软件自动生成延时代码
97 0
|
12月前
【51单片机】使用STC烧录软件生成定时器的代码以及注意事项
使用STC烧录软件生成定时器的代码以及注意事项
168 0
【51单片机】使用STC烧录软件生成定时器的代码以及注意事项
|
算法 网络协议 定位技术
【BC20开发板的NB和GPS的硬件调试】
【BC20开发板的NB和GPS的硬件调试】
355 0