Sisällysluettelo:
- Vaihe 1: Komponentit
- Vaihe 2: Kokoaminen ja lataaminen
- Vaihe 3: Laitteen käyttö
- Vaihe 4: Muut lähestymistavat
Video: Automaattinen tietokoneen lukitus: 4 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Tässä opetusohjelmassa aiomme tutkia tietokoneen näytön lukituksen turvallisuutta. Käyttöjärjestelmissä on määritettävissä oleva aikakatkaisu, joka lukitsee näytön, jos käyttäjä ei ole koskettanut hiirtä tai näppäimistöä.
Yleensä oletusarvo on noin minuutti. Jos noudatat tätä oletusarvoa ja jätät tietokoneen kiireiseen ympäristöön, joku saattaa käyttää tietokonettasi sillä hetkellä, kunnes näyttö lukittuu. Jos asetat sen muutamaan sekuntiin, saat lukitusnäytön hyvin usein, kun et kosketa näppäimistöä, ja se on ärsyttävää …
Eräänä päivänä työtoverini kysyi minulta, voinko "korjata" tämän ongelman jollakin laitteella, joka lukitsee tietokoneen, kun hän ei ole paikalla, ja otin haasteen vastaan :)
Olen tutkinut päässäni useita vaihtoehtoja, kuten arduinojen ja infrapunalämpömittarin, PIR -anturin tai ehkä kasvojentunnistuksen käyttämistä tietokoneella, mutta olen päätynyt yksinkertaisempaan menetelmään:
Yhdistämme Arduino Leonardo HID -toiminnon (emuloi näppäimistö) ultraääni -etäisyysanturiin havaitaksemme, käyttääkö henkilö tietokonetta, ellei laite lähettää näppäinyhdistelmää USB: n kautta tietokoneen lukitsemiseksi.
Vaihe 1: Komponentit
Koska tämä on todiste konseptista, aiomme rakentaa laitteen leipälevylle
Sinä tulet tarvitsemaan:
1. Arduino Leonardo (on tärkeää käyttää Leonardoa, koska se voi jäljitellä näppäimistöä)
2. HC-SR04-ultraääni-etäisyysanturi
3. 2 x 10 K: n vaihtelevia vastuksia
4. leipälauta, leipälauta johdot
5. USB -kaapeli
6. OLED -näyttö (https://www.adafruit.com/product/931)
Vaihe 2: Kokoaminen ja lataaminen
Tarkista ensin, onko sinulla kaikki tarvittavat komponentit ja Arduino IDE. Menen lyhyesti yhteysvaiheisiin, ja voit aina katsoa liitteenä olevaa fritzing -kaaviota
Kokoonpano
1. Aseta Leonardo leipälevylle ja pidä se paikallaan kuminauhalla
2. aseta kaksi muuttuvaa vastusta, OLED -näyttö ja ultraäänianturi leipälevylle
3. yhdistä perusteet ja vcc: t
4. Kytke vastusten keskitapit arduino A0 ja A1
5. kytke näytön SDA ja SCL Leonardo -laitteeseen merkittyihin SDA- ja SCL -liitäntöihin
6. liitä ultraäänianturin liipaisin ja kaiku -nasta Leonardo -laitteen 12, 13 digitaaliseen nastaan
7. liitä USB tietokoneeseen
Lataa
Ensinnäkin sinun on ladattava ja asennettava tarvittavat arduino -kirjastot:
1. GOFi2cOLED -kirjasto:
2. Ultraääni-HC-SR04-kirjasto:
Jos et tiedä kuinka asentaa arduino -kirjastoja, tutustu tähän opetusohjelmaan.
Kun olet ladannut ja asentanut yllä olevat kirjastot, voit kloonata tai ladata arduino -arkistoni, joka sijaitsee täällä: https://github.com/danionescu0/arduino, ja käytämme tätä luonnosta: https://github.com/danionescu0 /arduino/tree/master…
Tai voit kopioida ja liittää alla olevan koodin:
/ * * Tämän projektin käyttämät kirjastot: * * GOFi2cOLED: https://github.com/hramrach/GOFi2cOLED * Ultrasonic-HC-SR04: https://github.com/JRodrigoTech/Ultrasonic-HC-SR04 */#include "Näppäimistö.h" #Sisällytä "Wire.h" #Sisällytä "GOFi2cOLED.h" #Sisällytä "Ultraääni.h"
GOFi2cOLED GOFoled;
Ultraääni ultraääni (12, 13);
const tavu etäisyysPot = A0;
const tavu ajastinPot = A1; const float percentMaxDistanceChangedAllowed = 25; int todellinen etäisyys; allekirjoittamaton pitkä maxDistanceDetectionTime; bool lockTimerStarted = epätosi;
mitätön asennus ()
{Serial.begin (9600); Näppäimistö.begin (); initializeDisplay (); }
tyhjä silmukka ()
{clearDisplay (); todellinen etäisyys = getActualDistance (); writeStatusData (); doDisplay (); if (! lockTimerStarted && shouldEnableLockTimer ()) {lockTimerStarted = true; maxDistanceDetectionTime = millis (); Serial.println ("lukituksen ajastin alkaa"); } else if (! shouldEnableLockTimer ()) {Serial.println ("lukitusajastin pois käytöstä"); lockTimerStarted = epätosi; } if (pitäisiLockScreen ()) {lockScreen (); Serial.println ("Lukitusnäyttö"); } viive (100); }
bool shouldLockScreen ()
{return lockTimerStarted && (millis () - maxDistanceDetectionTime) / 1000> getTimer (); }
bool pitäisiEnableLockTimer ()
{int sallittu etäisyys = percentMaxDistanceChangedAllowed / 100 * getDistance (); return getTimer ()> 1 && getDistance ()> 1 && factDistance - getDistance ()> sallittu etäisyys; }
void writeStatusData ()
{setDisplayText (1, "MinDistance:", String (getDistance ())); setDisplayText (1, "Ajastin:", Jono (getTimer ())); setDisplayText (1, "Todellinen etäisyys:", Jono (todellinen etäisyys)); int countDown = getTimer () - (millis () - maxDistanceDetectionTime) / 1000; Merkkijonoviesti = ""; if (shouldLockScreen ()) {message = "lukko lähetetty"; } else if (shouldEnableLockTimer () && countDown> = 0) {message = ".." + Jono (countDown); } else {message = "ei"; } setDisplayText (1, "Lukitus:", viesti); }
void initializeDisplay ()
{GOFoled.init (0x3C); GOFoled.clearDisplay (); GOFoled.setCursor (0, 0); }
void setDisplayText (tavu fonttikoko, merkkijonotarra, merkkijonotiedot)
{GOFoled.setTextSize (fontSize); GOFoled.println (label + ":" + data); }
void doDisplay ()
{GOFoled.display (); }
void clearDisplay ()
{GOFoled.clearDisplay (); GOFoled.setCursor (0, 0); }
int getActualDistance ()
{int etäisyysSum = 0; for (tavu i = 0; i <10; i ++) {distanceSum+= ultraääni. Alue (CM); }
paluumatkaSum / 10;
}
int getDistance ()
{return map (analogRead (timerPot), 0, 1024, 0, 200); }
int getTimer ()
{paluukartta (analoginenluku (etäisyysPot), 0, 1024, 0, 20); }
tyhjä lukitus Näyttö ()
{Serial.println ("painaminen"); Keyboard.press (KEY_LEFT_CTRL); viive (10); Keyboard.press (KEY_LEFT_ALT); viive (10); Keyboard.write ('l'); viive (10); Keyboard.releaseAll (); }
Liitä lopuksi arduino tietokoneeseen USB -kaapelilla ja lataa luonnos arduinoon.
Vaihe 3: Laitteen käyttö
Kun arduino on kytketty tietokoneeseen, se seuraa jatkuvasti etäisyyttä anturin edessä ja lähettää "lukitus" -näppäinyhdistelmän tietokoneelle, jos etäisyys kasvaa.
Laitteessa on joitain kokoonpanoja:
1. Normaali etäisyys, etäisyys voidaan konfiguroida A0: een kytketyn muuttuvan vastuksen avulla. Etäisyys näkyy myös OLED -näytössä. Kun etäisyys kasvaa 25% asetetusta etäisyydestä, lähtölaskenta alkaa
2. Aikakatkaisu (lähtölaskenta). Aikakatkaisu sekunneissa on konfiguroitavissa myös A1: een kytketystä vastuksesta. Kun aikakatkaisu päättyy, lukituskomento lähetetään
3. Lukitse näppäinyhdistelmä. Oletuslukonäppäinyhdistelmä on määritetty toimimaan Ubuntu Linux 18: ssa (CTRL+ALT+L). Jos haluat muuttaa yhdistelmää, sinun on muokattava luonnostasi käyttöjärjestelmän mukaan:
4. Aikakatkaisu ja etäisyyssuoja. Koska tämä on laite, joka emuloi näppäimistöä, on hyvä olla mekanismi näppäimistön toimintojen poistamiseksi käytöstä. Luonnoksessani olen valinnut, että aikakatkaisun ja etäisyyden on oltava suurempi kuin "1". (voit muokata sitä koodissa, jos haluat)
Etsi ja muuta "lockScreen ()" -toimintoa
void lockScreen () {Serial.println ("painaminen"); Keyboard.press (KEY_LEFT_CTRL); viive (10); Keyboard.press (KEY_LEFT_ALT); viive (10); Keyboard.write ('l'); viive (10); Keyboard.releaseAll (); }
Katso täydellinen luettelo arduino -erikoisavaimista täältä:
Vaihe 4: Muut lähestymistavat
Ennen tätä toteutusta olen harkinnut myös muita toteutuksia:
1. Infrapunalämpömittari (MLX90614 https://www.sparkfun.com/products/10740). Infrapunalämpömittari on laite, joka mittaa lämpötilaa analysoimalla etäisen kohteen lähettämiä infrapunasäteilyjä. Minulla oli yksi makaamassa ja ajattelin, että ehkä voin havaita lämpötilaeron tietokoneen edessä.
Olen kytkenyt sen, mutta lämpötilaero oli hyvin pieni (kun olin edessä tai ei) 1-2 astetta ja ajattelin, että se ei voi olla niin luotettava
2. PIR -anturi. (https://www.sparkfun.com/products/13285) Tätä halpaa anturia markkinoidaan "liikeanturina", mutta se todella havaitsee muutokset infrapunasäteilyssä, joten teoriassa se voisi toimia, kun henkilö poistuu tietokoneesta, jonka anturi havaitsisi että.. Myös näissä antureissa on sisäänrakennettu aikakatkaisu ja herkkyysnupit. Joten olen kytkenyt yhden ja pelannut sen kanssa, mutta näyttää siltä, että anturia ei ole tehty lähelle (sillä on laajakulma), se antoi kaikenlaisia vääriä hälytyksiä.
3. Kasvontunnistus verkkokameran avulla. Tämä vaihtoehto vaikutti erittäin mielenkiintoiselta, koska pelasin tällä tietokonekentällä muissa projekteissani, kuten: https://github.com/danionescu0/robot-camera-platfo… ja https://github.com/danionescu0/image-processing- PR…
Tämä oli kakkupala! Mutta oli joitain haittoja: kannettavan tietokoneen kameraa ei voitu käyttää muihin tarkoituksiin ohjelman ollessa käynnissä, ja siihen tarvittiin joitakin tietokoneresursseja. Joten olen myös hylännyt tämän ajatuksen.
Jos sinulla on enemmän ideoita siitä, miten tämä voitaisiin tehdä, jaa ne, kiitos!
Suositeltava:
Automaattinen oven lukitus: 5 vaihetta
Automaattinen ovilukko: Hei TÄÄLLÄ! Tämä on ensimmäinen opettavainen! Toivottavasti kaikki pitävät siitä. Tässä projektissa aiomme rakentaa automaattisen (salasanasuojatun) oven lukon. Klassinen lukko ja avain ovat kirjaimellisesti sadan vuoden vanha keksintö, ja kuten tiedämme, muutos
Käytä vanhaa kannettavan tietokoneen kosketuslevyä tietokoneen ohjaamiseen!: 11 vaihetta (kuvilla)
Käytä vanhan kannettavan tietokoneen kosketuslevyä tietokoneen ohjaamiseen!: PS/2 -kannettavan kosketuslevyt ovat hienoimpia käyttöliittymiä, joita voi käyttää mikro -ohjaimen kanssa. Liukuvat ja napauttavat sormielet voivat osoittautua hallitseviksi tavaroiksi melko yksinkertaisella ja hauskalla tavalla. Tässä opetusohjelmassa yhdistetään yksi
Mobiililaite, kuten kannettavan tietokoneen automaattinen kirkkaudensäätö: 3 vaihetta
Mobiililaite, kuten kannettavien tietokoneiden automaattinen kirkkaudensäätö: Mobiililaitteissa, kuten tableteissa ja puhelimissa, on sisäänrakennettu valoanturi, joka helpottaa näytön kirkkauden automaattista muuttamista ympäristön valon voimakkuuden muuttuessa. Mietin, voisiko saman toiminnon toistaa kannettaville tietokoneille ja näin t
Kannettavan tietokoneen jäähdytystyyny DIY - Mahtavaa elämän hakkerointia CPU -tuulettimen kanssa - Luovia ideoita - Tietokoneen tuuletin: 12 vaihetta (kuvilla)
Kannettavan tietokoneen jäähdytystyyny DIY | Mahtavaa elämän hakkerointia CPU -tuulettimen kanssa | Luovia ideoita | Tietokoneen fani: Sinun on katsottava tämä video loppuun asti. videon ymmärtämiseksi
PSP: n käyttäminen tietokoneen ohjaussauvana ja tietokoneen ohjaaminen sitten PSP: n avulla: 5 vaihetta (kuvien kanssa)
PSP: n käyttäminen tietokoneen ohjaussauvana ja sen jälkeen tietokoneen ohjaaminen PSP: n avulla: Voit tehdä monia hienoja asioita PSP homebrew'n avulla, ja tässä ohjeessa opetan sinulle, miten voit käyttää PSP: tä peliohjaimena, mutta on myös ohjelma, jonka avulla voit käyttää ohjaussauvaa hiirenä. Tässä on mater