【发布时间】:2020-06-13 18:42:01
【问题描述】:
我正在按照这两个类似的指南使用我的模块/pi 读取 RFID 数据。
- https://www.lancegrover.com/rfid-rdm6300-em4100-and-raspberry-pi/
- https://behindthesciences.com/electronics/raspberry-pi-rfid-tag-reader/
当我尝试读取串行数据时,我的代码卡住了。具体如下:
PortRF = serial.Serial('/dev/serial0',9600)
read_byte = PortRF.read()
我猜是因为我的接线完全错误
他们建议的接线
在这两个站点之间,他们建议采用以下两种接线设置。我没有矫直机。
我尝试的接线
Python 代码
import serial
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
Tag1 = str('0000000C000C')
Tag2 = str('0000000C080C')
Tag3 = str('0000000C010C')
Tag4 = str('0000000C090C')
Tag5 = str('0000000C0A0C')
Tag6 = str('0000000C0D0C')
GPIO.setup(23,GPIO.OUT)
GPIO.setup(24,GPIO.OUT)
GPIO.output(23,False)
GPIO.output(24,False)
PortRF = serial.Serial('/dev/serial0',9600)
PortRF.reset_input_buffer()
while True:
ID = ""
read_byte = PortRF.read()
if read_byte=="\x02":
for Counter in range(12):
read_byte=PortRF.read()
ID = ID + str(read_byte)
print hex(ord( read_byte))
print ID
if ID == Tag1:
print "White - Ashoka"
GPIO.output(23,True)
GPIO.output(24,False)
PortRF.reset_input_buffer()
time.sleep(5)
GPIO.output(23,False)
elif ID == Tag2:
print "White - Chirutt"
GPIO.output(23,True)
GPIO.output(24,False)
PortRF.reset_input_buffer()
time.sleep(5)
GPIO.output(23,False)
elif ID == Tag3:
print "Red - Vader"
GPIO.output(23,True)
GPIO.output(24,False)
PortRF.reset_input_buffer()
time.sleep(5)
GPIO.output(23,False)
else:
GPIO.output(23,False)
print "Access Denied"
GPIO.output(24,True)
PortRF.reset_input_buffer()
time.sleep(5)
GPIO.output(24,False)
【问题讨论】:
-
您是否在这里发现了其他问题?我正在遵循相同的教程并将所有东西都连接好(使用您丢失的电源线)。代码一直运行到 read_byte = PortRF.read() 然后什么都不做。阅读器亮了绿灯,但不承认任何标签或任何东西。
标签: python raspberry-pi rfid