RFID-RC522 与Arduino的连接-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 42119|回复: 19

[过期] RFID-RC522 与Arduino的连接

[复制链接]
发表于 2017-2-21 20:18 | 显示全部楼层 |阅读模式
RFID读卡器的介绍射频识别标签是一种身份识别系统,使用小型射频识别装置进行识别和跟踪。一个射频识别标签系统,包括标签本身、读/写设备和用于数据收集、处理和传输的主机系统应用。
简单的说,一个射频识别技术使用电磁场在短距离内传输数据。射频识别是对确定人的身份,交易等是很有用的。
你可以使用一个射频识别系统来打开一扇门。例如,只有那个卡上面有正确信息的人才允许进入。一个射频识别系统的使用:
标签附着在待识别的对象,在这个例子中我们有一个钥匙扣和一个电磁卡。每个标签都有自己的标识(UID)。


(钥匙形状的和普通的卡都是识别的)
双向无线电发射机接收机,就是读卡器,发送一个信号到标签,并读取其返回的数据

(左边为发送器,右边为接收器)
4.基本规格
输入电压:3.3V
频率:13.53Mhz
现在,在键入所需的代码之前,您需要从这个存储库(https://github.com/AritroMukherjee/RFID)中下载该传感器的必要库。
先解压“RFID-master.zip”然后在Arduino IDE中添加库文件
这样做之后,重新启动你的Arduino IDE。
现在,我们的Arduino已经准备好接收和执行代码了。
Arduino的代码已经在这篇教程的最后。你所需要的只是编译代码,消除“错误”的错误(如果有)。
现在,是时候连接我们的Arduino与RFID读写器。参照下面的引脚接线,以及连接示意图,供简单参考。
RFID与Arduino Uno的连线
SDA------------------------Digital 10
SCK------------------------Digital 13
MOSI----------------------Digital 11
MISO----------------------Digital 12
IRQ------------------------不用连接
GND-----------------------GND
RST------------------------Digital 9                      //但是我试着接到D5也能用
3.3V------------------------3.3V (千万不要连接到5V接口!!!)
5.从一个RFID标签中读取数据  电路连接好后,点击文件->示例> MFRC522 > Dumpinfo 然后编译和上传代码。此代码将在安装RFID库文件后可用
然后,打开串口监视器。你应该看到下面的数字:

将RFID卡或RFID钥匙型卡靠近RFID读卡器,使读卡器和标签靠近直至所有的信息都显示出来

这就是是你可以从卡中读取到的信息,包括卡UID,用黄色高亮显示。该信息存储在内存中,分为段和块,就像你可以在上面的图片看到一样。
您有1024个字节的数据存储分为16个部分,每个部分是由两个不同的密码保护,A和B的。
写下你的UID密码,因为以后你会需要它的。
在这里上传已经已添加UID后缀的Arduino代码。

示范视频
油管链接:https://www.youtube.com/watch?v=_qH_VMIVVYs (PS:国内的朋友如果看不了可以等我上传到B站)B站链接http://www.bilibili.com/video/av6299933/
上传&运行程序后,将你选择给予权限的卡靠近读卡器你将会看到(端口可能会有所不同)
上传&运行程序后,将你选择给予权限的卡靠近读卡器你将会看到(端口可能会有所不同)

如果你将另一张有不同UID的卡靠近读卡器,你将会看到拒绝的信息

如果有任何疑问,请在下面发表评论。

连线参考图:
/*
*
* All the resources for this project: https://www.hackster.io/Aritro
* Modified by Aritro Mukherjee
*
*
*/

#include <SPI.h>
#include <MFRC522.h>

#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.

void setup()
{
  Serial.begin(9600);   // Initiate a serial communication
  SPI.begin();      // Initiate  SPI bus
  mfrc522.PCD_Init();   // Initiate MFRC522
  Serial.println("Approximate your card to the reader...");
  Serial.println();

}
void loop()
{
  // Look for new cards
  if ( ! mfrc522.PICC_IsNewCardPresent())
  {
    return;
  }
  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial())
  {
    return;
  }
  //Show UID on serial monitor
  Serial.print("UID tag :");
  String content= "";
  byte letter;
  for (byte i = 0; i < mfrc522.uid.size; i++)
  {
     Serial.print(mfrc522.uid.uidByte < 0x10 ? " 0" : " ");
     Serial.print(mfrc522.uid.uidByte, HEX);
     content.concat(String(mfrc522.uid.uidByte < 0x10 ? " 0" : " "));
     content.concat(String(mfrc522.uid.uidByte, HEX));
  }
  Serial.println();
  Serial.print("Message : ");
  content.toUpperCase();
  if (content.substring(1) == "BD 31 15 2B") //change here the UID of the card/cards that you want to give access
  {
    Serial.println("Authorized access");
    Serial.println();
    delay(3000);
  }

else   {
    Serial.println(" Access denied");
    delay(3000);
  }
}
//////////////////////////////////////////////////////////////////////////////////////////////////
注:原帖地址 http://www.arduino.cn/forum.php?mod=viewthread&tid=23239&highlight=RFID
我只是拿来自己用的,如果冒犯,还请见谅
发表于 2017-12-17 19:19 | 显示全部楼层
Crystal_S 发表于 2017-4-13 21:14
为什么我按步骤一步一步做,就是不行呢,串口监视器里显示:

Firmware Version: 0x0 = (unknown)

后来怎么解决的,我也遇到了同样的问题
 楼主| 发表于 2017-2-21 20:22 | 显示全部楼层
还有一篇,地址是http://www.arduino.cn/thread-4560-1-1.html
这篇只是用了SPI库函数,而没有用RFID库
 楼主| 发表于 2017-2-21 20:45 | 显示全部楼层
 楼主| 发表于 2017-2-21 21:22 | 显示全部楼层
分享一个整理并测试好用的MFRC522 RFID库   
http://www.geek-workshop.com/forum.php?mod=viewthread&tid=4719&highlight=rfid
 楼主| 发表于 2017-2-21 21:23 | 显示全部楼层
输出RFID的卡号
http://www.geek-workshop.com/thread-15497-1-1.html
 楼主| 发表于 2017-3-1 09:25 | 显示全部楼层
介绍舵机比较好的文章:http://www.geekfan.net/13978/
 楼主| 发表于 2017-3-7 11:59 | 显示全部楼层
 楼主| 发表于 2017-3-7 12:09 | 显示全部楼层
发表于 2017-3-24 13:35 来自手机 | 显示全部楼层
楼主你好,有问题请教,能加个qq么,1269108444这是我的
发表于 2017-4-13 21:14 | 显示全部楼层
为什么我按步骤一步一步做,就是不行呢,串口监视器里显示:

Firmware Version: 0x0 = (unknown)
WARNING: Communication failure, is the MFRC522 properly connected?
Scan PICC to see UID, SAK, type, and data blocks...
求大神指教




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 00:40 , Processed in 0.136725 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表