Controlando o bloqueio de tela do Ubuntu Gnome 16.04 com arduino

2

Estou tentando usar o arduino com meu laptop (Ubuntu-gnome 16.04 instalado) para controlar o bloqueio de tela usando o módulo RFID (o bloqueio de tela / desbloqueio é controlado por um cartão RFID)

Aqui, neste caso específico, eu disparo em alguma ação no arduino (passando o cartão RFID), que deve ser capaz de executar as seguintes tarefas:

  1. Bloqueie a tela.
  2. Desbloqueie a tela bloqueada (obviamente sem solicitar senha).

Eu quero que a tarefa número 2 seja concluída.

    
por pokemon 07.07.2016 / 23:00

1 resposta

2

Descobriu uma saída.

Mantenha um script python sendo executado em segundo plano e use a biblioteca serial em python para conectar-se a uma porta serial específica. Agora serial write os dados do arduino sempre que a ação desejada for executada no arduino. Leia o valor escrito em serial no script python e, com base nesse valor, execute o comando shell para bloquear e desbloquear o sistema, que é o seguinte:

gnome-screensaver-command -l (para bloquear)

gnome-screensaver-command -d (para desbloquear)

Código 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')

Agora, usando a função Serial.write() do arduino, escreva 'l' ou 'u' na série com base em suas necessidades (RFID Passe como no meu caso).

Happy Hacking: -)

    
por pokemon 07.07.2016 / 23:14