Sisukord:
- Samm: komponendid
- Samm: kokkupanek ja üleslaadimine
- Samm: seadme kasutamine
- 4. samm: muud lähenemisviisid
Video: Arvutisüsteemi automaatne lukustamine: 4 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Selles õpetuses uurime arvuti ekraaniluku turvalisust. Operatsioonisüsteemidel on seadistatav ajalõpp, mis lukustab teie ekraani, kui kasutaja pole hiirt või klaviatuuri puudutanud.
Tavaliselt on vaikimisi umbes üks minut. Kui järgite seda vaikimisi ja jätate arvuti hõivatud keskkonda, võib keegi sellel minutil teie arvutile juurde pääseda, kuni ekraan lukustub. Kui määrate selle mõneks sekundiks, saate lukustusekraani väga sageli, kui te klaviatuuri ei puuduta, ja see on tüütu…
Ühel päeval küsis töökaaslane minult, kas ma saan selle probleemi "parandada" mingi seadme abil, mis lukustab arvuti, kui teda pole, ja võtsin selle väljakutse vastu:)
Olen oma peas uurinud mitmeid võimalusi, näiteks arduino ja infrapuna -termomeetri anduri, PIR -anduri või võib -olla näotuvastuse kasutamine arvutis, kuid olen otsustanud lihtsama meetodi üle:
Kombineerime Arduino Leonardo HID funktsionaalsuse (klaviatuuri jäljendamine) ultraheli kaugusanduriga, et tuvastada, kas inimene kasutab arvutit, kui mitte, siis seade saadab arvuti lukustamiseks USB kaudu klahvikombinatsiooni.
Samm: komponendid
Kuna see on kontseptsiooni tõestus, ehitame seadme leivaplaadile
Te vajate:
1. Arduino Leonardo (oluline on kasutada Leonardo, sest see võib klaviatuuri jäljendada)
2. ultraheli kaugusandur HC-SR04
3. 2 x 10 K muutuvat takistit
4. leivaplaat, leivaplaadi juhtmed
5. USB -kaabel
6. OLED -ekraan (https://www.adafruit.com/product/931)
Samm: kokkupanek ja üleslaadimine
Esmalt kontrollige, kas teil on kõik vajalikud komponendid ja Arduino IDE. Ma lähen lühidalt ühenduse etappidele ja saate alati vaadata lisatud fritzeerimise skeemi
Kokkupanek
1. Asetage Leonardo leivaplaadile ja hoidke seda kummipaelaga paigal
2. pange kaks muutuvat takistit, OLED -ekraan ja ultraheliandur leivalauale
3. ühendage põhjused ja vcc -id
4. ühendage takistite keskmised tihvtid arduino A0 ja A1 külge
5. ühendage ekraani SDA ja SCL Leonardo märgitud SDA ja SCL -iga
6. ühendage ultrahelianduri päästik ja kajapulk Leonardo 12, 13 digitaalse kontaktiga
7. ühendage USB arvutiga
Laadi üles
Kõigepealt peate alla laadima ja installima vajalikud arduino teegid:
1. GOFi2cOLED raamatukogu:
2. Ultraheli-HC-SR04 raamatukogu:
Kui te ei tea, kuidas arduino raamatukogusid installida, vaadake seda õpetust.
Pärast ülaltoodud teekide allalaadimist ja installimist saate kloonida või alla laadida minu arduino hoidla, mis asub siin: https://github.com/danionescu0/arduino, ja me kasutame seda visandit: https://github.com/danionescu0 /arduino/tree/master…
Või kopeerige ja kleepige allolev kood:
/ * * Selle projektiga kasutatavad raamatukogud: * * GOFi2cOLED: https://github.com/hramrach/GOFi2cOLED * Ultraheli-HC-SR04: https://github.com/JRodrigoTech/Ultrasonic-HC-SR04 */#include "Klaviatuur.h" #sisaldab "Wire.h" #sisaldab "GOFi2cOLED.h" #sisaldab "Ultrasonic.h"
GOFi2cOLED GOFoled;
Ultraheli ultraheli (12, 13);
const bait kaugusPot = A0;
konst bait taimerPot = A1; const float percentMaxDistanceChangedAllowed = 25; int tegelikDistance; allkirjastamata pikk maxDistanceDetectionTime; bool lockTimerStarted = vale;
tühine seadistus ()
{Serial.begin (9600); Klaviatuur.begin (); initializeDisplay (); }
tühine tsükkel ()
{clearDisplay (); tegelik kaugus = getActualDistance (); writeStatusData (); doDisplay (); if (! lockTimerStarted && shouldEnableLockTimer ()) {lockTimerStarted = true; maxDistanceDetectionTime = millis (); Serial.println ("lukustaimer algab"); } else if (! shouldEnableLockTimer ()) {Serial.println ("lukustaimer keelatud"); lockTimerStarted = vale; } if (peaksLockScreen ()) {lockScreen (); Serial.println ("Lukustuskuva"); } viivitus (100); }
bool shouldLockScreen ()
{return lockTimerStarted && (millis () - maxDistanceDetectionTime) / 1000> getTimer (); }
bool peaksEnableLockTimer ()
{int lubatudDistance = percentMaxDistanceChangedAllowed / 100 * getDistance (); return getTimer ()> 1 && getDistance ()> 1 && tegelik kaugus - getDistance ()> lubatudDistance; }
void writeStatusData ()
{setDisplayText (1, "MinDistance:", String (getDistance ())); setDisplayText (1, "Taimer:", String (getTimer ())); setDisplayText (1, "Tegelik kaugus:", string (tegelik kaugus)); int countDown = getTimer () - (millis () - maxDistanceDetectionTime) / 1000; String sõnum = ""; if (peaksLockScreen ()) {message = "lukk saadetud"; } else if (shouldEnableLockTimer () && countDown> = 0) {message = ".." + String (countDown); } else {message = "ei"; } setDisplayText (1, "Lukustamine:", teade); }
void initializeDisplay ()
{GOFoled.init (0x3C); GOFoled.clearDisplay (); GOFoled.setCursor (0, 0); }
void setDisplayText (baitide fontSize, stringi silt, stringi andmed)
{GOFoled.setTextSize (fontSize); GOFoled.println (silt + ":" + andmed); }
void doDisplay ()
{GOFoled.display (); }
void clearDisplay ()
{GOFoled.clearDisplay (); GOFoled.setCursor (0, 0); }
int getActualDistance ()
{int kaugusSumma = 0; jaoks (bait i = 0; i <10; i ++) {kaugussumma+= ultraheli. Vahemik (CM); }
tagasisõidu kaugusSum / 10;
}
int getDistance ()
{return map (analogRead (timerPot), 0, 1024, 0, 200); }
int getTimer ()
{tagasisõidu kaart (analogRead (distancePot), 0, 1024, 0, 20); }
tühi lukk Ekraan ()
{Serial.println ("vajutamine"); Keyboard.press (KEY_LEFT_CTRL); viivitus (10); Keyboard.press (KEY_LEFT_ALT); viivitus (10); Keyboard.write ('l'); viivitus (10); Keyboard.releaseAll (); }
Lõpuks ühendage arduino arvuti USB -kaabli abil ja laadige visand arduino -sse.
Samm: seadme kasutamine
Kui arduino on arvutiga ühendatud, jälgib see pidevalt anduri ees olevat kaugust ja saadab kauguse suurenemise korral arvutile "lukustus" ekraaniklahvide kombinatsiooni.
Seadmel on mõned konfiguratsioonid:
1. Tavaline kaugus, kaugust saab seadistada A0 -ga ühendatud muutuva takisti abil. Kaugus kuvatakse ka OLED -ekraanil. Kui kaugus suureneb seadistatud kaugusest 25%, algab loendamine
2. Aegumine (loendamine). Aega saab sekundites konfigureerida ka A1 -ga ühendatud takisti abil. Ajalõpu lõppedes saadetakse lukukäsk
3. Lukusta klahvikombinatsioon. Vaikimisi lukuklahvide kombinatsioon on seadistatud töötama Ubuntu Linux 18 (CTRL+ALT+L) jaoks. Kombinatsiooni muutmiseks peate oma visandit vastavalt oma operatsioonisüsteemile muutma:
4. Ajalõpp ja kauguskaitse. Kuna see on klaviatuuri jäljendav seade, on hea mõte omada klaviatuuri funktsionaalsuse deaktiveerimise mehhanismi. Oma visandis olen valinud, et ajalõpp ja vahemaa peavad olema suuremad kui "1". (soovi korral saate seda koodis muuta)
Leidke ja muutke funktsiooni "lockScreen ()"
void lockScreen () {Serial.println ("vajutades"); Keyboard.press (KEY_LEFT_CTRL); viivitus (10); Keyboard.press (KEY_LEFT_ALT); viivitus (10); Keyboard.write ('l'); viivitus (10); Keyboard.releaseAll (); }
Arduino erivõtmete täieliku loendi leiate siit:
4. samm: muud lähenemisviisid
Enne selle rakendamist olen kaalunud ka mõnda muud rakendust:
1. Infrapuna termomeeter (MLX90614 https://www.sparkfun.com/products/10740). Infrapunatermomeeter on seade, mis mõõdab temperatuuri, analüüsides objekti poolt kiirguvat infrapunakiirgust. Mul oli üks lamades ja mõtlesin, et äkki suudan arvuti ees temperatuuri erinevust tuvastada.
Olen selle ühendanud, kuid temperatuuride erinevus oli väga väike (kui olin ees või mitte) 1-2 kraadi ja arvasin, et see ei saa olla nii usaldusväärne
2. PIR -andur. (https://www.sparkfun.com/products/13285) Seda odavat andurit turustatakse kui "liikumisandurit", kuid see tuvastab tõepoolest infrapunakiirguse muutusi, nii et teoreetiliselt võiks see töötada, kui inimene arvutist lahkudes tuvastaks anduri et.. Ka nendel anduritel on sisseehitatud ajalõpp ja tundlikkuse nupud. Nii et ma olen ühe haaranud ja sellega mänginud, kuid tundub, et andur ei ole loodud lähiala jaoks (sellel on lainurk), see andis igasuguseid valehoiatusi.
3. Näotuvastus veebikaamera abil. See valik tundus väga huvitav, kuna mängisin selle arvutiväljaga oma teistes projektides, näiteks: https://github.com/danionescu0/robot-camera-platfo… ja https://github.com/danionescu0/image-processing- pr…
See oli kook! Kuid sellel oli mõningaid puudusi: sülearvuti kaamerat ei saanud programmi töötamise ajal muuks otstarbeks kasutada ja selleks oleks vaja mõningaid arvutiressursse. Nii et olen ka selle idee maha jätnud.
Kui teil on rohkem ideid selle kohta, kuidas seda teha, palun jagage neid, aitäh!
Soovitan:
Automaatne kätepuhastusvahend: 8 sammu
Automaatne kätepuhastusvahend: COVID-19 pandeemiast on saanud avalikkus 2020. aastal väga sageli kuulnud. Iga kodanik, kes kuuleb sõna „COVID-19”, mõtleb kohe sõna „ohtlik”, „surmav”, „hoia puhtana” "Ja teisi sõnu. Sellel COVID-19-l on ka
DIY automaatne kätepuhastusvahendi dosaator: 6 sammu
DIY automaatne kätepuhastusvahendi dosaator: Selles projektis ehitame automaatse käte desinfitseerimisdosaatori. See projekt kasutab Arduino, ultraheli andurit, veepumpa ja käte desinfitseerimisvahendit. Käte olemasolu kontrollimiseks desinfitseerimismasina väljalaskeava all kasutatakse ultrahelisensorit
Windowsi arvuti lukustamine/avamine RFID abil: 7 sammu (piltidega)
Windowsi arvutilukk/avamine RFID -d kasutades: Tere! Kui tihti olete väsinud oma arvuti/sülearvuti avamiseks parooli sisestamisest iga kord, kui see lukustati? Ma olen harjunud selle iga päev päris mitu korda lukustama ja miski pole tüütum kui parooli/PIN -koodi tippimine ja ülekeeramine
Comsave: märkmete lukustamine (pakettfailirakendus): 3 sammu
Comsave: lukustage oma märkmed (pakettfailirakendus): Tere, see on Comsaveit, mis salvestab teie märkmed ja lukustab need. Lihtsalt laadige alla lisatud partiifail (1. sammus). Asetage see kausta ja ÄRGE teisaldage seda kaustast või partiifail ei leia teie kontot. MÄRKUS. See on pakettfail. See annab
T-Structables: arvuti lukustamine: 3 sammu
T-Structables: kuidas oma arvutit lukustada: kui paljudel teist on keegi eemal olles teie arvuti ümber nuhkinud? Isegi kui seda pole teiega juhtunud, ei saa te seda takistada ilma midagi alla laadimata või installimata. Selles juhendis näitan