Satura rādītājs:
- 1. darbība: sastāvdaļas
- 2. darbība: montāža un augšupielāde
- 3. darbība: ierīces lietošana
- 4. solis: citas pieejas
Video: Automātiska datora sistēmas bloķēšana: 4 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Šajā apmācībā mēs izpētīsim datora ekrāna bloķēšanas drošību. Operētājsistēmām ir konfigurējams taimauts, kas bloķēs jūsu ekrānu, ja lietotājs nav pieskāries pelei vai tastatūrai.
Parasti noklusējuma vērtība ir aptuveni viena minūte. Ja ievērojat šo noklusējumu un atstājat datoru aizņemtā vidē, šajā minūtē kāds var piekļūt jūsu datoram, līdz ekrāns tiek bloķēts. Ja iestatāt to uz dažām sekundēm, bloķēšanas ekrāns tiks parādīts ļoti bieži, kad nepieskaraties tastatūrai, un tas ir kaitinoši …
Kādu dienu darba kolēģis man jautāja, vai es varu "atrisināt" šo problēmu ar kādu ierīci, kas bloķē datoru, kad viņa tur nav, un es pieņēmu izaicinājumu:)
Es savā galvā esmu izpētījis vairākas iespējas, piemēram, izmantot arduinos un infrasarkano termometra sensoru, PIR sensoru vai varbūt izmantot sejas noteikšanu datorā, taču esmu izvēlējies vienkāršāku metodi:
Mēs apvienosim Arduino Leonardo HID funkcionalitāti (emulācijas tastatūru) ar ultraskaņas attāluma sensoru, lai noteiktu, vai persona izmanto datoru, ja ne, ierīce nosūta taustiņu kombināciju, izmantojot USB, lai bloķētu datoru.
1. darbība: sastāvdaļas
Tā kā tas ir koncepcijas pierādījums, mēs veidosim ierīci uz maizes dēļa
Jums būs nepieciešams:
1. Arduino Leonardo (ir svarīgi izmantot Leonardo, jo tas var atdarināt tastatūru)
2. HC-SR04 ultraskaņas attāluma sensors
3. 2 x 10 K mainīgie rezistori
4. maizes dēlis, maizes dēļa vadi
5. USB kabelis
6. OLED displejs (https://www.adafruit.com/product/931)
2. darbība: montāža un augšupielāde
Vispirms pārbaudiet, vai jums ir visas nepieciešamās sastāvdaļas un Arduino IDE. Es īsumā apskatīšu savienojuma darbības, un jūs vienmēr varat apskatīt pievienoto fritzes shēmu
Montāža
1. Uzlieciet Leonardo uz maizes dēļa un turiet to vietā ar gumiju
2. ielieciet divus mainīgos rezistorus, OLED displeju un ultraskaņas sensoru uz maizes dēļa
3. savienot pamatus un vcc's
4. savienojiet rezistoru vidējās tapas arduino A0 un A1
5. savienojiet displeja SDA un SCL ar Leonardo atzīmētajiem SDA un SCL
6. savienojiet ultraskaņas sensora sprūdu un atbalss tapu 12, 13 digitālajām Leonardo tapām
7. savienojiet USB ar datoru
Augšupielādēt
Pirmkārt, jums būs jālejupielādē un jāinstalē nepieciešamās arduino bibliotēkas:
1. GOFi2cOLED bibliotēka:
2. Ultraskaņas-HC-SR04 bibliotēka:
Ja jūs nezināt, kā instalēt arduino bibliotēkas, skatiet šo apmācību.
Kad esat lejupielādējis un instalējis iepriekš minētās bibliotēkas, varat klonēt vai lejupielādēt manu arduino krātuvi, kas atrodas šeit: https://github.com/danionescu0/arduino, un mēs izmantosim šo skici: https://github.com/danionescu0 /arduino/koks/meistars…
Vai arī varat nokopēt un ielīmēt tālāk norādīto kodu.
/ * * Šajā projektā izmantotās bibliotēkas: * * GOFi2cOLED: https://github.com/hramrach/GOFi2cOLED * Ultrasonic-HC-SR04: https://github.com/JRodrigoTech/Ultrasonic-HC-SR04 */#include "Keyboard.h" #include "Wire.h" #include "GOFi2cOLED.h" #include "Ultrasonic.h"
GOFi2cOLED GOFoled;
Ultraskaņas ultraskaņa (12, 13);
const baits distancePot = A0;
const baitu taimerisPot = A1; const float percentMaxDistanceChangedAllowed = 25; int factDistance; neparakstīts garš maxDistanceDetectionTime; bool lockTimerStarted = nepatiess;
anulēts iestatījums ()
{Sērijas sākums (9600); Keyboard.begin (); initializeDisplay (); }
tukša cilpa ()
{clearDisplay (); faktiskaisDistance = getActualDistance (); writeStatusData (); doDisplay (); if (! lockTimerStarted && shouldEnableLockTimer ()) {lockTimerStarted = true; maxDistanceDetectionTime = milis (); Serial.println ("sākas bloķēšanas taimeris"); } cits if (! shouldEnableLockTimer ()) {Serial.println ("bloķēšanas taimeris atspējots"); lockTimerStarted = nepatiess; } if (shouldLockScreen ()) {lockScreen (); Serial.println ("Bloķēšanas ekrāns"); } kavēšanās (100); }
bool shouldLockScreen ()
{return lockTimerStarted && (millis () - maxDistanceDetectionTime) / 1000> getTimer (); }
bool shouldEnableLockTimer ()
{int atļautsDistance = percentMaxDistanceChangedAllowed / 100 * getDistance (); atgriezties getTimer ()> 1 && getDistance ()> 1 && factDistance - getDistance ()> atļautsDistance; }
void writeStatusData ()
{setDisplayText (1, "MinDistance:", String (getDistance ())); setDisplayText (1, "Taimeris:", String (getTimer ())); setDisplayText (1, "ActualDistance:", String (faktiskaisDistance)); int countDown = getTimer () - (milis () - maxDistanceDetectionTime) / 1000; String message = ""; if (shouldLockScreen ()) {message = "slēdzene nosūtīta"; } cits if (shouldEnableLockTimer () && countDown> = 0) {message = ".." + String (countDown); } cits {message = "nē"; } setDisplayText (1, "Bloķēšana:", ziņojums); }
void initializeDisplay ()
{GOFoled.init (0x3C); GOFoled.clearDisplay (); GOFoled.setCursor (0, 0); }
void setDisplayText (baitu fontSize, String label, String data)
{GOFoled.setTextSize (fontSize); GOFoled.println (etiķete + ":" + dati); }
void doDisplay ()
{GOFoled.display (); }
void clearDisplay ()
{GOFoled.clearDisplay (); GOFoled.setCursor (0, 0); }
int getActualDistance ()
{int distanceSum = 0; par (baits i = 0; i <10; i ++) {distanceSum+= ultraskaņa. Ranging (CM); }
atgriešanās attālumsSum / 10;
}
int getDistance ()
{atgriešanās karte (analogRead (timerPot), 0, 1024, 0, 200); }
int getTimer ()
{atgriešanās karte (analogRead (distancePot), 0, 1024, 0, 20); }
void lockScreen ()
{Serial.println ("nospiežot"); Keyboard.press (KEY_LEFT_CTRL); kavēšanās (10); Keyboard.press (KEY_LEFT_ALT); kavēšanās (10); Keyboard.write ('l'); kavēšanās (10); Keyboard.releaseAll (); }
Visbeidzot savienojiet arduino ar datoru, izmantojot USB kabeli, un augšupielādējiet skici arduino.
3. darbība: ierīces lietošana
Kad arduino ir pievienots datoram, tas nepārtraukti uzraudzīs attālumu sensora priekšā un nosūtīs datoram bloķēšanas ekrāna taustiņu kombināciju, ja attālums palielinās.
Ierīcei ir dažas konfigurācijas:
1. Normāls attālums, attālumu var konfigurēt, izmantojot mainīgo rezistoru, kas pievienots A0. Attālums tiek parādīts arī OLED. Kad attālums palielināsies par 25% no iestatītā attāluma, sāksies atpakaļskaitīšana
2. Taimauts (atpakaļskaitīšana). Taimauts sekundēs ir konfigurējams arī no pretestības, kas pievienota A1. Kad beidzas taimauts, tiks nosūtīta bloķēšanas komanda
3. Bloķēt taustiņu kombināciju. Noklusējuma bloķēšanas taustiņu kombinācija ir iestatīta darbam Ubuntu Linux 18 (CTRL+ALT+L). Lai mainītu kombināciju, jums ir jāmaina skice atbilstoši operētājsistēmai:
4. Taimauts un attāluma aizsardzība. Tā kā šī ir ierīce, kas atdarina tastatūru, ieteicams izmantot tastatūras funkcionalitātes deaktivizācijas mehānismu. Savā skicē esmu izvēlējies, ka taimautam un attālumam jābūt lielākam par "1". (ja vēlaties, varat to mainīt kodā)
Atrodiet un mainiet funkciju "lockScreen ()"
void lockScreen () {Serial.println ("nospiežot"); Keyboard.press (KEY_LEFT_CTRL); kavēšanās (10); Keyboard.press (KEY_LEFT_ALT); kavēšanās (10); Keyboard.write ('l'); kavēšanās (10); Keyboard.releaseAll (); }
Pilnu arduino īpašo taustiņu sarakstu skatiet šeit:
4. solis: citas pieejas
Pirms šīs ieviešanas es apsvēru arī dažas citas ieviešanas iespējas:
1. Infrasarkanais termometrs (MLX90614 https://www.sparkfun.com/products/10740). Infrasarkanais termometrs ir ierīce, kas mēra temperatūru, analizējot infrasarkano starojumu, ko izstaro objekts no attāluma. Man bija viens, kas gulēja, un es domāju, ka varbūt es varu noteikt temperatūras atšķirību datora priekšā.
Esmu to savienojis, bet temperatūras starpība bija ļoti maza (kad es biju priekšā vai nē) 1-2 grādi, un es domāju, ka tas nevar būt tik uzticams
2. PIR sensors. (https://www.sparkfun.com/products/13285) Šie lētie sensori tiek pārdoti kā "kustības sensori", taču tie patiešām nosaka izmaiņas infrasarkanajā starojumā, tāpēc teorētiski tas varētu darboties, kad cilvēks pamet datoru, sensors to atklātu ka.. Arī šiem sensoriem ir iebūvēts taimauts un jutīguma pogas. Tāpēc es vienu esmu piesaistījis un spēlējis ar to, bet šķiet, ka sensors nav paredzēts tuvam diapazonam (tam ir platleņķis), tas deva visu veidu nepatiesus brīdinājumus.
3. Sejas noteikšana, izmantojot tīmekļa kameru. Šī opcija šķita ļoti interesanta, jo es spēlēju ar šo datora lauku savos citos projektos, piemēram: https://github.com/danionescu0/robot-camera-platfo… un https://github.com/danionescu0/image-processing- pr…
Šis bija kūkas gabals! Bet bija daži trūkumi: klēpjdatora kameru nevarēja izmantot citiem mērķiem, kad programma darbojās, un tam būs nepieciešami daži datora resursi. Tāpēc arī šo ideju esmu atmetis.
Ja jums ir vairāk ideju, kā to izdarīt, lūdzu, dalieties ar tām, paldies!
Ieteicams:
Tastatūras servo bloķēšana: 5 soļi
Tastatūras servo bloķēšana: Sveiki visiem, ceru, ka jums bija laba diena. Ja nē, tad cerams, ka jūs varat vienkārši attīt ar nelielu atvērtību šai apmācībai un terapeitiskai mūzikai. Programmēšana var būt apgrūtinoša. Par laimi, šī apmācība nav apgrūtinoša, tāpēc jūs, iespējams, varēsit piedalīties
Windows datora bloķēšana/atbloķēšana, izmantojot RFID: 7 soļi (ar attēliem)
Windows datora bloķēšana/atbloķēšana, izmantojot RFID.: Sveiki! Cik bieži esat juties noguris, ievadot paroli, lai atbloķētu datoru/klēpjdatoru katru reizi, kad tas tika bloķēts? Es esmu pieradis to bloķēt diezgan daudz reižu, katru dienu, un nekas nav kaitinošāks par paroles/PIN ievadīšanu un pāriešanu
Labtec 2+1 datora skaļruņu sistēmas pārveidošana par TV 3+1 audio: 7 soļi (ar attēliem)
Pārveidojiet Labtec 2+1 datora skaļruņu sistēmu uz TV 3+1 audio: vēl viens modifikācijas projekts. Lai pievienotu centrālo kanālu un toņu vadību vecajai datora skaņu sistēmai, ko izmantot kā vienkāršu televizora iestatījumu vasarnīcā
PSP izmantošana kā datora kursorsvira un pēc tam datora vadīšana, izmantojot PSP: 5 soļi (ar attēliem)
PSP izmantošana kā datora kursorsvira un pēc tam datora vadīšana, izmantojot PSP: Izmantojot PSP homebrew, varat darīt daudzas atdzist lietas, un šajā pamācībā es iemācīšu jums izmantot PSP kā kursorsviru spēļu spēlēšanai, taču ir arī programma, kas ļauj izmantot kursorsviru kā peli. Šeit ir materiāls
Izmantojiet SSH un XMing, lai parādītu X programmas no Linux datora Windows datorā: 6 soļi
Izmantojiet SSH un XMing, lai parādītu X programmas no Linux datora Windows datorā. un palaist programmas. Nu, jūs varat instalēt X serveri un iespējot SSH tunelēšanu ar savu SSH klientu, un vienu