免费获客网站、免费获客平台、免费产品获客【风起获客】风起获客
  • 首页
  • 供应商
  • 采购商
  • 找企业
  • 找产品
  • 论坛
登录 / 注册

一个基本的rfid系统由哪些基本组件组成,Arduino的RFID门锁制作-原理,接线图,代码

279385349
2024-11-11
82
分享

专业小程序设计开发——助力新电商新零售

电话+V:159999-78052,欢迎咨询rfid电子标签系统制作视频,[小程序设计与开发],[小程序投流与推广],[小程序后台搭建],[小程序整套源码打包],[为个体及小微企业助力],[电商新零售模式],[小程序运营推广及维护]

一、一个基本的rfid系统由哪些基本组件组成

RFID是RadioFrequencyIdentification的缩写,即射频识别,俗称电子标签。什么是RFID的基本组成部分?最基本的RFID系统由三部分组成:?标签(Tag):由耦合元件及芯片组成,每个标签具有唯一的电子编码,附着在物体上标识目标对象;?阅读器(Reader):读取(有时还可以写入)标签信息的设备,可设计为手持式或固定式;?天线(Antenna):在标签和读取器间传递射频信号。

二、rfid系统由哪三部分组成

RFID系统由标签、阅读器、天线三部分组成。

标签:由耦合元件及芯片组成,每个标签具有唯一的电子编码,高容量电子标签有用户可写入的存储空间,附着在物体上标识目标对象。

阅读器:读取(有时还可以写入)标签信息的设备,可设计为手持式或固定式。

天线:在标签和读取器间传递射频信号。

RFID射频识别是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象并获取相关数据,识别工作无须人工干预,可工作于各种恶劣环境。RFID技术可识别高速运动物体并可同时识别多个标签,操作快捷方便。

RFID电子标签是一种突破性的技术:“第一,可以识别单个的非常具体的物体,而不是像条形码那样只能识别一类物体;第二,其采用无线电射频,可以透过外部材料读取数据,而条形码必须靠激光来读取信息;第三,可以同时对多个物体进行识读,而条形码只能一个一个地读。此外,储存的信息量也非常大。”

RFID技术的基本工作原理并不复杂:标签进入磁场后,接收解读器发出的射频信号,凭借感应电流所获得的能量发送出存储在芯片中的产品信息(PassiveTag,无源标签或被动标签),或者主动发送某一频率的信号(ActiveTag,有源标签或主动标签);解读器读取信息并解码后,送至中央信息系统进行有关数据处理。

Arduino的RFID门锁制作-原理,接线图,代码

原创2021-06-1112:59·机电乐

在本教程中,我们将了解什么是RFID、它是如何工作的以及如何制作基于Arduino的RFID门锁。您可以观看以下视频或阅读下面的书面教程以了解更多详细信息。

概述
RFID代表射频识别(RadioFrequencyIdentification),它是一种非接触式技术,广泛应用于许多行业,用于人员跟踪、访问控制、供应链管理、图书馆书籍跟踪、收费站系统等任务。

应用场景


RFID的工作原理

RFID系统由两个主要组件组成,一个是位于我们想要识别的对象上的标签,另一个是阅读器。

流程框架

RFID阅读器由射频模块、控制单元和产生高频电磁场的天线线圈组成。另一方面,标签通常是无源元件,仅由天线和电子微芯片组成,因此当它靠近收发器的电磁场时,由于感应,在其天线线圈中产生电压,这电压作为微芯片的电源。

工作原理

实物模块

现在,当标签通电时,它可以从阅读器中提取传输的消息,并将消息发送回阅读器,它使用一种称为负载操作的技术。打开和关闭标签天线上的负载会影响阅读器天线的功耗,这可以用电压降来衡量。电压的这种变化将被捕获为1和0,这就是数据从标签传输到阅读器的方式。

阅读器和标签之间还有另一种数据传输方式,称为反向散射耦合。在这种情况下,标签使用部分接收功率来生成另一个电磁场,该电磁场将被阅读器的天线接收。

