对于我的DIY门禁系统,我在连接到MagStripe读卡器的Raspberry Pi上运行Debian。当刷卡时,读卡器通过类似键盘的方式将来自磁条的数据写在USB端口上。例如,将其插入计算机,打开文本编辑器,然后刷卡,您将看到打印出的数据字符串,就像您使用键盘输入的数据一样。
简单连接图:
Client <--ssh--> Host + card reader
唯一的问题是我在ssh上运行我的Python脚本,它不会直接听到键盘输入。
如何让Python收听来自MagStripe阅读器的键盘事件? (我需要使用键盘记录器吗?PyGame的键盘绑定?)
感谢您的帮助!
答案 0 :(得分:2)
在Linux上,可以通过/ dev / input访问USB键盘。
请参阅:format of /dev/input/event*? - 该问题的答案包括两个用于获取事件的不同Python模块,以及指向更多文档的链接。
要从键码转换为ASCII,请参阅How can I translate Linux keycodes from /dev/input/event* to ASCII in Perl?
您可能需要是root用户,或更改/ dev / input的权限。
答案 1 :(得分:0)
将程序划分为两个部分可能是值得的:一个是在启动时从覆盆子pi启动的服务,默认情况下将从键盘设备(读取器)获取stdin,另一个提供远程访问功能超过ssh。这样您就可以避免直接处理/ dev中的设备。