0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Arduino和继电器来触发电动门锁和RFID进行身份验证

科技观察员 来源:circuitdigest 作者:潘卡伊·卡特里 2022-11-14 16:47 次阅读

您已经在一些酒店和其他地方看到了RFID门锁机制,在那里您不需要钥匙即可解锁房间。你会得到一张卡,你只需要把它放在一个RFID阅读器盒前面,锁就会通过哔哔声和LED闪烁解锁。此RFID门锁可以在家中轻松制作,您可以将其安装在任何门上。这些门锁只是电动门锁,当您对其施加一些电压(通常为 12v)时会打开。

在这个项目中,我们使用Arduino和继电器来触发电动门锁和RFID进行身份验证,因此您的RFID标签将充当钥匙。如果您在RFID阅读器附近放置了错误的RFID卡,蜂鸣器将发出哔哔声以提醒错误的卡。

所需材料:

Arduino UNO

EM-18 带标签的读卡器模块

继电器 5v

发光二极管

蜂鸣器

连接线

电阻

pYYBAGNyAMCAfVABAABjvFcOEYY337.png

Arduino RFID门锁电路图

pYYBAGNyAMOACN_5AADZvv46fo8967.png

EM-18 无线射频识别读写器:

RFID代表射频识别。每张RFID卡中都嵌入了一个唯一的ID,RFID阅读器用于读取RFID卡号。EM-18 RFID阅读器的工作频率为125 KHz,并配有片上天线,可采用5V电源供电。它提供串行输出以及 weigand 输出。范围约为8-12厘米。串行通信参数为9600bps,8个数据位,1个停止位。

EM-18 RFID阅读器提供的输出为12位ASCII格式。在 12 位数字中,前 10 位数字是卡号,后两位数字是卡号的异或结果。最后两位数字用于错误检查。

poYBAGNyAMWAFLmDAACz1vZfDRs112.jpg

pYYBAGNyAMaAJO2bAAAqmzyP_x8994.jpg

例如,从读卡器读取的卡号是0200107D0D62,那么卡上的卡号将如下所示。

02 – 序言

00107D0D = 十进制1080589。

62 是 (02 XOR 00 XOR 10 XOR 7D XOR 0D) 的 XOR 值。

因此,卡上的数字是0001080589

代码和说明:

完整的RFID门锁Arduino代码在本项目结束时给出。

在下面的代码中,RFID标签编号存储在“char标签”中。“180088F889E1”是我存储在应答器微芯片中的RFID标签号码。标签号的长度为 12,我们定义了像“char input [12]”这样的数组,12 定义了 no。字符或数组大小。

char tag[] ="180088F889E1";

char input[12];

int count = 0;

boolean flag = 0;

现在,在下面的代码中,我们设置了Arduino UNO板的引脚用于操作,并且serial.begin()用于串行数据传输。此处,引脚 2 用于继电器操作,引脚 3 用于备用红色 LED,引脚 4 用于蜂鸣器。

void setup()

{

pinMode(2,OUTPUT);

pinMode(3, OUTPUT);

pinMode(4, OUTPUT);

Serial.begin(9600);

}

代码的条件主体是 void loop() ,对于备用红色 LED,引脚 3 保持 HIGH 状态,直到执行任何任务。

我们将使用 if 条件检查是否有任何可用的串行数据。意味着我们将检查是否有任何RFID标签被扫描。如果有任何串行数据(RFID标签号),我们会将其保存在我们定义的用于保存RFID标签编号的input[]数组中。