RFID和Arduino

这就是基本的工作原理,现在让我们看看如何将RFID与Arduino结合使用并构建我们自己的RFID门锁。我们将使用基于MIFARE协议和MFRC522RFID阅读器的标签,它们的成本仅为几元。

这些标签有1kb的内存,并有一个可以进行算术运算的微芯片。它们的工作频率为13.56MHz,工作距离可达10cm,具体取决于天线的几何形状。如果我们将这些标签中的一个放在光源前面,我们可以注意到我们之前谈到的天线和微芯片。

RFID卡内部结构

至于RFID阅读器模块,它使用SPI协议与Arduino板进行通信,以下是我们需要如何连接它们。请注意,我们必须将模块的VCC连接到3.3V,至于其他引脚,我们不必担心,因为它们可以承受5V。

接线图

连接模块后,我们需要从GitHub下载MFRC522库。该库附带了几个很好的示例,我们可以从中学习如何使用该模块。

首先我们可以上传“DumpInfo”示例并测试我们的系统是否正常工作。现在,如果我们运行串行监视器并将标签放在模块附近,阅读器将开始读取标签,并且来自标签的所有信息都将显示在串行监视器上。

标签信息

这里我们可以看到标签的UID号以及1KB的内存,实际分成16个扇区,每个扇区分成4个块,每个块可以存储2个字节的数据。在本教程中,我们不会使用任何标签的内存,我们将只使用标签的UID号。

ArduinoRFID门锁门禁控制项目

在我们介绍我们的RFID门锁项目的代码之前,让我们先来看看这个项目的组件和电路原理图。

项目组件及原理图

除了RFID模块外,我们还将使用接近传感器来检查门是关闭还是打开,伺服电机用于锁定机构和字符显示器。

本Arduino教程所需的组件:·MFRC522RFID模块

·伺服电机

·LCD显示屏

·Arduino板

·面包板和跳线

·接近传感器CNY70

该项目有以下工作流程:首先我们必须设置一个主标签,然后系统进入正常模式。如果我们扫描未知标签,访问将被拒绝,但如果我们扫描主服务器,我们将进入一个程序模式,我们可以从中添加和授权未知标签。所以现在如果我们再次扫描标签,将被授予访问权限,因此我们可以打开门。

实物图

我们关上门后,门会自动锁上。如果我们想从系统中删除一个标签,我们只需要再次进入程序模式,扫描已知标签,它将被删除。

源代码解释
现在让我们来看看代码。首先我们需要包含RFID模块、显示器和伺服电机的库,定义下面程序所需的一些变量以及创建库的实例。

#include<SPI.h>#include<MFRC522.h>#include<LiquidCrystal.h>#include<Servo.h>#defineRST_PIN9#defineSS_PIN10bytereadCard[4];char*myTags[100]={};inttagsCount=0;StringtagID="";booleansuccessRead=false;booleancorrectTag=false;intproximitySensor;booleandoorOpened=false;//CreateinstancesMFRC522mfrc522(SS_PIN,RST_PIN);LiquidCrystallcd(2,3,4,5,6,7);//Parameters:(rs,enable,d4,d5,d6,d7)ServomyServo;//Servomotor在setup部分,我们初始化模块,并将伺服电机的初始值设置为锁定位置。然后我们将初始消息打印到显示器上,并通过以下“while”循环等待主标签被扫描。getID()自定义函数获取标签UID并将其放入myTags[0]数组的第一个位置。

