rfid IC卡

先了解IC卡一些前置知识。

首先我们会有一张ic卡(M1类型IC卡,一般买到的都是1K存储空间),在rc522代码中会出现这个,就是对IC卡进行检查PICC_TYPE_MIFARE_4KPICC_TYPE_MIFARE_1K就是一种卡片类型不同大小

    //检查兼容性if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI && piccType != MFRC522::PICC_TYPE_MIFARE_1K && piccType != MFRC522::PICC_TYPE_MIFARE_4K){Serial.println("无效卡!");return;}

RC522模块就是阅读器天线以及处理器和寄存器,这些不是写代码关注的重点。

在使用arduinoIDE+esp32 的MFrc522库中,尽管他没有写支持esp32,但是在MFrc522 V2库中SPI的连线可以作用在MFrc522中

SPI的连线是根据ESP32引脚功能来设置的,但是有文章说可以通过SPI来自己自定义设置(库作者没有提供定义的功能),读者可以自行设置

IC卡内部空间

一个ic的存储结构就是上面的样子,而我们在读取ic卡会选取一个扇区,这个扇区中设置的密钥可以用于ic卡的验证,而ic卡总共有16个,这样可以为一个IC卡提供多个功能,实现一卡多用

同时每个扇区还有其他存储尚未使用,这些存储区可以为IC卡功能分类提供有利的标识,以及权限的标识

读取扇区代码分析

1.读取指定扇区的内容

status = (MFRC522::StatusCode)mfrc522.MIFARE_Read(blockAddr, buffer, &size);

三个参数:1.blockAddr,要读取扇区号
2.buffer,自行设置缓冲区(将IC卡扇区中读取的数据放入的地方)
3.size,读取数据大小

返回值:status,操作状态码,判断条件可以看内容3

2.将内容写入扇区

status = mfrc522.MIFARE_Write(blockAddr, buffer, 16);

三个参数:1.blockAddr,要写入扇区号
2.buffer,自行设置缓冲区
3.size,读取数据大小
返回值:status,操作状态码,判断条件可以看内容3

3.判断写入或者读取操作是否成功

if (status != MFRC522::STATUS_OK){Serial.print("写入失败:");Serial.println(mfrc522.GetStatusCodeName(status)); //打印错误码return;}

4.用密钥进行卡片验证

    status= (MFRC522::StatusCode)mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, blockAddr, &keyA, &(mfrc522.uid));

三个参数:1.PICC_CMD_MF_AUTH_KEY_A,使用密钥A位置进行验证
2.blockAddr,扇区号
3.keyA,密钥A
4.mfrc522.uid,uid号UID是用户身份证明(User Identification)的缩写,是每一个卡片的唯一有效识别编码。

返回值:status,操作状态码

卡片密钥(可以自行搜索):

