Tartalomjegyzék:
- 1. lépés: Alkatrészek
- 2. lépés: Összeszerelés és feltöltés
- 3. lépés: Az eszköz használata
- 4. lépés: Más megközelítések
Videó: A számítógéprendszer automatikus lezárása: 4 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Ebben az oktatóanyagban megvizsgáljuk a számítógép képernyőzárának biztonságát. Az operációs rendszerek konfigurálható időtúllépéssel rendelkeznek, amely lezárja a képernyőt, ha a felhasználó nem érintette meg az egeret vagy a billentyűzetet.
Az alapértelmezett érték általában egy perc. Ha ezt az alapértelmezettet követi, és forgalmas környezetben hagyja számítógépét, akkor valaki elérheti a számítógépet abban a percben, amíg a képernyő le nem zár. Ha néhány másodpercre állítja, nagyon gyakran megjelenik a lezárási képernyő, amikor nem érinti meg a billentyűzetet, és ez bosszantó…
Egy nap egy kolléganőm megkérdezte tőlem, hogy tudom -e "kijavítani" ezt a problémát valamilyen eszközzel, amely lezárja a számítógépet, amikor nincs ott, és elfogadtam a kihívást:)
A fejemben több lehetőséget is megvizsgáltam, mint például az arduinos és az infravörös hőmérő, a PIR -érzékelő, vagy esetleg az arcfelismerés használata a számítógépen, de egy egyszerűbb módszer mellett döntöttem:
Az Arduino Leonardo HID funkciót (a billentyűzet emulálása) és az ultrahangos távolságérzékelőt kombináljuk annak érzékelésére, hogy valaki használja -e a számítógépet, ha nem, akkor az eszköz billentyűkombinációt küld USB -n keresztül a számítógép lezárásához.
1. lépés: Alkatrészek
Mivel ez a koncepció bizonyítéka, a készüléket egy kenyérsütő táblára építjük
Szükséged lesz:
1. Arduino Leonardo (fontos a Leonardo használata, mert emulálni tudja a billentyűzetet)
2. HC-SR04 ultrahangos távolságérzékelő
3. 2 x 10 K változó ellenállás
4. kenyeretábla, kenyeretábla vezetékek
5. USB kábel
6. OLED kijelző (https://www.adafruit.com/product/931)
2. lépés: Összeszerelés és feltöltés
Először ellenőrizze, hogy rendelkezik -e az összes szükséges összetevővel és Arduino IDE -vel. Röviden átmegyek a csatlakozási lépésekre, és mindig megnézheti a mellékelt fritázó vázlatot
Összeszerelés
1. Tegye a Leonardo -t a kenyérpadra, és tartsa a helyén egy gumiszalaggal
2. tegye a két változó ellenállást, az OLED kijelzőt és az ultrahangos érzékelőt a kenyérsütő táblára
3. csatlakoztassa az alapokat és a vcc -ket
4. csatlakoztassa az ellenállások középső csapjait az arduino A0 és A1 -hez
5. csatlakoztassa a kijelző SDA -ját és SCL -jét a Leonardo -n megjelölt SDA és SCL -hez
6. Csatlakoztassa az ultrahangos érzékelő kioldó- és visszhangcsapját a Leonardo 12, 13 digitális csapjához
7. csatlakoztassa az USB -t a számítógéphez
Feltöltés
Először is le kell töltenie és telepítenie kell a szükséges arduino könyvtárakat:
1. GOFi2cOLED könyvtár:
2. Ultrahangos-HC-SR04 könyvtár:
Ha nem tudja, hogyan kell telepíteni az arduino könyvtárakat, nézze meg ezt az oktatóanyagot.
Miután letöltötte és telepítette a fenti könyvtárakat, klónozhatja vagy letöltheti az itt található arduino táromat: https://github.com/danionescu0/arduino, és ezt a vázlatot használjuk: https://github.com/danionescu0 /arduino/tree/master…
Vagy másolja és illessze be az alábbi kódot:
/ * * A projekt által használt könyvtárak: * * 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;
Ultrahangos ultrahangos (12, 13);
const bájt távolságPot = A0;
const byte timerPot = A1; const float percentMaxDistanceChangedAllowed = 25; int aktuálisDistance; előjel nélküli hosszú maxDistanceDetectionTime; bool lockTimerStarted = hamis;
üres beállítás ()
{Serial.begin (9600); Keyboard.begin (); initializeDisplay (); }
üres hurok ()
{clearDisplay (); ténylegesTávolság = getActualDistance (); writeStatusData (); doDisplay (); if (! lockTimerStarted && shouldEnableLockTimer ()) {lockTimerStarted = true; maxDistanceDetectionTime = millis (); Serial.println ("zárolási időzítő indul"); } else if (! shouldEnableLockTimer ()) {Serial.println ("zárolási időzítő letiltva"); lockTimerStarted = hamis; } if (shouldLockScreen ()) {lockScreen (); Serial.println ("Zárolt képernyő"); } késleltetés (100); }
bool shouldLockScreen ()
{return lockTimerStarted && (millis () - maxDistanceDetectionTime) / 1000> getTimer (); }
bool shouldEnableLockTimer ()
{int lubatudDistance = percentMaxDistanceChangedAllowed / 100 * getDistance (); return getTimer ()> 1 && getDistance ()> 1 && tényleges távolság - getDistance ()> megengedett távolság; }
void writeStatusData ()
{setDisplayText (1, "MinDistance:", String (getDistance ())); setDisplayText (1, "Timer:", String (getTimer ())); setDisplayText (1, "Aktuális távolság:", Karakterlánc (tényleges távolság)); int countDown = getTimer () - (millis () - maxDistanceDetectionTime) / 1000; String message = ""; if (shouldLockScreen ()) {message = "zár elküldve"; } else if (shouldEnableLockTimer () && countDown> = 0) {message = ".." + String (countDown); } else {message = "no"; } setDisplayText (1, "Zárolás:", üzenet); }
void initializeDisplay ()
{GOFoled.init (0x3C); GOFoled.clearDisplay (); GOFoled.setCursor (0, 0); }
void setDisplayText (byte fontSize, String label, String data)
{GOFoled.setTextSize (fontSize); GOFoled.println (label + ":" + data); }
void doDisplay ()
{GOFoled.display (); }
void clearDisplay ()
{GOFoled.clearDisplay (); GOFoled.setCursor (0, 0); }
int getActualDistance ()
{int távolságSzám = 0; for (byte i = 0; i <10; i ++) {distanceSum+= ultrahangos. Távolság (CM); }
visszatérési távolságSum / 10;
}
int getDistance ()
{visszatérési térkép (analogRead (timerPot), 0, 1024, 0, 200); }
int getTimer ()
{return map (analogRead (distancePot), 0, 1024, 0, 20); }
void lockScreen ()
{Serial.println ("megnyomás"); Keyboard.press (KEY_LEFT_CTRL); késleltetés (10); Keyboard.press (KEY_LEFT_ALT); késleltetés (10); Keyboard.write ('l'); késleltetés (10); Keyboard.releaseAll (); }
Végül csatlakoztassa az arduino -t a számítógéphez az USB -kábellel, és töltse fel a vázlatot az arduino -ba.
3. lépés: Az eszköz használata
Ha az arduino csatlakoztatva van a számítógéphez, akkor folyamatosan figyelni fogja az érzékelő előtti távolságot, és ha a távolság növekszik, elküldi a "zár" képernyő billentyűkombinációt.
A készülék néhány konfigurációval rendelkezik:
1. Normál távolság, a távolság az A0 -hoz csatlakoztatott változó ellenállás segítségével konfigurálható. A távolság az OLED kijelzőn is megjelenik. Amikor a távolság 25% -kal növekszik a beállított távolságtól, megkezdődik a visszaszámlálás
2. Időtúllépés (visszaszámlálás). Az időkorlát másodpercben az A1 -hez csatlakoztatott ellenállásból is konfigurálható. Amikor az időtúllépés lejár, a zár parancs elküldésre kerül
3. Zár billentyűkombináció. Az alapértelmezett zár billentyűkombináció Ubuntu Linux 18 (CTRL+ALT+L) esetén működik. A kombináció megváltoztatásához módosítania kell a vázlatot az operációs rendszernek megfelelően:
4. Időtúllépés és távolságvédelem. Mivel ez egy olyan eszköz, amely a billentyűzetet emulálja, jó ötlet, ha van egy mechanizmusa a billentyűzet funkcióinak kikapcsolására. A vázlatomban úgy döntöttem, hogy az időtúllépésnek és a távolságnak nagyobbnak kell lennie, mint "1". (tetszés szerint módosíthatja a kódban)
Keresse meg és módosítsa a "lockScreen ()" funkciót
void lockScreen () {Serial.println ("megnyomás"); Keyboard.press (KEY_LEFT_CTRL); késleltetés (10); Keyboard.press (KEY_LEFT_ALT); késleltetés (10); Keyboard.write ('l'); késleltetés (10); Keyboard.releaseAll (); }
Az arduino speciális kulcsok teljes listáját itt találja:
4. lépés: Más megközelítések
A megvalósítás előtt néhány más megvalósítást is fontolóra vettem:
1. Infravörös hőmérő (MLX90614 https://www.sparkfun.com/products/10740). Az infravörös hőmérő egy olyan eszköz, amely méri a hőmérsékletet a távoli tárgy által kibocsátott infravörös sugárzás elemzésével. Volt egy fekvőhelyem, és arra gondoltam, hogy talán felismerhetem a hőmérséklet -különbséget a számítógép előtt.
Csatlakoztattam, de a hőmérséklet különbség nagyon kicsi volt (ha elöl voltam vagy sem) 1-2 fok, és azt hittem, hogy ez nem lehet olyan megbízható
2. PIR érzékelő. (https://www.sparkfun.com/products/13285) Ezeket az olcsó érzékelőket "mozgásérzékelőként" forgalmazzák, de valóban érzékelik az infravörös sugárzás változásait, így elméletileg működhet, amikor egy személy elhagyja a számítógépet, amelyet az érzékelő észlelne Ezeket az érzékelőket is beépített időkorlát és érzékenységgombok. Szóval összekapcsoltam egyet és játszottam vele, de úgy tűnik, hogy az érzékelő nem közelről készült (széles látószögű), mindenféle téves riasztást adott.
3. Arcfelismerés a webkamera segítségével. Ez a lehetőség nagyon érdekesnek tűnt, mivel ezzel a számítógépes mezővel játszottam más projektjeimben, például: https://github.com/danionescu0/robot-camera-platfo… és https://github.com/danionescu0/image-processing- pr…
Ez egy sütemény volt! De volt néhány hátránya: a laptop fényképezőgépét nem lehetett más célokra használni, amikor a program futott, és ehhez néhány számítógépes erőforrás szükséges. Szóval ezt az ötletet is elvetettem.
Ha van további ötlete, hogyan lehetne ezt megvalósítani, ossza meg velünk, köszönöm!
Ajánlott:
Automatikus kézfertőtlenítő: 8 lépés
Automatikus kézfertőtlenítő: A COVID-19 világjárvány olyan dolog lett, amelyet a nyilvánosság nagyon gyakran hallott 2020 folyamán. Minden polgár, aki hallja a „COVID-19” szót, azonnal a „Veszélyes”, „Halálos”, „Tiszta maradjon” szóra fog gondolni”, És más szavakkal. Ez a COVID-19 is
DIY automatikus kézfertőtlenítő adagoló: 6 lépés
DIY automatikus kézfertőtlenítő adagoló: Ebben a projektben egy automatikus kézfertőtlenítő adagolót építünk. Ez a projekt Arduino -t, ultrahangos érzékelőt, vízpumpát és kézfertőtlenítőt fog használni. Ultrahangos érzékelőt használnak a kezek jelenlétének ellenőrzésére a fertőtlenítő gép kimenete alatt
WiFi automatikus növényadagoló tározóval - beltéri/kültéri művelési beállítás - automatikus vízi növények távoli megfigyeléssel: 21 lépés
WiFi automatikus növényadagoló tározóval - beltéri/kültéri művelési beállítások - Automatikus vízi növények távoli felügyelettel: Ebben az oktatóanyagban bemutatjuk, hogyan kell beállítani egy egyéni beltéri/kültéri növényadagoló rendszert, amely automatikusan öntözi a növényeket, és távolról felügyelhető az Adosia platform használatával
T-Structables: A számítógép lezárása: 3 lépés
T-Structables: Hogyan lehet lezárni a számítógépet: Hányan vannak közülük, akik valahol a számítógéped körül lapultak, amíg távol voltál? Nos, még ha ez nem is történt meg veled, nem akadályozhatja meg, hogy ez bármi letöltése vagy telepítése nélkül megtörténjen. Ebben a tanulságosban megmutatom
A hurok lezárása a felületre szerelt forrasztásnál: 4 lépés
A hurok lezárása a felületre szerelt forrasztásnál: A hőmérséklet a világ legegyszerűbb dologának tűnik. Kapcsolja be a tűzhelyet, és állítsa be a kívánt hőmérsékletet. Reggel kapcsolja be a kemencét, és állítsa be a termosztátot. Állítsa be a hideg és meleg vizet, hogy a zuhany megfelelő legyen