Arduino - Logout Keyboard
Contoh ini menggunakan pustaka Keyboard untuk mengeluarkan Anda dari sesi pengguna di komputer Anda saat pin 2 pada ARDUINO UNO ditarik ke ground. Sketsa tersebut mensimulasikan penekanan tombol secara berurutan dari dua atau tiga tombol secara bersamaan dan setelah jeda singkat, tombol akan melepaskannya.
Warning - Saat Anda menggunakan Keyboard.print()perintah, Arduino mengambil alih keyboard komputer Anda. Untuk memastikan Anda tidak kehilangan kendali atas komputer Anda saat menjalankan sketsa dengan fungsi ini, siapkan sistem kontrol yang andal sebelum Anda memanggil Keyboard.print (). Sketsa ini dirancang untuk hanya mengirim perintah Keyboard setelah pin ditarik ke tanah.
Komponen Diperlukan
Anda akan membutuhkan komponen berikut -
- 1 × Breadboard
- 1 × Arduino Leonardo, Micro, atau papan Due
- 1 × tombol tekan
- 1 × Jumper
Prosedur
Ikuti diagram sirkuit dan sambungkan komponen pada papan tempat memotong roti seperti yang ditunjukkan pada gambar di bawah.
Sketsa
Buka software Arduino IDE di komputer Anda. Pengkodean dalam bahasa Arduino akan mengontrol sirkuit Anda. Buka File sketsa baru dengan mengklik Baru.
Untuk contoh ini, Anda perlu menggunakan Arduino IDE 1.6.7
Note- Anda harus menyertakan perpustakaan keyboard di file perpustakaan Arduino Anda. Salin dan tempel file pustaka keypad di dalam file dengan pustaka nama (disorot) seperti yang ditunjukkan pada tangkapan layar berikut.
Kode Arduino
/*
Keyboard logout
This sketch demonstrates the Keyboard library.
When you connect pin 2 to ground, it performs a logout.
It uses keyboard combinations to do this, as follows:
On Windows, CTRL-ALT-DEL followed by ALT-l
On Ubuntu, CTRL-ALT-DEL, and ENTER
On OSX, CMD-SHIFT-q
To wake: Spacebar.
Circuit:
* Arduino Leonardo or Micro
* wire to connect D2 to ground.
*/
#define OSX 0
#define WINDOWS 1
#define UBUNTU 2
#include "Keyboard.h"
// change this to match your platform:
int platform = WINDOWS;
void setup() {
// make pin 2 an input and turn on the
// pullup resistor so it goes high unless
// connected to ground:
pinMode(2, INPUT_PULLUP);
Keyboard.begin();
}
void loop() {
while (digitalRead(2) == HIGH) {
// do nothing until pin 2 goes low
delay(500);
}
delay(1000);
switch (platform) {
case OSX:
Keyboard.press(KEY_LEFT_GUI);
// Shift-Q logs out:
Keyboard.press(KEY_LEFT_SHIFT);
Keyboard.press('Q');
delay(100);
// enter:
Keyboard.write(KEY_RETURN);
break;
case WINDOWS:
// CTRL-ALT-DEL:
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_DELETE);
delay(100);
Keyboard.releaseAll();
//ALT-l:
delay(2000);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press('l');
Keyboard.releaseAll();
break;
case UBUNTU:
// CTRL-ALT-DEL:
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_DELETE);
delay(1000);
Keyboard.releaseAll();
// Enter to confirm logout:
Keyboard.write(KEY_RETURN);
break;
}
// do nothing:
while (true);
}
Keyboard.releaseAll();
// enter:
Keyboard.write(KEY_RETURN);
break;
case WINDOWS:
// CTRL-ALT-DEL:
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_DELETE);
delay(100);
Keyboard.releaseAll();
//ALT-l:
delay(2000);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press('l');
Keyboard.releaseAll();
break;
case UBUNTU:
// CTRL-ALT-DEL:
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_DELETE);
delay(1000);
Keyboard.releaseAll();
// Enter to confirm logout:
Keyboard.write(KEY_RETURN);
break;
}
// do nothing:
while (true);
}
Kode untuk Dicatat
Sebelum Anda mengunggah program ke papan Anda, pastikan Anda menetapkan OS yang benar yang Anda gunakan saat ini ke variabel platform.
Saat sketsa sedang berjalan, menekan tombol akan menghubungkan pin 2 ke tanah dan papan akan mengirimkan urutan logout ke PC yang terhubung dengan USB.
Hasil
Saat Anda menghubungkan pin 2 ke tanah, ini melakukan operasi logout.
Ini menggunakan kombinasi keyboard berikut untuk logout -
Di Windows, CTRL-ALT-DEL diikuti oleh ALT-l
Di Ubuntu, CTRL-ALT-DEL, dan ENTER
Di OSX, CMD-SHIFT-q