亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino RFID 锁教程

组件和用品

Arduino UNO
× 1
RFID 阅读器(通用)
× 1

应用和在线服务

Arduino IDE

关于这个项目

亲爱的朋友,欢迎来到另一个教程。这是来自 edu8s.tv 的 Nick,今天我们将学习如何将这个 RFID 阅读器与 Arduino 结合使用,以构建一个简单的锁定系统。

我们将首次在 Arduino 中使用 RFID 标签。我构建了一个简单的项目,它读取我们放置在靠近阅读器的每个 RFID 标签的唯一 ID (UID) 并将其显示在这个 OLED 显示器上。如果标签的 UID 等于存储在 Arduino 内存中的预定义值,那么在显示中我们将看到“已解锁”消息。如果卡的唯一 ID 不等于预定义值,则不会出现解锁消息。是不是很酷?

有很多内容需要介绍,让我们开始吧!

第 1 步:获取所有零件

构建这个项目所需的部分是:

  • 一个 Arduino Uno ▶ https://store.arduino.cc/arduino-uno-rev3
  • RFID 阅读器 ▶ http://educ8s.tv/part/RFID
  • OLED 显示屏 ▶ http://edu8s.tv/part/OLED096
  • 一个小面包板 ▶ http://educ8s.tv/part/SmallBreadboard
  • 一些电线 ▶ http://edu8s.tv/part/Wires

可选配件:

  • 移动电源 ▶ http://edu8s.tv/part/Powerbank

该项目的总成本约为 15 美元。

第 2 步:RC522 RFID 阅读器

每个 RFID 标签内部都有一个小芯片。如果我将手电筒放在这张 RFID 卡下,您可以看到小芯片和围绕它的线圈。该芯片没有电池以获得电源。它使用这个大线圈以无线方式从阅读器(这个设备)接收电源。读卡器可以从最远20mm的距离读取这样的RFID卡!

同样的芯片也存在于钥匙扣RFID标签中。

每个 RFID 标签都有一个唯一的编号来识别它。这就是我们在 OLED 显示屏上显示的 UID。除了这个 UID 之外,每个标签都可以存储数据。在这种类型的卡中,我们可以存储多达 1K 的数据!是不是令人印象深刻?我们今天不会使用此功能,但会在以后的教程中使用。今天,我们感兴趣的只是通过 UID 识别特定卡。 RFID阅读器和这两张RFID卡的成本约为4美元。

第 3 步:OLED 显示

这是与 Arduino 一起使用的非常好的显示器。它是 OLED 显示器,这意味着它具有低功耗。该显示器的功耗约为 10-20 mA,具体取决于点亮的像素数。

显示器的分辨率为 128×64 像素,尺寸很小。有两种显示方式。其中一个是单色的,另一个像我用的那样可以显示两种颜色,黄色和蓝色。屏幕上部只能显示黄色,下部只能显示蓝色。

这款 OLED 显示屏非常明亮,并且拥有强大的库支持。 Adafruit 为这个展示开发了一个非常好的库。除此之外,显示器使用 I2C 接口,因此与 Arduino 的连接非常容易。除了 Vcc 和 GND 之外,您只需要连接两条线。如果您是 Arduino 的新手,并且想要一个便宜且易于使用的显示器来与您的项目一起使用,请从显示器开始。这是将显示添加到 Arduino 项目的最简单方法。我已准备好有关如何使用此显示器的详细教程,并附在本教程中。

第 4 步:连接所有部件

与 Arduino Uno 板的连接非常简单。首先,让我们连接阅读器和显示器的电源。

请注意,RFID 阅读器必须连接到 Arduino Uno 的 3.3V 输出端,否则会损坏。 由于显示器也可以在 3.3V 下工作,我们将两个模块的 Vcc 连接到面包板的正轨。然后将该轨连接到 Arduino Uno 的 3.3V 输出。接下来,我们将两个 GND 连接到面包板 GND 导轨。然后我们将面包板的 GND 轨连接到 Arduino GND。

OLED 显示屏 - Arduino

Vcc ▶ 3.3V

地线 ▶ 地线

SCL ▶ 模拟引脚 5

SDA ▶ 模拟引脚

RFID 阅读器 - Arduino

RST ▶ 数字引脚 9

IRQ ▶ 未连接