voidsetup(){//InitiatingSPI.begin();//SPIbusmfrc522.PCD_Init();//MFRC522lcd.begin(16,2);//LCDscreenmyServo.attach(8);//ServomotormyServo.write(10);//Initiallockpositionoftheservomotor//Printstheinitialmessagelcd.print("-NoMasterTag!-");lcd.setCursor(0,1);lcd.print("SCANNOW");//Waitsuntilamastercardisscannedwhile(!successRead){successRead=getID();if(successRead==true){myTags[tagsCount]=strdup(tagID.c_str());//Setsthemastertagintoposition0inthearraylcd.clear();lcd.setCursor(0,0);lcd.print("MasterTagSet!");tagsCount++;}}successRead=false;printNormalModeMessage();}我们来看看getID()自定义函数。首先,它检查阅读器附近是否放置了新标签,如果有,我们将继续“for”循环,获取标签的UID。我们使用的标签有4个字节的UID号,这就是为什么我们需要对这个循环进行4次迭代,并使用concat()函数将4个字节添加到单个String变量中。我们还将字符串的所有字符设置为大写,最后我们停止阅读。

uint8_tgetID(){//GettingreadyforReadingPICCsif(!mfrc522.PICC_IsNewCardPresent()){//IfanewPICCplacedtoRFIDreadercontinuereturn0;}if(!mfrc522.PICC_ReadCardSerial()){//SinceaPICCplacedgetSerialandcontinuereturn0;}tagID="";for(uint8_ti=0;i<4;i++){//TheMIFAREPICCsthatweusehave4byteUIDreadCard[i]=mfrc522.uid.uidByte[i];tagID.concat(String(mfrc522.uid.uidByte[i],HEX));//Addsthe4bytesinasingleStringvariable}tagID.toUpperCase();mfrc522.PICC_HaltA();//Stopreadingreturn1;}Beforeweenterthemainloop,attheendofthesetupsection,wealsocalltheprintNormalModeMessage()customfunctionwhichprintsthe“AccessControl”messageonthedisplay.voidprintNormalModeMessage(){delay(1500);lcd.clear();lcd.print("-AccessControl-");lcd.setCursor(0,1);lcd.print("ScanYourTag!");}

在主循环中,我们从读取接近传感器的值开始,它告诉我们门是否关闭。

intproximitySensor=analogRead(A0);

因此,如果门是关闭的,使用与我们在getID()自定义函数中描述的相同的行,我们将扫描并获取新标签的UID。我们在这里可以注意到,由于“if”语句中的“return”行,在我们扫描标签之前,代码不会继续进行。

一旦我们扫描了标签,我们就会检查该标签是否是我们之前注册的主,如果是,我们将进入程序模式。在这种模式下,如果我们扫描一个已经授权的标签,它将从系统中删除,或者如果标签未知,它将作为授权添加到系统中。

//检查扫描到的标签是否是主标签if(tagID==myTags[0]){lcd.clear();lcd.print("Programmode:");lcd.setCursor(0,1);lcd.print("Add/RemoveTag");while(!successRead){successRead=getID();if(successRead==true){for(inti=0;i<100;i++){if(tagID==myTags[i]){myTags[i]="";lcd.clear();lcd.setCursor(0,0);lcd.print("TagRemoved!");printNormalModeMessage();return;}}myTags[tagsCount]=strdup(tagID.c_str());lcd.clear();lcd.setCursor(0,0);lcd.print("TagAdded!");printNormalModeMessage();tagsCount++;return;}}}

在程序模式之外,在下一个“for”循环中,我们检查扫描的标签是否与任何已注册的标签相同,我们要么解锁门,要么保持拒绝访问。在“else”语句的最后,我们等到门关闭,然后锁上门并再次打印正常模式消息。

//检查扫描的标签是否被授权for(inti=0;i<100;i++){if(tagID==myTags[i]){lcd.clear();lcd.setCursor(0,0);lcd.print("AccessGranted!");myServo.write(170);//UnlocksthedoorprintNormalModeMessage();correctTag=true;}}if(correctTag==false){lcd.clear();lcd.setCursor(0,0);lcd.print("AccessDenied!");printNormalModeMessage();}}//Ifdoorisopen...else{lcd.clear();lcd.setCursor(0,0);lcd.print("DoorOpened!");while(!doorOpened){proximitySensor=analogRead(A0);if(proximitySensor>200){doorOpened=true;}}doorOpened=false;delay(500);myServo.write(10);//LocksthedoorprintNormalModeMessage();}项目的完整代码:/*Arduino门锁门禁控制项目**作者:DejanNedelkovski,www.HowToMechatronics.com**库:MFRC522,https://github.com/miguelbalboa/rfid*/#include<SPI.h>#include<MFRC522.h>#include<LiquidCrystal.h>#include<Servo.h>#defineRST_PIN9#defineSS_PIN10bytereadCard[4];char*myTags[100]={};inttagsCount=0;StringtagID="";booleansuccessRead=false;booleancorrectTag=false;intproximitySensor;booleandoorOpened=false;//CreateinstancesMFRC522mfrc522(SS_PIN,RST_PIN);LiquidCrystallcd(2,3,4,5,6,7);//Parameters:(rs,enable,d4,d5,d6,d7)ServomyServo;//Servomotorvoidsetup(){//InitiatingSPI.begin();//SPIbusmfrc522.PCD_Init();//MFRC522lcd.begin(16,2);//LCDscreenmyServo.attach(8);//ServomotormyServo.write(10);//Initiallockpositionoftheservomotor//Printstheinitialmessagelcd.print("-NoMasterTag!-");lcd.setCursor(0,1);lcd.print("SCANNOW");//Waitsuntilamastercardisscannedwhile(!successRead){successRead=getID();if(successRead==true){myTags[tagsCount]=strdup(tagID.c_str());//Setsthemastertagintoposition0inthearraylcd.clear();lcd.setCursor(0,0);lcd.print("MasterTagSet!");tagsCount++;}}successRead=false;printNormalModeMessage();}voidloop(){intproximitySensor=analogRead(A0);//Ifdoorisclosed...if(proximitySensor>200){if(!mfrc522.PICC_IsNewCardPresent()){//IfanewPICCplacedtoRFIDreadercontinuereturn;}if(!mfrc522.PICC_ReadCardSerial()){//SinceaPICCplacedgetSerialandcontinuereturn;}tagID="";//TheMIFAREPICCsthatweusehave4byteUIDfor(uint8_ti=0;i<4;i++){//readCard[i]=mfrc522.uid.uidByte[i];tagID.concat(String(mfrc522.uid.uidByte[i],HEX));//Addsthe4bytesinasingleStringvariable}tagID.toUpperCase();mfrc522.PICC_HaltA();//StopreadingcorrectTag=false;//Checkswhetherthescannedtagisthemastertagif(tagID==myTags[0]){lcd.clear();lcd.print("Programmode:");lcd.setCursor(0,1);lcd.print("Add/RemoveTag");while(!successRead){successRead=getID();if(successRead==true){for(inti=0;i<100;i++){if(tagID==myTags[i]){myTags[i]="";lcd.clear();lcd.setCursor(0,0);lcd.print("TagRemoved!");printNormalModeMessage();return;}}myTags[tagsCount]=strdup(tagID.c_str());lcd.clear();lcd.setCursor(0,0);lcd.print("TagAdded!");printNormalModeMessage();tagsCount++;return;}}}successRead=false;//Checkswhetherthescannedtagisauthorizedfor(inti=0;i<100;i++){if(tagID==myTags[i]){lcd.clear();lcd.setCursor(0,0);lcd.print("AccessGranted!");myServo.write(170);//UnlocksthedoorprintNormalModeMessage();correctTag=true;}}if(correctTag==false){lcd.clear();lcd.setCursor(0,0);lcd.print("AccessDenied!");printNormalModeMessage();}}//Ifdoorisopen...else{lcd.clear();lcd.setCursor(0,0);lcd.print("DoorOpened!");while(!doorOpened){proximitySensor=analogRead(A0);if(proximitySensor>200){doorOpened=true;}}doorOpened=false;delay(500);myServo.write(10);//LocksthedoorprintNormalModeMessage();}}uint8_tgetID(){//GettingreadyforReadingPICCsif(!mfrc522.PICC_IsNewCardPresent()){//IfanewPICCplacedtoRFIDreadercontinuereturn0;}if(!mfrc522.PICC_ReadCardSerial()){//SinceaPICCplacedgetSerialandcontinuereturn0;}tagID="";for(uint8_ti=0;i<4;i++){//TheMIFAREPICCsthatweusehave4byteUIDreadCard[i]=mfrc522.uid.uidByte[i];tagID.concat(String(mfrc522.uid.uidByte[i],HEX));//Addsthe4bytesinasingleStringvariable}tagID.toUpperCase();mfrc522.PICC_HaltA();//Stopreadingreturn1;}voidprintNormalModeMessage(){delay(1500);lcd.clear();lcd.print("-AccessControl-");lcd.setCursor(0,1);lcd.print("ScanYourTag!");}让我们一起动手试试吧!

如果您喜欢本教程,欢迎收藏,点赞加关注喔!这将为我后续文章提供更大的动力。

【WINDRISES MINIPROGRAM PROMOTION】尊享直接对接老板

电话+V: 159999-78052

专注于小程序推广配套流程服务方案。为企业及个人客户提供了高性价比的运营方案,解决小微企业和个体拓展客户的问题

rfid电子标签系统制作视频
相关新闻
  • 01
    人工智能考公务员适合什么岗位,中国高端猎头涉及到交通行业有哪些
    423
  • 02
    顺丰客服24小时热线人工电话,广东智慧国际物流个性化服务助您轻松应对马来西亚海运小包挑战!
    168
  • 03
    2024年618十大智能晾衣架品牌盘点:云米科技逆袭成榜单TOP2,智能晾衣架是“智商税”吗?好太太、金贵夫人、网易严选等产品存在问题
    115
  • 04
    一个基本的rfid系统由哪些基本组件组成,Arduino的RFID门锁制作-原理,接线图,代码
    81
  • 05
    世界上有没有奥特曼,世界上有奥特曼吗?
    81
  • 06
    智慧农业包括哪些智慧设备呢?通常会遇到哪些问题?智慧农业,作为农业中的智慧经济形态,是现代科学技术与农业种植深度融合的产物。 它通过将物联网、云计算、大数据、人工智能等现代信息技术集成应用于...最爱生椰西瓜7月8日PerfTag.t("ce7")PerfTag.t("cs8")全国农服大会透露智慧农业新动向 机器人干农活 农田里种数据
    72
  • 07
    rfid应用在哪些领域,在日常生活中,我们知道哪些地方是应用到RFID技术的?
    71
  • 08
    智慧城市的五大内容,ST峡创:智慧城市业务涵盖规划、设计、咨询、工程建设、集成和运营...
    68
  • 09
    智能硬件需要哪些技术,温度传感器的工作过程及检测方法
    65
  • 10
    中国仓储物流发展现状,京东物流“绿起来”:物流车转向电动化,技术、园区多路径减碳
    64
  • 11
    物联网有什么作用?物联网起源的意义和价值?
    63
  • 12
    网络边缘计算有哪些部署形态,边缘智能——深度学习和边缘计算
    59
  • 13
    马上消费金融的“慧养鸡”智慧养殖系统是怎么样的?有什么优势?物联网畜禽养殖智能控制系统原理
    58
  • 14
    有没有朋友了解,海康威视的井盖智能监测终端有什么功能?国网天津电力智能井盖实现实时数据采集
    56
  • 15
    小方智能遥控器怎么语音控制,银川小米智能家居体验馆
    55
相关广告
广告图
联系方式 微信
引擎网址:
百度
雅虎
360
谷歌
必应
本站导航:
首页
找供应商
找采购商
找企业
找产品
论坛
站点地图
友情链接:
太平洋
中关村
阿里巴巴
凤凰
新浪
腾讯
网易
搜狐
百度
交换链接:
免费获客网站、免费获客平台、免费产品获客【风起获客】
粤ICP备2024275337号-1 地址:广州市中山大道西1344号神秘花园1F1002 24小时服务热线:15999978052 联系QQ:1258690818 隐私条款
广州风起网络科技有限公司 Copyright © 2020 - 2025