//准备卡片密钥A,B
MFRC522::MIFARE_Key keyA;
MFRC522::MIFARE_Key keyB;byte KEYA[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; //密钥A
byte KEYB[6] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; //密钥B

如果这个扇区没有经过密钥的解锁是没办法读取的,有兴趣的可以了解一下IC卡的破译(比如说水卡,一些门禁的验证)。

大致上面的函数就能完成我们的基本的需求了,一些功能的完成,使用这三个函数就足够了

整体代码以及其他内容,可以参考这个作者的其他文章,他的内容比较详细一点

会飞的豹豹豹 https://www.bilibili.com/read/cv18457914?spm_id_from=…0.0
出处:bilibili

arduino rc522模块使用相关推荐

  1. Arduino文档阅读笔记-RFID工作原理及RC522模块介绍

    RFID工作原理 RFID(Radio Frequency Identification):无线射频识别 RFID由2个部分组成:应答器/标签被贴在某个物体上的东东.无线接收器用于读取应答器/标签上的 ...

  2. #智能宿舍门禁 esp8266+RC522模块+DFPlay Mini Mp3模块实现宿舍智能门锁//NFC//物联网

    esp8266+RC522模块+DFPlay Mini Mp3模块实现宿舍智能门锁//NFC//物联网 提示: 提示: 文章目录 esp8266+RC522模块+DFPlay Mini Mp3模块实现 ...

  3. ESP32开发之旅——RC522模块的使用

    ESP32开发之旅--RC522模块的使用 前言 在本文中,您将学会如何使用ESP32连接RFID模块RC522,本文提供了简单的示例供学习参考. 需要注意的是,本文中的ESP32是使用Micro P ...

  4. 织女星开发板RISC-V核通过SPI协议驱动ARDUINO LCD模块(显示)

    前言 第一次写这个博客,算是新手吧,刚好有这个机会,手边有VEGA的开发板和Arduino的LCD模块,做了点小东西,想和大家分享一下. 一开始只是想着通过SPI协议初始化LCD屏幕,然后发个字符串就 ...

  5. 织女星开发板RISC-V核通过SPI协议驱动ARDUINO LCD模块(触屏)

    前言 之前写了一个通过SPI协议初始化LCD屏幕并显示字符串和图片的文章,这次再尝试一下触屏的功能. 准备工作 1,焊接织女星开发板J1,J2,J3,J4的双排母座,以便与LCD屏通信.前段时间免费申 ...

  6. Arduino HX711模块(电子秤 )

    Arduino HX711模块(电子秤 ) 模块介绍 HX711是一款专为高精度电子秤而设计的24位A/D转换器芯片. 应变片是由敏感栅等构成用于测量应变的元件.电阻应变片的工作原理是基于应变效应制作 ...

  7. 如何使用Arduino摇杆模块(Joystick Shield)

    在本篇文章中,我们将主要介绍如何使用Arduino摇杆模块(Joystick Shield).该扩展模块有不同的版本,我们使用的是v2.4,它有一些有趣的功能和一些按钮,可以在您的应用程序中以不同的方 ...

  8. M2006+C610驱动方案(二)arduino can模块

    arduino can模块组成了控制端 用到了 https://github.com/Seeed-Studio/CAN_BUS_Shield 接线和使用就不说了就收和发两个操作,只说下遇到的问题 c6 ...

  9. 使用蓝牙测试app和Web Bluetooth API(web蓝牙)连接arduino蓝牙模块并通信

    原文链接:https://dsx2016.com/?p=1505 公众号:大师兄2016 前言 前面的arduino操作都是建立在usb串口通信上的,然而有线的操作不仅不方便,还受限设备数量,数据传输 ...

最新文章

  1. winrunner事务概念的代码应用(毫秒级)
  2. Python基础-模块
  3. 从蛋白质结构到功能的生物信息学研究 From Protein Structure to Function with Bioinformatics PDF
  4. ThinkPHP3.1快速入门(4)连贯操作
  5. jooq 分页排序_将jOOQ与Spring结合使用:排序和分页
  6. 数据中心传输需求成以太网市场巨大推动力
  7. git ssh创建分支_将git项目导入GitHub的方法(附创建分支)
  8. VoIP:难以抵挡的灰色诱惑
  9. 命名集 —— 名字结构
  10. 在idea中配置jetty
  11. 在没有QQ、微信时局域网共享文件方法
  12. 关于永洪BI Kerberos机制的详细介绍
  13. 2021 年 VS Code 主题推荐
  14. Python实战之tkinter库画图,用canver画布教你画会动的哆啦A梦
  15. 【实习日志】The last Day总结篇
  16. gym创建自己的强化学习环境env
  17. 开发中同一个字拥有不同编码的汇总(eg䶮)
  18. DiskGenius标准版 4.8.0 正式版
  19. python中查找特定字符的方法
  20. Win10 如何使用cmd命令行配置防火墙

热门文章

  1. 8086汇编学习之DS寄存器、SS/SP寄存器
  2. 《Spring实战》读书笔记_装配bean
  3. HTML5期末大作业:电影网站设计——迪斯尼公主滚动特效(7页) HTML5网页设计成品_学生DW静态网页设计代做_web课程设计网页制作
  4. win xp查询计算机配置文件,Win XP文件夹属性没有共享选项卡
  5. 文件服务器 群晖,群晖文件服务器客户端
  6. 一键安装nginx脚本
  7. 《如何拍出清晰的照片》
  8. 艾默生质量流量计结构坚固安装简便
  9. 三分钟读懂:云计算与虚拟化的关系
  10. MyEclipse安装SVN插件及插件下载地址