Përmbajtje:
Video: Sistemi kompjuterik i kyçjes automatike: 4 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:21
Në këtë tutorial ne do të eksplorojmë sigurinë e kyçjes së ekranit të kompjuterit. Sistemet operative kanë një afat kohor të konfigurueshëm që do të bllokojë ekranin tuaj nëse përdoruesi nuk e ka prekur miun ose tastierën.
Zakonisht parazgjedhja është rreth një minutë. Nëse ndiqni këtë parazgjedhje dhe e lini kompjuterin tuaj në një mjedis të zënë, dikush mund të hyjë në kompjuterin tuaj në atë minutë derisa ekrani të kyçet. Nëse e vendosni në disa sekonda do të merrni ekranin e kyçjes shumë shpesh kur nuk prekni tastierën dhe kjo është e bezdisshme …
Një ditë një koleg pune më pyeti nëse mund ta "rregulloj" këtë çështje me një lloj pajisjeje që kyç kompjuterin kur ai nuk është atje, dhe unë e mora sfidën:)
Unë kam eksploruar disa opsione në kokën time si përdorimi i arduinos dhe një sensori termometri me rreze infra të kuqe, sensori PIR ose ndoshta përdorimi i zbulimit të fytyrës në kompjuter, por jam vendosur në një metodë më të thjeshtë:
Ne do të kombinojmë funksionalitetin Arduino Leonardo HID (emuloni tastierën) me një sensor distancë tejzanor për të zbuluar nëse një person po përdor kompjuterin, nëse jo pajisja do të dërgojë një kombinim kyç përmes USB për të kyçur kompjuterin.
Hapi 1: Përbërësit
Për shkak se kjo është një dëshmi e konceptit, ne do ta ndërtojmë pajisjen në një dërrasë buke
Do t'ju duhet:
1. Arduino Leonardo (është e rëndësishme të përdorni Leonardo sepse mund të imitojë tastierën)
2. Sensori i distancës tejzanor HC-SR04
3. Rezistenca të ndryshueshme 2 x 10 K
4. bordi i bukës, telat e bukës
5. Kabllo USB
6. Ekran OLED (https://www.adafruit.com/product/931)
Hapi 2: Montimi dhe Ngarkimi
Së pari kontrolloni nëse keni të gjithë përbërësit e nevojshëm dhe një Arduino IDE. Unë do të shkoj shkurtimisht në hapat e lidhjes, dhe ju gjithmonë mund t'i hidhni një sy skemës së bashkangjitur
Kuvendi
1. Vendoseni Leonardon në pjatën e bukës dhe mbajeni në vend me një shirit gome
2. vendosni dy rezistorë të ndryshueshëm, ekranin OLED dhe sensorin tejzanor në dërrasën e bukës
3. lidhni bazat dhe vcc -të
4. lidhni kunjat e mesme të rezistorëve me arduino A0 dhe A1
5. lidhni SDA dhe SCL të ekranit me SDA dhe SCL të shënuara në Leonardo
6. lidhni këmbëzën e këmbëzës dhe ekon e sensorit tejzanor me 12, 13 kunjat dixhitale të Leonardo
7. lidheni USB -në me kompjuterin
Ngarkoni
Para së gjithash do t'ju duhet të shkarkoni dhe instaloni bibliotekat e nevojshme arduino:
1. Biblioteka GOFi2cOLED:
2. Biblioteka tejzanor-HC-SR04:
Nëse nuk dini si të instaloni bibliotekat arduino shikoni këtë tutorial.
Pasi të keni shkarkuar dhe instaluar bibliotekat e mësipërme, mund të klononi ose shkarkoni depon time arduino të vendosur këtu: https://github.com/danionescu0/arduino, dhe ne do ta përdorim këtë skicë: https://github.com/danionescu0 /arduino/pemë/master…
Ose mund të kopjoni dhe ngjisni kodin më poshtë:
/ * * Bibliotekat e përdorura nga ky projekt: * * 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;
Tejzanor tejzanor (12, 13);
const byte distancePot = A0;
konte byte timerPot = A1; const float përqindMaxDistanceChangedAllowed = 25; int Distanca aktuale; e panënshkruar e gjatë maxDistanceDetectionTime; bool lockTimerStarted = false;
void setup ()
{Serial.fillo (9600); Tastiera.filloj (); initializeDisplay (); }
lak void ()
{clearDisplay (); aktualeDistanca = getActualDistance (); writeStatusData (); doDisplay (); nëse (! lockTimerStarted && shouldEnableLockTimer ()) {lockTimerStarted = e vërtetë; maxDistanceDetectionTime = milis (); Serial.println ("fillon kohëmatësi i kyçjes"); } tjetër nëse (! shouldEnableLockTimer ()) {Serial.println ("kohëmatësi i kyçjes është i çaktivizuar"); lockTimerStarted = false; } if (shouldLockScreen ()) {lockScreen (); Serial.println ("Kyçja e ekranit"); } vonesë (100); }
bool shouldLockScreen ()
{return lockTimerStarted && (milis () - maxDistanceDetectionTime) / 1000> getTimer (); }
bool shouldEnableLockTimer ()
{int lejuarDistanca = përqindMaxDistanceChangedAllowed / 100 * getDistance (); kthehu getTimer ()> 1 && getDistance ()> 1 && aktualeDistance - getDistance ()> lejohetDistanca; }
void writeStatusData ()
{setDisplayText (1, "MinDistance:", String (getDistance ())); setDisplayText (1, "Kohëmatësi:", String (getTimer ())); setDisplayText (1, "Distanca aktuale:", String (distanca aktuale)); int countDown = getTimer () - (millis () - maxDistanceDetectionTime) / 1000; Mesazh vargu = ""; if (shouldLockScreen ()) {mesazh = "bllokimi u dërgua"; } tjetër nëse (shouldEnableLockTimer () && countDown> = 0) {message = ".." + String (countDown); } else {mesazh = "jo"; } setDisplayText (1, "Bllokimi:", mesazh); }
void initializeDisplay ()
{GOFoled.init (0x3C); GOFoled.clearDisplay (); GOFoled.setCursor (0, 0); }
i pavlefshëmDisplayText (madhësia e bajtit, Madhësia e etiketës, String data)
{GOFoled.setTextSize (fontSize); GOFoled.println (etiketa + ":" + të dhëna); }
void doDisplay ()
{GOFoled.display (); }
void clearDisplay ()
{GOFoled.clearDisplay (); GOFoled.setCursor (0, 0); }
int getActualDistance ()
{int distanceSum = 0; për (byte i = 0; i <10; i ++) {distanceSum+= tejzanor. Varg (CM); }
distanca e kthimitSum / 10;
}
int getDistance ()
{harta e kthimit (analogRead (timerPot), 0, 1024, 0, 200); }
int getTimer ()
{harta e kthimit (analogRead (distancePot), 0, 1024, 0, 20); }
void lockScreen ()
{Serial.println ("shtypur"); Keyboard.press (KEY_LEFT_CTRL); vonesa (10); Keyboard.press (KEY_LEFT_ALT); vonesa (10); Keyboard.write ('l'); vonesa (10); Keyboard.releaseAll (); }
Më në fund lidhni kompjuterin arduino duke përdorur kabllon usb dhe ngarkoni skicën në arduino.
Hapi 3: Përdorimi i pajisjes
Kur arduino është e lidhur me kompjuterin ai do të monitorojë vazhdimisht distancën para sensorit dhe do të dërgojë një kombinim të tastit të ekranit "lock" në kompjuter nëse distanca rritet.
Pajisja ka disa konfigurime:
1. Distanca normale, distanca mund të konfigurohet duke përdorur rezistencën e ndryshueshme të lidhur me A0. Distanca shfaqet gjithashtu në OLED. Kur distanca do të rritet me 25% nga ajo që është vendosur do të fillojë një numërim mbrapsht
2. Timeout (numërimi mbrapsht). Koha në sekonda është gjithashtu e konfigurueshme nga rezistenca e lidhur me A1. Kur skadon afati kohor, komanda e kyçjes do të dërgohet
3. Kyç kombinimin e çelësave. Kombinimi i parazgjedhur i çelësave të kyçjes është krijuar për të punuar për Ubuntu Linux 18 (CTRL+ALT+L). Për të ndryshuar kombinimin, duhet të modifikoni skicën tuaj sipas sistemit tuaj të funksionimit:
4. Timeout dhe mbrojtja në distancë. Për shkak se kjo është një pajisje që imiton tastierën, është një ide e mirë të keni një mekanizëm të çaktivizimit të funksionimit të tastierës. Në skicën time kam zgjedhur që afati kohor dhe distanca duhet të jenë më të mëdha se "1". (mund ta modifikoni në kod nëse dëshironi)
Gjeni dhe ndryshoni funksionin "lockScreen ()"
void lockScreen () {Serial.println ("shtypur"); Keyboard.press (KEY_LEFT_CTRL); vonesa (10); Keyboard.press (KEY_LEFT_ALT); vonesa (10); Keyboard.write ('l'); vonesa (10); Keyboard.releaseAll (); }
Për një listë të plotë të çelësave special arduino, shikoni këtu:
Hapi 4: Qasje të tjera
Para këtij zbatimi, unë kam marrë parasysh edhe disa zbatime të tjera:
1. Termometër infra të kuqe (MLX90614 https://www.sparkfun.com/products/10740). Një termometër infra të kuqe është një pajisje që mat temperaturën duke analizuar rrezatimet infra të kuqe të emetuara nga një objekt në distancë. Unë kisha një të shtrirë përreth dhe mendova se ndoshta mund ta zbuloj ndryshimin e temperaturës para kompjuterit.
E kam lidhur, por diferenca e temperaturës ishte shumë e vogël (kur isha përpara apo jo) 1-2 gradë dhe mendova se nuk mund të ishte aq e besueshme
2. sensor PIR. (https://www.sparkfun.com/products/13285) Këta sensorë të lirë tregtohen si "sensorë lëvizjeje", por ata vërtet zbulojnë ndryshimet në rrezatimin infra të kuqe, kështu që në teori mund të funksionojë, kur një person largohet nga kompjuteri, sensori do të zbulonte që.. Gjithashtu këta sensorë kanë çelësa të ngritur në kohë dhe ndjeshmëri. Kështu që unë e kam lidhur dhe kam luajtur me të, por duket se sensori nuk është bërë për një distancë të afërt (ka një kënd të gjerë), ai dha të gjitha llojet e paralajmërimeve të rreme.
3. Zbulimi i fytyrës duke përdorur kamerën në internet. Ky opsion dukej shumë interesant, pasi luaja me këtë fushë kompjuteri në projektet e mia të tjera si: https://github.com/danionescu0/robot-camera-platfo… dhe https://github.com/danionescu0/image-processing- pr…
Kjo ishte një copë tortë! Por kishte disa të meta: kamera e laptopit nuk mund të përdoret për qëllime të tjera kur programi po funksiononte, dhe disa burime kompjuteri do të kërkoheshin për këtë. Kështu që edhe unë e kam hequr dorë nga kjo ide.
Nëse keni më shumë ide se si mund të bëhet kjo, ju lutemi ndani ato, faleminderit!
Recommended:
Abellcadabra (Sistemi i kyçjes së dyerve të njohjes së fytyrës): 9 hapa
Abellcadabra (Sistemi i Bllokimit të Dyerve të Njohjes së Fytyrës): Duke u shtrirë gjatë karantinës, unë u përpoqa të gjeja një mënyrë për të vrarë kohën duke ndërtuar njohjen e fytyrës për derën e shtëpisë. Unë e quaj atë Abellcadabra - e cila është kombinim midis Abracadabra, një frazë magjike me kambanën e derës të cilën e marr vetëm kambanën. LOL
Sistemi i kyçjes së ekranit LCD të ekranit: 6 hapa
Sistemi i kyçjes së ekranit LCD të ekranit: Ky projekt do të veprojë si një kyç në shtëpi dhe e vetmja mënyrë që mund të futeni brenda shtëpisë është të shtypni kodin e saktë 3 shifror. LCD do të veprojë si një pajisje komunikimi për të informuar individin nëse ai ka futur kodin e duhur apo jo. IR -ja
Sistemi i kyçjes RFID duke përdorur Arduino: 6 hapa
Sistemi i kyçjes RFID duke përdorur Arduino: Përshëndetje të gjithëve, Ky është udhëzimi im i parë dhe u prezantua nga Judhi Prasetyo. Punëtoria u organizua nga Asambleja, ku unë jam duke punuar si praktikante dhe është një nga vendet më të mira për të punuar nëse jeni krijues. Duke u kthyer në sistemin e kyçjes RFID, unë
Sistemi i kyçjes me kontroll të zërit: 7 hapa (me fotografi)
Sistemi i Bllokimit të Kontrolluar me Zë: Sistemi i Bllokimit të Kontrolluar me Zë, është një sistem mbylljeje i automatizuar, duke përdorur bluetooth si një ndërmjetës për komunikimin midis Arduino dhe telefonit tuaj Android. Sistemi i kyçjes i kontrolluar nga Zëri, zhbllokohet kur thoni fjalëkalimin e vendosur nga ju (
Sistemi kompjuterik i ftohjes së ujit: 10 hapa
Sistemi i Ftohjes së Ujit Kompjuterik: Përshëndetje. Unë jam Koreja që jeton në Kore. Më pëlqen të shikoj kaq shumë udhëzime në këtë faqe dhe të bëj timen. sot më pëlqen të prezantoj Sistemin tim të Ftohjes së Ujit të Kompjuterit - është dizajni im! Wasshtë bërë në vitin 2008. tetor nuk kam asnjë besim në E -in tim