MISO ▶ 数字引脚 12

MOSI ▶ 数字引脚 11

SCK ▶ 数字引脚 13

SDA ▶ 数字引脚 10

RFID 阅读器模块使用 SPI 接口与 Arduino 通信。所以我们将使用 Arduino UNO 的硬件 SPI 引脚。 RST 引脚连接到数字引脚 9。IRQ 引脚保持未连接状态。 MISO 引脚连接到数字引脚 12。MOSI 引脚连接到数字引脚 11。SCK 引脚连接到数字引脚 13,最后,SDA 引脚连接到数字引脚 10。就是这样。 RFID 阅读器已连接。我们现在必须使用 I2C 接口将 OLED 显示器与 Arduino 连接。因此,显示器的 SCL 引脚连接到模拟引脚 5,显示器的 SDA 引脚连接到模拟引脚 4。如果我们现在启动项目并将 RFID 卡靠近阅读器,我们可以看到项目运行正常!现在是时候看看项目的代码了。

第五步:项目代码

为了编译项目代码,我们需要包含一些库。首先,我们需要MFRC522 Rfid库。为了安装它,去 Sketch -> Include Libraries -> Manage libraries。搜索 MFRC522 并安装它。我们还需要 Adafruit SSD1306 库和 Adafruit GFX 库用于显示。使用相同的过程安装这两个库。 Adafruit SSD1306 库需要一个小的修改。转到 Arduino -> Libraries 文件夹,打开 Adafruit SSD1306 文件夹并编辑 Adafruit_SSD1306.h 库。注释第 70 行和取消注释第 69 行。我们的显示分辨率为 128x64,这就是我们在这里定义的。现在我们可以快速浏览一下代码了。

首先,我们声明我们希望 Arduino 识别的 RFID 标签的值。它是一个整数数组。

int code[] ={69,141,8,136}; //这是存储的UID 

接下来,我们初始化 RFID 阅读器和显示器。

rfid.PCD_Init();display.begin(SSD1306_SWITCHCAPVCC, 0x3C); 

此后,在循环函数中,我们每 100 毫秒检查一次阅读器上的标签。

如果阅读器上有标签,我们会读取其 UID 并将其打印在显示器上。接下来,我们将刚刚读取的标签的 UID 与存储在代码变量中的值进行比较。如果值相同,则显示 UNLOCK 消息,否则不显示此消息。

if(match) { Serial.println("\n我知道这张卡!");打印解锁消息(); }else { Serial.println("\n未知卡"); } 

当然,您可以修改此代码以存储 1 个以上的 UID 值,以便项目识别更多的 RFID 标签。

这只是一个例子。与往常一样,您可以找到本教程附带的项目代码。

RFID.ino

第 6 步:最终想法和改进

正如您所看到的,我们可以以非常低的成本为我们的项目添加 RFID 阅读器。我们可以轻松地与这样的读者一起构建安全系统或构建更多有趣的项目。

我的主要目的是使用这个 RFID 阅读器和许多 RFID 标签为孩子们建立一些互动游戏。在以后的视频中,我们还将尝试从 RFID 标签写入和读取数据。在这一点上,我很想听听您对这款 RFID 读卡器的看法。你打算在你的任何项目中使用它吗?请在下面的评论部分发表任何评论或想法,谢谢!

代码

  • RFID.ino
  • 代码片段 #3
RFID.inoArduino
无预览(仅限下载)。
代码片段 #3纯文本
if(match) { Serial.println("\n我知道这张卡!");打印解锁消息(); }else { Serial.println("\n未知卡"); }

制造工艺

  1. 带有 RC522 的 Arduino RFID 锁 - MIFARE 协议 13.56 Mhz
  2. Arduino 指纹传感器教程
  3. Arduino 教程:迷你钢琴
  4. 使用 RFID 的 DIY 创意
  5. RFID+Relay+RFID 门锁代码 =RFID PC 开关!
  6. HID Prox RFID 到 Arduino
  7. Arduino 以太网 Rfid 读卡器
  8. Windows PC 锁定/解锁使用 RFID
  9. 如何对 Arduino 进行多线程(原线程教程)
  10. Arduino 和 MPU6050 加速度计和陀螺仪教程
  11. Arduino 无刷电机控制教程 |电调 |无刷直流
  12. Arduino教程01:入门