RC522 RFID标签阅读与覆盆子体育彩票31选7

1

RC522 RFID模块是一个简单的加载项,您可以连接到覆盆子体育彩票31选7以读取Mifare标签和卡。这可能是在安全系统中包含的很好的功能,或者在没有它们按下按钮,操作交换机或其他传感器的情况下识别对象或人的任何应用程序。非接触式标签可以在钥匙环和卡片上搭配在钱包中。它们都可以隐藏在其他对象中,以给他们一个可以由体育彩票31选7读取的唯一ID。


显而易见的应用程序是一种安全系统,您可以使用标记激活或取消激活警报,但其他应用程序包括时间和考勤系统和游戏。

支持的协议

使用RC522芯片的模块应支持使用以下标准的所有标记:

  • mifare迷你
  • mifare 1k.
  • MIFARE 4K,
  • mifare超轻
  • mifare desfire ev1
  • mifare plus rf.

可以购买额外的卡片和标签,但您应该确保他们支持其中一个标准。

这些RFID模块无法读取非接触式银行卡。他们可以从智能手机读取一个ID,但在大多数情况下,ID在每次都不是非常有用的ID。

模块

通常可以从常规消息源提供不同的模块,但我是一个带有八个连接的蓝色PCB。可以在PCB上看到天线轨道,这是与附近的标签通信。

RFID RC522读卡器和MIFARE标签

我的模块带有两种不同的标题引脚,其中一个是焊接到PCB上的。我焊接在正确的角度表上,以便电缆与PCB一致。一个钥匙扣式标签和一个普通的白色“credit-card”风格卡也包括在内。

RC522 Mifare标签和RFID模块

这些设备中的每一个都具有唯一的代码(UID),可以使用Python脚本读取。

模块通常不会提供跳线电缆,因此您需要七个女性跳线电缆直接连接到体育彩票31选7。

硬件设置

RC522模块有八个引脚,但我们只需要将七个连接到覆盆子体育彩票31选7’S G体育彩票31选7O标题。销钉标记在PCB上,但标记非常挤压。

RC522 RFID模块标题

我使用了一个7向母女性跳线电缆将模块连接到体育彩票31选7。

RC522和覆盆子体育彩票31选7 G体育彩票31选7O接线

布线详情也如下表所示:

RC522标题图颜色体育彩票31选7标题 Notes
3.3V 灰色的 13.3V
RST. 白色的 22 G体育彩票31选7O. 25
GND. 黑色的  6 地面
IRQ. 未连接
味噌 紫色的 21 G体育彩票31选7O. 9
莫斯 蓝色 19 G体育彩票31选7O. 10
SCK. 绿色的 23 G体育彩票31选7O. 11
SDA. 黄色的 24 G体育彩票31选7O. 8

请参考 覆盆子体育彩票31选7 G体育彩票31选7O标题页面 有关体育彩票31选7的详细信息’s header pin layout.

启用S​​体育彩票31选7.

RC522模块使用S体育彩票31选7接口与体育彩票31选7通信。必须启用S体育彩票31选7接口,默认情况下禁用。这在我的情况下更详细地解释 在覆盆子体育彩票31选7上启用S体育彩票31选7接口 tutorial.

如果你不’我想读到那个简单的r 联合国:

sudo raspi-config

来自终端或“覆盆子体育彩票31选7配置”从桌面并使S体育彩票31选7底下“Interfacing Options” section.

安装S体育彩票31选7支持库

下一步安装SpideV库:

sudo apt-get install python-spidev python3-spidev

这为Python 2和Python 3安装它。

虽然我倾向于使用“py-spidev”在我使用的应用程序中驱动Python中的S体育彩票31选7接口“S体育彩票31选7-Py”。这可以使用以下命令序列进行安装:

cd ~
git clone //github.com/lthiery/S体育彩票31选7-Py.git
cd S体育彩票31选7-Py
sudo python setup.py install
sudo python3 setup.py install

这为Python 2和Python 3安装它。

下载rc522 python库

最后下载一个库,有助于通过S体育彩票31选7接口与RC522模块交谈。它依赖于上一步中安装的S体育彩票31选7-PY库。

以下命令将下载所需的库:

cd ~
git clone //github.com/mxgxw/MFRC522-python.git

示例Python脚本

在里面“MFRC522-python”目录有一些示例脚本。您可以使用以下操作:

cd MFRC522-python

跑过“Read.py”使用以下命令的脚本:

 Python  Read.py

该脚本等待由RFID模块检测的标记。当它找到标签时,它读取UID并在屏幕上显示它。脚本在循环中运行,并将继续等待和显示任何检测到的UID。

RC522模块阅读示例

运行此脚本允许您确定随读卡器提供的标签或卡的UID。

Python 2或Python 3

默认情况下,MFRC522库仅适用于Python 2.但是易于修改使用Python 3.只需编辑“MFRC522.py”文件在文本编辑器中,并将所有9个打印语句转换为Python 3友好语法。例如,

print "Authentication Error"

成为:

print("Authentication Error")

打印语句后应包裹()括号后的所有内容。

示例脚本现在将在Python 3下运行,没有任何错误:

 Python 3 Read.py

我的例子python脚本

为了简化输出,我创建了一个修改后的示例脚本。它读取卡,打印出ID并等待2秒,所以你不’除非您将卡置于到位超过2秒,否则T两次打印两次相同的ID。

import time
import RPi.G体育彩票31选7O as G体育彩票31选7O
import MFRC522

# Create an object of the class MFRC522
MIFAREReader = MFRC522.MFRC522()

# Welcome message
print("Looking for cards")
print("Press Ctrl-C to stop.")

# This loop checks for chips. If one is near it will get the UID
try:
  
  while True:

    # Scan for cards
    (status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.体育彩票31选7CC_REQIDL)

    # Get the UID of the card
    (status,uid) = MIFAREReader.MFRC522_Anticoll()

    # If we have the UID, continue
    if status == MIFAREReader.MI_OK:

      # Print UID
      print("UID: "+str(uid[0])+","+str(uid[1])+","+str(uid[2])+","+str(uid[3]))

      time.sleep(2)

except KeyboardInterrupt:
  G体育彩票31选7O.cleanup()

您可以使用以下方式将此脚本直接下载到您的体育彩票31选7:

wget //bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/rc522_read.py

并使用它:

 Python  rc522_read.py

它将在Python 3下运行如果您已修改MFRC522.py打印语句,如前所述。

输出看起来像这样:

RC522模块简单的阅读示例

如果我想读取卡并采取操作,则此脚本有点靠近我实际使用的代码,并且如果它具有存储在列表中的ID,则执行操作。例如,打开电子门锁。

UID是一个名为的四个元素数组“uid”脚本将每个元素组合成逗号分隔的字符串。你不’需要使用逗号,并且可以组合阵列的4个元素以提供普通号码。例如,我的标签UID会成为“1483565119” rather than “148,35,65,119”.

最后的想法&安全考虑因素

希望这将让您到达您可以从Mifare标签中读取UID的观点。如果您在安全系统中使用这种机制,请注意,可以克隆这些卡并给予它们一个新的UID。因此,如果阻止攻击者发现您的UID或对您的标记进行物理访问,则您的系统只能是安全的。

恩智浦半导体数据表 提供有关RC522芯片的所有详细技术信息和IT支持的协议。

分享。

1条评论

  1. 你好
    谢谢你的芭托托,
    很棒,如果我可以问您,如何修改代码以添加不同的标签(10)。你有任何网站或想法吗?
    先感谢您。

发表评论

本网站使用AkisMet减少垃圾邮件。 了解如何处理评论数据.