为了完成一项学校作业,我正在制作一个“智能冰箱”,为了在冰箱中注册产品,我使用了MCR12-USB条形码扫描仪:https://www.adafruit.com/product/1203。连接到一个树莓派模型B3+。
我想把条形码放在一个变量中,以便通过UPC api进行查找。 任何获取条形码的方法都可以。
我尝试使用输入字段(将条形码设置为键盘;hidraw0)获取条形码。 但是这种方法的问题是光标不会自动位于输入字段中。
现在,我正在尝试通过串行接口(将条形码设置为RS232)从读取器获取条形码,但我无法使其正常工作,我真的不知道要打开哪个端口,我已经尝试了serial0、serial1、ttyAMA0和ttyS0,但在所有端口上都只得到一个空行。
我期望得到的输出是条形码,但我只得到了一行空白。翻译后的内容为:
我想把条形码放在一个变量中,以便通过UPC api进行查找。 任何获取条形码的方法都可以。
我尝试使用输入字段(将条形码设置为键盘;hidraw0)获取条形码。 但是这种方法的问题是光标不会自动位于输入字段中。
现在,我正在尝试通过串行接口(将条形码设置为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")
我期望得到的输出是条形码,但我只得到了一行空白。翻译后的内容为:
我希望能够获得条形码的输出,但是实际上却只得到了一行空白。
url
。在GET请求之后,只需打印response
。还有,你看到任何异常吗? - undefined当扫描条形码时,原始数据会被解码、进行奇偶校验,并以键盘输入的方式输出。
你尝试过不使用串口,以与读取键盘输入相同的方式读取条形码吗?这只是一个猜测,但通常答案都隐藏在文档中。 - undefined@susenj 链接是:https://api.upcdatabase.org/product/b''/AC939DFDCBCA58BD57DF47EF508DE3B8 响应是:<Response [400]>
b'' { "error": true, "message": "错误请求。您尝试输入的代码不包含所有数字。", "status": 400 }
- undefined