如何使用MFRC522检测已删除的卡

时间:2019-01-25 17:23:19

标签: python raspberry-pi rfid

我正在研究需要读取NFC标签ID,然后根据该ID执行一些操作的项目。到目前为止,我能够读取一次(带有标签的对象始终在阅读器上),但是当对象被取下时,我还需要获得一些反馈。我将MFRC522阅读器与RPi和SimpleMFRC522库一起使用。

我曾尝试在其中打乱代码,但没有成功。您有什么方向/想法吗?我有以下代码:

reader = SimpleMFRC522.SimpleMFRC522()
buffor = 0

while continue_reading:
    try:
        id, text = reader.read()
        if(buffor != id):
            print id
            udp_send(id) 
    buffor = id
    finally:
            time.sleep(0.5)

1 个答案:

答案 0 :(得分:1)

根据您提供的链接上的代码,它看起来像reader.read方法块,而没有要读取的ID。而是继续尝试读取,直到看到ID为止。

但是,还有另一种名为reader.read_no_block的方法,如果没有要读取的ID,它似乎会返回None,因此您可以改用它。

reader = SimpleMFRC522.SimpleMFRC522()
last_id = None

def exit_event():
    print('tag has left the building')

while continue_reading:
    id, text = reader.read_no_block()
    if id and id != last_id:
        # process new tag here
        last_id = id
        continue
    elif not id and last_id:
        # if there's no id to read, and last_id is not None,
        # then a tag has left the reader
        exit_event()
        last_id = None

您可能需要进行一些反跳操作,以防止在读者错误地错过标签读取时exit_event不会被错误调用。