我正在尝试使用 arduino 和我的笔记本电脑(安装了 Ubuntu-gnome 16.04)通过 RFID 模块控制屏幕锁定(屏幕锁定/解锁由 RFID 卡控制)
在这种特殊情况下,我触发了 arduino 中的一些动作(刷 RFID 卡),它应该能够执行以下任务:
- 锁定屏幕。
- 解锁锁定的屏幕(显然不需要输入密码)。
我想完成第二项任务。
答案1
找到了解决办法。
让 python 脚本在后台运行,并使用serial
python 中的库连接到特定的串行端口。现在,serial write
每当在 arduino 中执行所需的操作时,都会从 arduino 获取数据。读取 python 脚本中写入串行的值,并根据该值执行 shell 命令以锁定和解锁系统,如下所示:
gnome-screensaver-command -l
(锁定)
gnome-screensaver-command -d
(开锁)
Python代码:
import serial, os
port_name = '/dev/ttyACM0' # Change accordingly
arduino = serial.Serial(port_name, 9600)
while True:
word = str(arduino.readline())
if word == 'l': # Lock the screen
os.system('gnome-screensaver-command -l')
elif word == 'u': # Unlock the screen
os.system('gnome-screensaver-command -d')
现在使用Serial.write()
arduino 的功能,根据您的要求进行写入'l'
或'u'
在串行上进行写入(在我的情况下是 RFID Swipe)。
祝你黑客愉快 :-)