在此项目中,我们将使用RC522 RFID模块,Arduino和MG 996R伺服电机构建一个简单的访问控制系统。使用其RFID智能卡或钥匙FOB对人员进行身份验证,并允许他们访问,即仅在有许可的情况下打开或关闭伺服器(门)。
为了保持清洁和简单,我使用了伺服电机来代表门开口和关闭。如果您对更专业的安装感兴趣,但请保持DIY,则可以使用螺线管门锁或电磁门锁。如果成本是一个因素,那么我建议您使用螺线管门锁。
介绍
访问控制是安全领域的重要技术,在该领域,人员可能会限制进入位置,使用对象或消耗某些东西的访问权限。授权是验证一个人的凭据并授予访问资源的许可的过程。
电子访问控制或EAC是一个简单的概念,它使用计算机系统来克服物理锁定和钥匙的局限性。在EAC中,我们有三种类型的身份验证。他们是:
- 使用键盘输入PIN或密码。
- 扫描智能卡或钥匙FOB
- 使用指纹或虹膜等生物识别系统
在这个简单的DIY项目中,我们将使用基于RFID的访问控制系统,该系统使用智能卡和钥匙FOB对人员进行身份验证。
访问控制系统的解剖结构
典型的访问控制系统由以下组件组成。这些是实现工作访问控制系统所需的最小组件。但是访问控制系统的复杂性可能因系统而异。
- 控制器:能够与扫描仪 /读取器模块接口的微控制器或微处理器。
- 受控条目:像门或门一样。
- 扫描仪 /阅读器:用于接受用户输入的模块,例如键盘或RFID扫描仪或指纹读取器。
- 锁定机构:像电磁阀门锁或电动机一样 - 受控门罢工。
组件描述
RC522 RFID模块
基于MFRC522 IC的RC522 RFID模块是Arduino的便宜而可靠的RFID模块。该套件由主RFID扫描仪 /读取器模块(带有嵌入式PCB天线),智能卡和键FOB(两者都是Mifare 1K Classic)组成。
我撰写了一个专门的教程将RC522 RFID模块与Arduino接口。看看这个。
MG 996R伺服电机
Tower Pro的MG 996R是一款具有高档位扭矩的数字金属齿轮伺服器,可旋转到120度(每个方向60度)。Mg 996R伺服器的工作电压为4.8V,可提供9.4 kgf.cm.cm.cm的停滞扭矩。
笔记:请勿从Arduino供电Mg 996R伺服电动机,因为运行电流非常高(通常在6V电源的500mA至900mA之间)。停滞电流,取决于负载,可以达到2.5a(在6V时)。
因此,将单独的电源用于伺服供应,并使此外部电源和Arduino之间的地面通用。
PCF8574 I2C LCD模块
Arduino可用的非常有用的模块之一是PCF8574 I2C LCD模块。它将常规16×2 LCD显示器转换为I2C连接设备,因此您只需两根电线即可控制显示器(i的SDA和SCL2C)。
我撰写了一个专门的教程将PCF8574 I2C LCD与Arduino接口。看看这个。
Arduino RC522 RFID模块基于访问控制系统
我选择了Arduino Uno作为该项目的主要控制器。要接受用户的输入,我们将使用RC522 RFID读取器模块。将向用户授予RFID智能卡和关键FOB作为其凭据。
16×2 LCD显示以及PCF8574 I2C LCD模块将连接到Arduino,以显示用户的相关文本(例如欢迎消息或UID)。
Arduino和RC522 RFID模块之间的连接使用SPI接口,而Arduino和PCF8574 I2C LCD模块之间的通信(随后,16×2 LCD)基于I2C接口。
将伺服电动机连接到Arduino的PWM引脚,如果您使用与我相同的强大MG 996R伺服电动机,则提供外部电源。
需要组件
- Arduino Uno
- RC522 RFID模块
- RFID智能卡
- RFID密钥FOB
- MG 996R伺服电机
- 16×2 LCD显示
- PCF8574 I2C LCD模块
- 面包板
- 面包板电源
- 连接电线
电路原理图
下图显示了基于Arduino RC522 RFID模块的访问控制系统的所有必要连接。
先决条件
在进行基于Arduino RC522 RFID模块的构建访问控制系统之前,您需要准备一些事情。
安装库
您需要做的第一件事是检查是否安装了所有必要的库。如本项目所述,使用ARDUINO构建基于RC522 RFID模块的RFID模块,则需要以下库:
- spi
- MFRC522
- 伺服
- Liquidcrystal_i2c
在此,SPI和伺服库已经与Arduino IDE一起安装。因此,请确保安装其他两个。
主卡的UID
接下来要做的是获取所有主卡的UID(唯一ID),该卡将有权访问资源(在这种情况下,门将打开)。使用“ MFRC522”库中的“ doldinfo”示例来获取主RFID卡和钥匙FOB的UID。
I2C LCD模块的从属地址
最后,由于我们使用的是带有16×2 LCD显示的I2C LCD模块,因此我们必须知道I2p PCF8574 IC的C地址。仅将PCF8574 I2C模块连接到Arduino(通过I2C总线)并使用以下代码获取从地址。
代码
现在,我们准备为基于Arduino RC522 RFID模块的访问控制系统编写主要代码。代码非常简单。保留所有RFID卡 /钥匙FOB UID的列表,这些列表被认为是访问权限的大师。
使用连接到Arduino的RC522 RFID模块扫描RFID卡或键FOB。如果扫描卡的UID与列表中的UID匹配,则打开大门,即激活MG 996R伺服器并在LCD上显示欢迎文本。
如果扫描卡未经许可,请勿打开大门,并在LCD上显示拒绝的访问文本。
在职的
在显示所有介绍文本后,Arduino将在LCD上说“扫描您的卡”,现在准备好阅读 /扫描RFID卡或钥匙FOB。我将RFID卡编程为主卡,即只有RFID卡可以访问,而密钥FOB则无法。
当我扫描RFID智能卡时,伺服器将激活,代表打开大门或解锁门。
LCD显示“访问授予”消息以及卡的UID。
如果我扫描键FOB,则该伺服器仍然处于封闭位置,因为它不是主卡。
LCD将显示“访问拒绝”消息。
结论
此处使用Arduino,RC522 RFID模块,MG 996R伺服器,PCF8574 I2C LCD和几个RFID智能卡和关键FOBS,在此演示了一个简单的访问控制系统DIY项目。您了解了此项目所需的重要组件,以及基于Arduino RC522 RFID模块的访问控制系统的简单实现。