web-dev-qa-db-ja.com

arduinoを使用したUbuntu Gnome 16.04画面ロックの制御

私はラップトップ(Ubuntu-gnome 16.04がインストールされている)でarduinoを使用して、RFIDモジュールを使用して画面ロックを制御しようとしています(画面ロック/ロック解除はRFIDカードによって制御されます)

この特定のケースでは、arduinoで何らかのアクション(RFIDカードのスワイプ)をトリガーし、次のタスクを実行できるようにする必要があります。

  1. 画面をロックします。
  2. ロックされた画面のロックを解除します(明らかにパスワードを要求しません)。

タスク番号2を完了させたい。

2
pokemon

方法を考え出した。

pythonバックグラウンドで実行中のスクリプトを保持し、特定のシリアルポートに接続するためにpythonでserialライブラリを使用します。今すぐ_serial write_ arduinoで目的のアクションが実行されるたびにarduinoからのデータ。pythonスクリプトでシリアルに書き込まれた値を読み取り、その値に基づいてシステムをロックおよびロック解除するシェルコマンドを実行します。次のように:

_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')
_

ArduinoのSerial.write()関数を使用して、要件に基づいてシリアルに_'l'_または_'u'_を記述します(私の場合のように、RFIDスワイプ)。

ハッピーハッキング:-)

2
pokemon