☰
零基础学ESP32:RFID无线射频卡——让ESP32拥有“刷卡“能力!
2026/10/6 2:41:37 网站建设 项目流程

门禁卡、公交卡、校园一卡通、停车场出入卡……这些"滴一下"就能识别的卡片,背后都是RFID技术在工作。

今天要学的就是RFID技术中最经典的应用——用ESP32读取RFID卡的ID。学会了这节课,你就能做出自己的门禁系统、考勤机、智能储物柜!

今天这节课,我们就用ESP32 + MFRC522模块,读取RFID卡片的ID号!

第一步:找到课程,看看成品效果

打开逗脑IDE,点击顶部“文档”,在“课程” → “ESP32 + MicroPython”分类下,找到RFID无线射频卡 1-读取卡的id这节课。

打开课件,你会看到本节课的最终效果:把RFID卡片靠近读卡模块,终端立刻打印出卡片的ID号(如rfid卡片的id: 0x1a2b3c4d),移开卡片后停止。

第二步:什么是RFID?

RFID(Radio Frequency Identification),中文叫无线射频识别,是一种非接触式的自动识别技术。

简单理解:

卡片里有一个小芯片和天线,读卡器发出无线电波,卡片通过电波获得能量,然后把存储的ID信息发回给读卡器。

核心特点:

参数说明
工作频率13.56MHz(高频)
读卡距离0~5cm
接口SPI(4根线)
支持卡片Mifare One(M1卡)、S50、S70等
典型应用门禁、公交卡、校园卡

第三步:动手接线

MFRC522模块使用SPI接口,接线如下:

MFRC522引脚连接ESP32说明
VCC3.3V电源正极(必须3.3V!)
GNDGND电源地
SCKGPIO18SPI时钟
MOSIGPIO23主机输出
MISOGPIO19主机输入
SDA/CSGPIO5片选信号

📌 重要提示:VCC一定要接3.3V!接5V会烧坏模块。

第四步:上传驱动文件

在运行代码之前,需要先将MFRC522驱动文件mfrc522.py上传到ESP32。

操作步骤:

在MicroPython端新建mfrc522.py文件,将课件中提供的完整驱动代码复制进去,然后上传到ESP32。

这个驱动文件的作用:

  • 封装了MFRC522模块的底层通信细节
  • 提供了读卡、写卡、防冲突检测等功能的接口

第五步:代码——读取卡片ID

fromtimeimportsleep_msfrommachineimportPin,SPIfrommfrc522importMFRC522# 创建SPI引脚对象sck=Pin(18,Pin.OUT)mosi=Pin(23,Pin.OUT)miso=Pin(19,Pin.OUT)# 创建SPI对象spi=SPI(baudrate=100000,polarity=0,phase=0,sck=sck,mosi=mosi,miso=miso)# 创建片选引脚sda=Pin(5,Pin.OUT)defread_id():# 1. 创建RFID操作对象rfid=MFRC522(spi,sda)# 2. 循环读取数据whileTrue:# 3. 复位应答,检测是否有卡片靠近stat,tag_type=rfid.request(rfid.REQIDL)ifstat==rfid.OK:# 4. 防冲突检测,提取卡片IDstat,raw_uid=rfid.anticoll()ifstat==rfid.OK:_id="0x%02x%02x%02x%02x"%(raw_uid[0],raw_uid[1],raw_uid[2],raw_uid[3])print("rfid卡片的id:",_id)sleep_ms(500)if__name__=="__main__":read_id()

代码逻辑:

步骤操作说明
1创建SPI对象配置SPI通信参数
2创建MFRC522对象初始化读卡模块
3request()检测是否有卡片靠近
4anticoll()防冲突检测,读取卡片ID
5格式化打印将ID格式化为十六进制字符串

第六步:保存运行,刷卡测试!

保存代码到开发板,命名 test_rfid.py

点击运行按钮,终端开始等待卡片靠近。

试试看:

  1. 把RFID卡片靠近模块的天线区域(距离0~5cm)
  2. 终端立刻打印:rfid卡片的id: 0x1a2b3c4d
  3. 移开卡片,再放回去,再次打印相同的ID

RFID能做什么?

应用场景用途
门禁系统刷卡开门,只有授权卡能进
考勤系统刷卡签到,记录员工/学生出勤
智能储物柜刷卡开柜,安全存放物品
停车场管理刷卡出入,自动计费
会员卡系统刷卡识别会员身份
智能家居刷卡开灯/开空调

结合之前学过的课程

组合效果
RFID + 继电器刷卡控制门锁开关
RFID + OLED刷卡后屏幕显示ID和欢迎信息
RFID + 蜂鸣器刷卡成功/失败发出提示音
RFID + WiFi刷卡记录上传到服务器
RFID + MQTT刷卡触发远程通知

常见问题

Q:为什么读不到卡?

A:检查以下几点:

  1. VCC是否接3.3V(接5V会烧坏)
  2. 卡片是否靠近天线区域(0~5cm内)
  3. 接线是否正确(尤其是MISO和MOSI不要接反)

Q:能读手机NFC吗?

A:部分手机的NFC可以模拟M1卡,但不是所有手机都支持。用标准M1卡测试最稳定。

Q:能修改卡片里的数据吗?

A:可以,MFRC522支持读写M1卡的扇区数据。这个内容会在下一节课讲解。

全程回顾

步骤操作效果
找到课程文档→课程→ESP32+MicroPython→RFID读取卡ID了解RFID原理
上传驱动上传mfrc522.py到ESP32驱动就绪
动手接线VCC→3.3V, GND→GND, SCK→GPIO18, MOSI→GPIO23, MISO→GPIO19, SDA→GPIO5硬件就位
打开代码点击“打开”按钮代码进入编辑器
保存运行Ctrl+S → 选择ESP32 → 运行开始等待卡片
刷卡测试卡片靠近模块终端打印卡片ID!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询