void loop(

{

digitalWrite(3,1);

if(Serial.available())

{

count = 0;

while(Serial.available() && count < 12)

{

input[count] = Serial.read();

count++;

delay(5);

}

现在我们将比较扫描的RFID卡号。使用我们在 char tag[] 数组中定义的数字。如果两个 umber 匹配,则我们将标志变量设置为 1,如果扫描了错误的卡或两个数字都不匹配,则我们将标志变量设置为 0。

if(count == 12)

{

count =0;

flag = 1;

while(count<12 && flag !=0) 

{

if(tag[count]==input[count])

flag = 1;

else

flag= 0;

}

如果您放置正确的 RFID 标签,则标志等于 1,在这种情况下,引脚 2 变为高电平(继电器通过该标签运行),引脚 3 此时变为低电平,延迟 5 秒后,两个引脚将恢复其初始状态。继电器将进一步连接到电动门锁,因此在继电器打开的情况下,门锁将被打开,5 秒后它将再次被锁定。

if(flag == 1)

{

digitalWrite(2,HIGH);

digitalWrite(3,LOW);

delay(5000);

digitalWrite(2,LOW);

}

如果您放置了错误的RFID 卡,标志将为零,蜂鸣器开始发出哔哔声,提醒 RFID 卡错误。

if(flag == 0)

{

for(int k =0; k<= 10; k++)

{

digitalWrite(4,HIGH);

delay(300);

digitalWrite(4,LOW);

delay(300);

}

}

基于Arduino的RFID门锁的工作原理

poYBAGNyAMiACXJWAADBzfBod1Q199.jpg

RFID系统由两个组件组成:RFID标签和阅读器。RFID标签由集成电路和天线组成,集成电路用于存储数据,天线用于将数据传输到RFID阅读器模块。每当RFID标签进入RFID阅读器的范围内时,RF信号为标签供电,然后标签开始串行传输数据。数据进一步由RFID阅读器接收,阅读器将其发送到Arduino板。之后,根据微控制器中的代码执行不同的任务。

在我们的电路中,我们已经在代码中保存了RFID标签的值。因此,每当该特定标签进入范围内时,继电器就会被激活。在这里,我们将LED与继电器连接起来进行演示,但是该LED可以用电动门锁代替,因此每当继电器被激活时,锁都会打开。

如果我们扫描任何其他RFID卡,蜂鸣器将开始发出哔哔声,因为它是错误的RFID标签。因此,对于门锁系统,我们使用了这个概念,即只有使用正确的RFID标签才能打开门。继电器本身将在 5 秒后停用,门将在 5 秒后关闭,您可以在代码中更改此延迟。

char tag[] ="180088F889E1";

char input[12];

int count = 0;

boolean flag = 0;

void setup()

{

pinMode(2,OUTPUT);

pinMode(3, OUTPUT);

pinMode(4, OUTPUT);

Serial.begin(9600);


}

void loop()

{

digitalWrite(3,1);

if(Serial.available())

{

count = 0;

while(Serial.available() && count < 12)

{

input[count] = Serial.read();

count++;

delay(5);

}

if(count == 12)

{

count =0;

flag = 1;

while(count<12 && flag !=0) 

{

if(tag[count]==input[count])

flag = 1;

else

flag= 0;

}

if(flag == 1)

{

digitalWrite(2,HIGH);

digitalWrite(3,LOW);

delay(5000);

digitalWrite(2,LOW);

}

if(flag == 0)

{

for(int k =0; k<= 10; k++)

{

digitalWrite(4,HIGH);

}

}

}

}

}


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

    关注

    132

    文章

    5306

    浏览量

    148261
  • RFID
    +关注

    关注

    387

    文章

    6079

    浏览量

    237149
  • Arduino
    +关注

    关注

    187

    文章

    6455

    浏览量

    186442
收藏 人收藏

    评论

    相关推荐

    无线身份验证的门禁控制系统设计方案

    管控——只有经认证的设备才能够加入该网络(与任何计算机都可访问任何网站的互联网不同),从而形成了隐性的、严格的身份验证机制。  各端点之间的TIP消息采用符合行业标准的加密方法进行加密,以便进行符合
    发表于 11-05 11:11

    Vivado和SDK身份验证错误

    尝试运行SDK或Vivado的安装程序时,出现“身份验证错误:发生了未知异常。请验证您的用户ID和密码,然后重试”我可以登录该站点,另一位同事可以登录该站点。我们可以下载安装程序,但是当我们尝试安装
    发表于 01-02 14:55

    PN5180无法使用mifare classic进行身份验证怎么解决?

    试图将它与此处建议的示例进行比较但我找不到问题所在。问题1:是否有任何文档说明如何使用图表或易于理解的示例进行身份验证,类似于其他命令?问题 2:我必须进行
    发表于 03-23 08:46

    如何使用TapLinx针对Ultralight C进行身份验证

    使用 TapLinx 针对 Ultralight C 进行身份验证
    发表于 04-21 06:08

    电动门锁,电动门锁,电动门锁原理详细图解

    电动门锁,电动门锁,电动门锁原理详细图解 电子门锁   它是欧洲一流的制锁商利普斯公司开发的电
    发表于 03-10 17:42 4.5w次阅读

    什么是身份验证和授权

    什么是身份验证和授权 根据RFC2828(Internet Security Glossary,May2000),验证是“校验被或向某系统实体声明的身份的过程”。此处的关键字
    发表于 04-03 16:03 5731次阅读

    什么是询问握手身份验证协议

    什么是询问握手身份验证协议 CHAP(询问握手身份验证协议)是用于远程登录的身份验证协议,通过三次握手周期性的校验对端的身份,在初始链
    发表于 04-03 16:06 2636次阅读

    什么是密码身份验证协议

    什么是密码身份验证协议 PAP是一种身份验证协议,是一种最不安全的身份证协议,是一种当客户端不支持其它身份认证协议时才被用来
    发表于 04-03 16:07 1590次阅读

    身份验证和生物识别身份系统应用越加广泛

    身份验证和生物识别身份系统应用越加广泛
    发表于 02-27 14:37 1546次阅读

    PCB身份验证

    电子发烧友网站提供《PCB身份验证器.zip》资料免费下载
    发表于 07-22 10:09 2次下载
    PCB<b class='flag-5'>身份验证</b>器

    RFID继电器门锁代码开源分享

    电子发烧友网站提供《RFID继电器门锁代码开源分享.zip》资料免费下载
    发表于 10-19 14:43 1次下载
    <b class='flag-5'>RFID</b>与<b class='flag-5'>继电器</b><b class='flag-5'>门锁</b>代码开源分享

    安全哈希算法的基础知识,如何使用算法进行身份验证

    本应用笔记介绍了安全哈希算法(SHA)的基础知识,并讨论了该算法的变体。然后简要介绍了如何使用算法进行身份验证,包括哈希消息身份验证代码 (HMAC) 的概念。最后,本文介绍了一些Maxim安全认证器,这些认证器可用于非常轻松地
    的头像 发表于 12-21 15:37 2351次阅读
    安全哈希算法的基础知识,如何使用算法<b class='flag-5'>进行</b><b class='flag-5'>身份验证</b>

    通过质询和响应身份验证实现安全访问控制

    本应用笔记回顾了门禁控制的关键:机械、磁性、接触式、RFID。它描述了质询和响应身份验证(质询、机密和消息身份验证代码或 MAC)以及 SHA-1 算法的重要作用。最后,本文解释了为什么质询和响应
    的头像 发表于 01-29 15:58 1168次阅读
    通过质询和响应<b class='flag-5'>身份验证</b>实现安全访问控制

    HDCP 2.2:使用中继器进行局部性检查、SKE和身份验证

    在 HDCP 2.2 身份验证过程 – 简介中,我们讨论了为什么需要 HDCP,以及 HDCP 身份验证过程的基本步骤。我们注意到,RSA 的高级版本是身份验证和密钥交换 (AKE) 期间
    的头像 发表于 05-29 09:24 1941次阅读
    HDCP 2.2:使用中继器<b class='flag-5'>进行</b>局部性检查、SKE和<b class='flag-5'>身份验证</b>

    芯科科技领先提供CBAP解决方案支持基于证书的身份验证和配对

      “基于证书的身份验证和配对(CBAP)”有助于简化低功耗蓝牙(BluetoothLE)设备的身份验证和配对过程。它具有内置的安全功能,无需使用二维码、密码或基于 NFC 的配对手动对设备
    的头像 发表于 06-04 11:35 638次阅读