我正在尝试使用python whit这个模块从RFID标签读取和写入数据: https://es.aliexpress.com/item/32573423210.html 我可以成功连接串行串口,但是我不知道如何读取任何标签,因为pr9200(我正在使用的阅读器)的数据表使用以下代码: Image for pr9200 operation就像一个原始数据包,只有十六进制地址,我需要将其发送到模块才能正常工作
我在python上的代码是这样的:
import serial
ser = serial.Serial(port = "COM27", baudrate=115200, bytesize=8, parity='N', stopbits=1)
while(ser.is_open == True):
rfidtag = ''
incomingByte = ser.read(21)
print(incomingByte)
for i in incomingByte:
rfidtag = rfidtag + hex(i)
答案 0 :(得分:0)
一些注释可帮助您开始编码:
-您需要做的是向设备发送命令,要求其开始以自动模式发送读数。为此,您需要使用ser.write(command)
。您可以找到一个好的模板here。
-要准备命令,您只需要获取原始字节(您提到的那些十六进制值)并将它们放在一起,例如bytearray
。
-剩下的唯一较小障碍是计算CRC。因此,这里有一些不错的方法,只需搜索CRC 16 CCITT。
-请注意,写入后您无法立即开始等待读取,您必须首先等待设备确认命令。提示:读取9个字节。
-最后,对每个标签要接收的字节进行新计数。我认为他们是22岁,而不是21岁。
答案 1 :(得分:0)
您可以为此使用 pyembedded
python 库,它可以为您提供标签 ID。
from pyembedded.rfid_module.rfid import RFID
rfid = RFID(port='COM3', baud_rate=9600)
print(rfid.get_id())