使用 ASCII 编码与 FM-503 RFID 阅读器通信

问题描述 投票:0回答:4

我收到了带有 UHF Ant 的 FM-503。我可以通过 pyserial 连接。我试图向读者发送命令,起初我只想做一些基本的事情,这样我就可以更好地理解 python 中的通信。我正在构建一个 RFID 阅读器,可以绑在我们房车停车场的高尔夫球车上。

使用带有 Python3 的 Windows PC,在 Sublime 中编辑。

我不是高级程序员,但我决心学习。我试图通过命令来获取固件版本。根据阅读器文档,它使用 ASCII 格式。命令应该是 V.

这是我目前所拥有的。

'''
#First attempt to connect to FM350 through python
import serial
import time

#configure port
ser = serial.Serial(
    port ='COM12', 
    baudrate = 38400,
    timeout = 1,
    parity = serial.PARITY_NONE,
    stopbits = serial.STOPBITS_ONE,
    bytesize =  serial.EIGHTBITS
    )

 
while 1:
    y = ser.read(ser.inWaiting())
    time.sleep(0.01)
    print(y)
    ser.write(b'<LF>V<CR>')
    '''

下面是python3吐出来的内容

--snip--
b''
b'\nX\r\n'
b''
b''
b''
b''
--snip--

根据文档 'X' = none command match,请看下图:

我认为错误的地方:

我没有正确编码,无法向读者发送正确的命令。

非常感谢任何建议或研究地点。

encoding ascii pyserial rfid
4个回答
1
投票

正确的字节只是

0x56 0x0D
,它将返回固件版本,例如
0x0A 0x58 0x0D 0x0A


0
投票

线

ser.write(b'<LF>V<CR>')
应该修改成

ser.write(serial.to_bytes([0x0A 0x56 0x0D])')
.


0
投票

你让你的代码工作了吗?我将 FM-503 用于我正在进行的几个项目,并最终在堆栈中寻找有关 RSSI 读数的信息。

无论如何,我的 git 上有一个 python 代码运行良好,读取标签并将 EPC 和时间戳记录到 csv 中,如果允许我链接,请告诉我一些设置选项。

否则你是正确的,编码是关闭的

ser.write(b'<LF>V<CR>')
应该是
ser.write(b'\nV\r')

所以如果你的命令看起来像这样

ser.write(b'\nR2,0,6\r')
返回将是你的 RFID 标签的 TID,如果你把 TID 放入 gs1.org 的 TID 解码器,你可以得到你的制造商名称然后你可以搜索数据表标签,以便您知道用户内存的大小(如果存在)。


0
投票

我正在使用带Arduino UNO的FM-503,读取标签信息的代码应该是什么 对于 Phyton,你说 ser.write(serial.to_bytes([0x0A 0x56 0x0D])')

© www.soinside.com 2019 - 2024. All rights reserved.