如何读取python中的条形码?

2024-07-05 14:58:13 发布

您现在位置:Python中文网/ 问答频道 /正文

对于学校作业,我正在制作一个“智能冰箱”,要在冰箱中注册产品,我使用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")

我希望输出的是条形码,但我只得到一个空行


Tags: 方法httpsimporturlportlineserialproduct
1条回答
网友
1楼 · 发布于 2024-07-05 14:58:13

默认情况下,Rpi将您的设备视为键盘。如果你想用USB作为串行端口,你必须改变配置。在

请执行以下步骤:

-在一个新的终端上写:xinput list并找到条形码阅读器的ID(一个数字,ID=3或10,您应该通过名称找到它)

-然后写下:xinput test xx其中xx是上一步得到的数字

-现在扫描手册第3页顶部的条形码,直到终端上出现02501

-下一步扫描页面中间的条形码12,直到终端上出现000603

现在断开并重新连接您的读卡器,当您执行ls /dev/tty*操作时,应该会看到/dev/ttyUSB0。这意味着您的设备已准备好用作虚拟串行端口,您的代码现在应该可以工作了。在

相关问题 更多 >