Sadržaj:
- Korak 1: Komponente
- Korak 2: Montaža i prijenos
- Korak 3: Korištenje uređaja
- Korak 4: Ostali pristupi
Video: Računalni sustav za automatsko zaključavanje: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
U ovom ćemo vodiču istražiti sigurnost zaključavanja zaslona računala. Operacijski sustavi imaju konfigurirano vremensko ograničenje koje će zaključati vaš zaslon ako korisnik nije dodirnuo miš ili tipkovnicu.
Obično je zadana vrijednost oko jedne minute. Ako slijedite ove zadane postavke i ostavite računalo u užurbanom okruženju, netko bi mogao pristupiti vašem računalu u toj minuti dok se zaslon ne zaključa. Ako ga postavite na nekoliko sekundi, vrlo često ćete dobiti zaključani zaslon kada ne dodirujete tipkovnicu, a to je neugodno …
Jednog dana radni kolega me pitao mogu li "riješiti" ovaj problem pomoću nekog uređaja koji zaključava računalo kad njega nema, a ja sam prihvatio izazov:)
U glavi sam istražio nekoliko opcija, poput korištenja arduina i infracrvenog senzora termometra, PIR senzora ili možda pomoću detekcije lica na računalu, ali odlučio sam se na jednostavniju metodu:
Kombinirat ćemo Arduino Leonardo HID funkcionalnost (oponašati tipkovnicu) s ultrazvučnim senzorom udaljenosti kako bismo otkrili koristi li osoba računalo, ako ne, uređaj će poslati kombinaciju tipki putem USB -a za zaključavanje računala.
Korak 1: Komponente
Budući da je ovo dokaz koncepta, napravit ćemo uređaj na ploči
Trebat će vam:
1. Arduino Leonardo (važno je koristiti Leonarda jer može oponašati tipkovnicu)
2. HC-SR04 ultrazvučni senzor udaljenosti
3. 2 x 10 K promjenjivi otpornici
4. matična ploča, žice za matičnu ploču
5. USB kabel
6. OLED zaslon (https://www.adafruit.com/product/931)
Korak 2: Montaža i prijenos
Prvo provjerite imate li sve potrebne komponente i Arduino IDE. Kratko ću prijeći na korake povezivanja, a uvijek možete pogledati priloženu shemu fritzinga
Skupština
1. Stavite Leonarda na ploču i držite ga gumicom
2. stavite dva promjenjiva otpornika, OLED zaslon i ultrazvučni senzor na ploču
3. spojiti temelje i vcc
4. spojite srednje pinove otpornika na arduino A0 i A1
5. spojite SDA i SCL zaslona na SDA i SCL označene na Leonardu
6. spojite okidač i eho pin ultrazvučnog senzora na 12, 13 digitalnih pinova Leonarda
7. spojite USB na računalo
Učitaj
Prije svega morate preuzeti i instalirati potrebne arduino knjižnice:
1. GOFi2cOLED biblioteka:
2. Ultrazvučna biblioteka-HC-SR04:
Ako ne znate kako instalirati arduino knjižnice, pogledajte ovaj vodič.
Nakon što preuzmete i instalirate gore navedene knjižnice, možete klonirati ili preuzeti moje arduino spremište koje se nalazi ovdje: https://github.com/danionescu0/arduino, a mi ćemo koristiti ovu skicu: https://github.com/danionescu0 /arduino/stablo/gospodar…
Ili možete kopirati i zalijepiti donji kod:
/ * * Knjižnice koje koristi ovaj projekt: * * GOFi2cOLED: https://github.com/hramrach/GOFi2cOLED * Ultrazvučni-HC-SR04: https://github.com/JRodrigoTech/Ultrasonic-HC-SR04 */#include "Keyboard.h" #include "Wire.h" #include "GOFi2cOLED.h" #include "Ultrasonic.h"
GOFi2cOLED GOFoled;
Ultrazvučni ultrazvučni (12, 13);
const byte distancePot = A0;
const byte timerPot = A1; const float percentMaxDistanceChangedAllowed = 25; int actualDistance; unsigned long maxDistanceDetectionTime; bool lockTimerStarted = false;
void setup ()
{Serial.begin (9600); Keyboard.begin (); initializeDisplay (); }
void loop ()
{clearDisplay (); actualDistance = getActualDistance (); writeStatusData (); doDisplay (); if (! lockTimerStarted && shouldEnableLockTimer ()) {lockTimerStarted = true; maxDistanceDetectionTime = millis (); Serial.println ("zaključavanje timera počinje"); } else if (! shouldEnableLockTimer ()) {Serial.println ("isključen mjerač vremena"); lockTimerStarted = false; } if (shouldLockScreen ()) {lockScreen (); Serial.println ("Zaključani ekran"); } kašnjenje (100); }
bool shouldLockScreen ()
{return lockTimerStarted && (millis () - maxDistanceDetectionTime) / 1000> getTimer (); }
bool shouldEnableLockTimer ()
{int allowedDistance = percentMaxDistanceChangedAllowed / 100 * getDistance (); return getTimer ()> 1 && getDistance ()> 1 && actualDistance - getDistance ()> allowedDistance; }
void writeStatusData ()
{setDisplayText (1, "MinDistance:", String (getDistance ())); setDisplayText (1, "Timer:", String (getTimer ())); setDisplayText (1, "ActualDistance:", String (actualDistance)); int countDown = getTimer () - (millis () - maxDistanceDetectionTime) / 1000; Niz poruka = ""; if (shouldLockScreen ()) {message = "zaključavanje poslano"; } else if (shouldEnableLockTimer () && countDown> = 0) {message = ".." + String (countDown); } else {poruka = "ne"; } setDisplayText (1, "Zaključavanje:", poruka); }
void initializeDisplay ()
{GOFoled.init (0x3C); GOFoled.clearDisplay (); GOFoled.setCursor (0, 0); }
void setDisplayText (veličina bajta fontova, oznaka niza, podaci niza)
{GOFoled.setTextSize (fontSize); GOFoled.println (oznaka + ":" + podaci); }
void doDisplay ()
{GOFoled.display (); }
void clearDisplay ()
{GOFoled.clearDisplay (); GOFoled.setCursor (0, 0); }
int getActualDistance ()
{int distanceSum = 0; for (bajt i = 0; i <10; i ++) {distanceSum+= ultrazvuk. Ranging (CM); }
povratna udaljenostSum / 10;
}
int getDistance ()
{return map (analogRead (timerPot), 0, 1024, 0, 200); }
int getTimer ()
{return map (analogRead (distancePot), 0, 1024, 0, 20); }
void lockScreen ()
{Serial.println ("pritiskanje"); Tipkovnica.pritisnite (KEY_LEFT_CTRL); kašnjenje (10); Tipkovnica.pritisnite (KEY_LEFT_ALT); kašnjenje (10); Keyboard.write ('l'); kašnjenje (10); Keyboard.releaseAll (); }
Na kraju spojite arduino računalo pomoću USB kabela i prenesite skicu u arduino.
Korak 3: Korištenje uređaja
Kad je arduino spojen na računalo, on će kontinuirano nadzirati udaljenost ispred senzora i slati računalu tipku za zaključavanje zaslona ako se udaljenost poveća.
Uređaj ima nekoliko konfiguracija:
1. Normalna udaljenost, udaljenost se može konfigurirati pomoću promjenjivog otpornika spojenog na A0. Udaljenost je također prikazana na OLED -u. Kad se udaljenost poveća za 25% od one koja je postavljena, počet će odbrojavanje
2. Timeout (odbrojavanje). Vrijeme čekanja u sekundama također se može konfigurirati s otpornika spojenog na A1. Kad istekne vremensko ograničenje, naredba za zaključavanje bit će poslana
3. Kombinacija zaključavanja tipki. Zadana kombinacija ključeva za zaključavanje postavljena je tako da radi za Ubuntu Linux 18 (CTRL+ALT+L). Da biste promijenili kombinaciju, morate izmijeniti svoju skicu u skladu s operativnim sustavom:
4. Zaštita isteka vremena i udaljenosti. Budući da se radi o uređaju koji oponaša tipkovnicu, dobro je imati mehanizam za deaktiviranje funkcije tipkovnice. Na mojoj skici sam odabrao da vrijeme čekanja i udaljenost moraju biti veći od "1". (to možete izmijeniti u kodu ako želite)
Pronađite i promijenite funkciju "lockScreen ()"
void lockScreen () {Serial.println ("pritiskanje"); Tipkovnica.pritisnite (KEY_LEFT_CTRL); kašnjenje (10); Tipkovnica.pritisnite (KEY_LEFT_ALT); kašnjenje (10); Keyboard.write ('l'); kašnjenje (10); Keyboard.releaseAll (); }
Za potpuni popis arduino posebnih ključeva provjerite ovdje:
Korak 4: Ostali pristupi
Prije ove implementacije razmotrio sam i neke druge implementacije:
1. Infracrveni termometar (MLX90614 https://www.sparkfun.com/products/10740). Infracrveni termometar je uređaj koji mjeri temperaturu analiziranjem infracrvenog zračenja koje objekt odašilje na daljinu. Jedan je ležao i mislio sam da bih mogao otkriti razliku u temperaturi ispred računala.
Priključio sam ga, ali razlika u temperaturi je bila vrlo mala (kad sam bio ispred ili ne) 1-2 stupnja i mislio sam da ne može biti tako pouzdan
2. PIR senzor. (https://www.sparkfun.com/products/13285) Ovi jeftini senzori plasiraju se na tržište kao "senzori pokreta", ali stvarno otkrivaju promjene u infracrvenom zračenju pa bi teoretski moglo funkcionirati, kada osoba napusti računalo, senzor bi otkrio to.. Također ti senzori imaju ugrađeno vremensko ograničenje i gumbe za osjetljivost. Pa spojio sam jedan i igrao se s njim, ali čini se da senzor nije napravljen za bliski raspon (ima široki kut), davao je sve vrste lažnih upozorenja.
3. Prepoznavanje lica pomoću web kamere. Ova se opcija činila vrlo zanimljivom jer sam se igrao s ovim računalnim poljem u drugim projektima poput: https://github.com/danionescu0/robot-camera-platfo… i https://github.com/danionescu0/image-processing- pr…
Ovo je bio dio kolača! No, postojali su neki nedostaci: kamera prijenosnog računala nije se mogla koristiti u druge svrhe za vrijeme izvođenja programa, a za to bi bili potrebni neki računalni resursi. Pa sam i ja odustao od ove ideje.
Podijelite ih ako imate više ideja o tome kako se to može učiniti, hvala!
Preporučeni:
Automatsko zaključavanje vrata: 5 koraka
Automatsko zaključavanje vrata: Hej TAMO !! Ovo je moj prvi instruktor! Nadam se da će vam se svima svidjeti. U ovom projektu ćemo izgraditi automatsku (zaštićenu lozinkom) bravu za vrata. Klasična brava i ključ doslovno su izum star 100 godina, a kao što znamo " promijeni
Kako izgraditi sustav za automatsko zalijevanje biljaka s WiFi upozorenjima: 15 koraka
Kako izgraditi DIY automatski sustav zalijevanja biljaka s upozorenjima za WiFi: Ovo je gotov projekt, sustav za automatsko zalijevanje biljaka "Uradi sam" kontroliran putem #WiFi. Za ovaj projekt koristili smo komplet za automatsko sastavljanje automatskog sustava za zalijevanje vrtnih sustava tvrtke Adosia. Ova postavka koristi magnetne ventile za vodu i analogni ovlaživač tla
Arduino sustav za automatsko zalijevanje (Garduino): 6 koraka
Arduino sustav za automatsko zalijevanje (Garduino): Napravio sam sustav za zalijevanje baziran na arduinu za svoje čilije dok sam van kuće. Slučajno sam ovo napravio kao web poslužitelj koji mogu pratiti s LAN -a i iz sustava kućne automatizacije (Hassio) .Ovo je još u izradi, dodat ću još
Minijaturno pojačalo za zaključavanje koje se može nositi (i sonarni sustav za nosive stvari itd.): 7 koraka
Minijaturno nosivo pojačalo sa zaključavanjem (i sonarni sustav za nosive materijale itd.): Izradite minijaturno jeftino pojačalo sa zaključavanjem koje se može umetnuti u okvire naočala i stvoriti sustav sonarnog vida za slijepe ili jednostavan ultrazvuk stroj koji neprestano nadgleda vaše srce i koristi ljudsko-strojno učenje da upozori na p
Računalni sustav hlađenja vodom: 10 koraka
Računalni sustav hlađenja vodom: Pozdrav. Ja sam Korejac koji živi u Koreji. Volim gledati toliko instrukcija na ovoj web stranici i izrađivati svoje. danas volim predstaviti svoj računalni sustav vodenog hlađenja - to je moj vlastiti dizajn! Napravljeno je 2008. listopada, nemam povjerenja u svoj E