RFID模块门禁系统设计

电子说

1.2w人已加入

描述

RFID可应用于门禁系统,我们可以把数据写入标签,然后将有权限的标签进行记录保存,当有用户标签被扫描时,进行身份信息读取比对,然后根据权限进行相应的操作。

本篇配合OLED屏幕来模拟门禁系统,只对标签的UID进行简单对比判断,当然你也可以设置好自己的密钥,然后将数据写入到标签,进行更加严谨的身份识别。

1

实验材料

  • Uno R3开发板
  • 配套USB数据线
  • 面包板及配套连接线
  • OLED显示屏
  • RFID-RC522模块及配套S50白卡和异形卡

2

实验步骤

1.根据原理图搭建电路图。

RC522模块的3.3V、GND分别对应连接开发板的3.3V、GND,模块的MOSI、MISO、SCK分别连接开发板的SPI接口11、12、13,模块的SDA、RST分别连接开发板数字管脚10、9。OLED屏的VCC和GND分别连接开发板的3.3V和GND,OLED屏的SDA和SCL分别连接开发板A4和A5。

实验原理图如下图所示:

GND

实验原理图

2.代码较长,部分截取如下,全部代码文末获取。

...

if (nuidPICC[0] == cardID[0] && nuidPICC[1] == cardID[1]

&& nuidPICC[2] == cardID[2] && nuidPICC[3] == cardID[3])

{

oled.clearDisplay();//清屏

oled.setCursor(15, 2);//设置显示位置

oled.println("--RFID--");

oled.setCursor(25, 40);//设置显示位置

oled.println("CHECK OK");

oled.display(); // 开显示

delay(1000);
oled.clearDisplay();//清屏
oled.setCursor(15, 2);//设置显示位置
oled.println("--RFID--");
oled.setCursor(25, 40);//设置显示位置
oled.println("OPEN...");
oled.display(); // 开显示

} else {

oled.clearDisplay();//清屏

oled.setCursor(15, 2);//设置显示位置

oled.println("--RFID--");

oled.setCursor(15, 40);//设置显示位置

oled.println("CHECK ERR");

oled.display(); // 开显示

}

// 使放置在读卡区的IC卡进入休眠状态,不再重复读卡

rfid.PICC_HaltA();

...

3. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。

GND

程序下载

3

实验现象

有权限的标签卡事先保存记录了UID,读卡对比可以开门,而另外的卡则不能开门操作。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分