【发布时间】:2017-09-10 00:45:07
【问题描述】:
我正在做一个项目,我将设置几个 Raspberry Pi 3,每个都有两个条形码扫描仪、两个无源蜂鸣器和两个 Adafruit NeoPixel Ring 灯。
每次扫描条码时,都会发送一个 API 请求以查看条码是否有效。如果条码有效,Adafruit NeoPixel Ring 将呈绿色并在蜂鸣器上播放成功音,如果条码无效,则灯将呈蓝色并在蜂鸣器上播放失败音。
我的问题是:在 Raspberry Pi 上的 Python 中有没有办法检测哪个条形码扫描仪正在发送条形码?我意识到条形码扫描仪是 HID 设备,并且像键盘一样工作,所以我想知道 Python 中是否有一种方法可以将扫描仪区别对待,并且没有 input() 调用来接收扫描仪的输入。
了解传入数据来自哪个条形码扫描仪尤为重要,这样我就可以知道哪个灯变成绿色或蓝色,以及哪个蜂鸣器发出声音。换句话说,如果扫描仪 1 的条形码有效而扫描仪 2 的条形码无效,我希望 NeoPixel Ring 1 为绿色,NeoPixel Ring 2 为蓝色。
就目前而言,我正在考虑使用两个 Arduino 并将每个扫描仪、蜂鸣器和 NeoPixel Ring 连接到它们,然后使用串行通信从每个 Arduino 与 Raspberry Pi 进行通信。
你有什么想法/建议?
提前谢谢你!
【问题讨论】:
-
'Python 将扫描仪区别对待,并且没有 input() 调用来接收扫描仪的输入。'你能澄清一下这是什么意思吗?使用Python读取条形码解释here
-
@NithinVarghese 他想区分多个“键盘”输入。
-
@gre_gor 是对的。我希望能够拥有两个不同的扫描仪——我们称它们为扫描仪 A 和扫描仪 B。除了每个扫描仪,我还有一个 NeoPixel 环和一个无源蜂鸣器,所以响铃 A 和环 B 以及蜂鸣器 A 和蜂鸣器 B。当有人用扫描仪 A 扫描条形码时,我希望铃声 A 亮起,蜂鸣器 B 响起。这涉及将扫描仪视为串行通信设备而不是 USB 人机接口设备。
-
那么我最好的方法是什么?我需要知道哪个扫描仪发送了哪个条形码。
标签: python arduino raspberry-pi raspberry-pi3 serial-communication