RFID认证标签匹配验证代码未正常工作问题求助
问题分析与修复方案
代码核心问题
- 顶层代码误用
return:Python脚本的全局代码块不能使用return语句,这会直接触发语法错误,需替换为print(auth0)。 - 未处理标签文本冗余空白:RFID标签读取的文本通常会自带填充空格或换行符,直接用
==比较会因为空白不匹配导致判断失效,必须用strip()去除首尾空白后再对比。 - 变量命名逻辑混淆:
auth1存储的是认证通过提示,但实际应该是需要匹配的标签目标文本,命名调整后更易理解。
修改后的可运行代码
#!/usr/bin/env python import RPi.GPIO as GPIO from mfrc522 import SimpleMFRC522 reader = SimpleMFRC522() denied_msg = 'Access Denied' allowed_tag_text = 'Access Granted' try: id, text = reader.read() print(f"标签ID: {id}") # 去除文本首尾空白后做匹配判断 if text.strip() == allowed_tag_text: print(allowed_tag_text) else: print(denied_msg) finally: GPIO.cleanup()
额外验证要点
- 确认写入RFID标签的内容和代码中
allowed_tag_text完全一致,包括大小写、空格等细节。 - 若写入标签时使用
reader.write(allowed_tag_text),读取的文本会被自动填充到固定长度(通常16字符),strip()能有效去除这些填充空白。
内容的提问来源于stack exchange,提问作者Samv50
相关产品推荐
相关产品推荐

