对于学校作业,我正在制作一个“智能冰箱”,要在冰箱中注册产品,我使用MCR12-USB条形码扫描仪:https://www.adafruit.com/product/1203。 连接到B3+型树莓皮
我想把条形码放入一个变量中,用upcapi查找。 任何获取条形码的方法都是好的。在
我试着用一个输入字段来获取条形码(条形码设置为键盘;hidraw0)。 但是,tis方法的问题是光标不是自动出现在inputfield中的。在
现在我试图通过串行接口(条形码设置为RS232)从读卡器获取条形码,但我无法使其正常工作,我真的不知道该打开哪个端口,我尝试过serial0、serial1、ttyAMA0和ttyS0,但在所有这些设备上,我只得到一个空行。在
import requests
import serial
def barcode():
with serial.Serial('/dev/serial0', 9600, timeout=1) as port:
while True:
print(port.name)
line = port.readline()
print(line)
url = "https://api.upcdatabase.org/product/%s/%s" % (line, api_key)
headers = {
'cache-control': "no-cache",
}
response = requests.request("GET", url, headers=headers)
print("-----" * 5)
print(line)
print(json.dumps(response.json(), indent=2))
print("-----" * 5 + "\n")
我希望输出的是条形码,但我只得到一个空行
默认情况下,Rpi将您的设备视为键盘。如果你想用USB作为串行端口,你必须改变配置。在
请执行以下步骤:
-在一个新的终端上写:
xinput list
并找到条形码阅读器的ID(一个数字,ID=3或10,您应该通过名称找到它)-然后写下:
xinput test xx
其中xx是上一步得到的数字-现在扫描手册第3页顶部的条形码,直到终端上出现
02501
-下一步扫描页面中间的条形码12,直到终端上出现
000603
现在断开并重新连接您的读卡器,当您执行
ls /dev/tty*
操作时,应该会看到/dev/ttyUSB0
。这意味着您的设备已准备好用作虚拟串行端口,您的代码现在应该可以工作了。在相关问题 更多 >
编程相关推荐