【问题标题】:How to Read Plain Text on RFID Card with Raspberry Pi如何使用 Raspberry Pi 读取 RFID 卡上的纯文本
【发布时间】:2021-01-20 10:57:04
【问题描述】:

我正在使用 RFID 阅读器 MFRC522 NFC 阅读器套件,并希望读取并打印底部下方所示的标签记录编号。我要打印的是记录 0 部分。我无法理解它只读取记录在相关卡上的这个标签以外的一些数字。

我的代码如下:

from PyQt5.QtCore import QThread, pyqtSignal
import RPi.GPIO as GPIO
from mfrc522 import SimpleMFRC522

import time
reader = SimpleMFRC522()

class RFIDThread(QThread):
    change_text_signal = pyqtSignal(list)

    def __init__(self):
        super().__init__()
        self._run_flag = True

    def run(self):
        try:
            while (True):
                id, text = reader.read()
                self.change_text_signal.emit([id, text])
                time.sleep(2)
        finally:
            GPIO.cleanup()

    def stop(self):
        """Sets run flag to False and waits for thread to finish"""
        self._run_flag = False
        self.wait()

我需要知道如何读取我需要的值。有谁知道我该怎么做?

【问题讨论】:

    标签: python raspberry-pi nfc rfid


    【解决方案1】:

    这是一个相当大的话题,所以这个问题确实需要更多的关注。

    但要开始正确的方向,您需要了解您使用的卡(看起来像 Mifare Classic)如何存储它的数据,因此请阅读它的数据表 https://www.nxp.com/docs/en/data-sheet/MF1S70YYX_V1.pdf,尤其是该文档的第 9 节,其中详细说明了卡片理解的命令。

    那么您需要了解Ndef 消息是如何存储在 Mifare Classic 卡上的,详情请参阅https://www.nxp.com/docs/en/application-note/AN1304.pdf

    还显示的数据格式是Ndef,因此您需要了解它是如何组织的。记录的高级结构在 NDEF 规范中定义,地址为 https://github.com/haldean/ndef/blob/master/docs/NFCForum-TS-NDEF_1.0.pdf
    文本记录格式定义在https://github.com/haldean/ndef/blob/master/docs/NFCForum-TS-RTD_Text_1.0.pdf

    您应该可以为此使用库 https://pypi.org/project/ndef/

    您还需要知道如何向读卡器发送和接收数据,这由您使用的库完成。

    所以,如果你知道看看你的例子要求图书馆做什么。这是读取 UID,然后使用默认密钥进行身份验证,并读取几个硬编码的块地址。

    您需要做的是读取 UID,然后使用正确的密钥进行身份验证,然后读取正确的块以获取整个 Ndef 消息,然后对其进行解析。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-21
      • 1970-01-01
      • 2019-11-15
      • 2019-07-17
      • 2017-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多