विषयसूची:

ऑटो लॉक कंप्यूटर सिस्टम: 4 कदम
ऑटो लॉक कंप्यूटर सिस्टम: 4 कदम

वीडियो: ऑटो लॉक कंप्यूटर सिस्टम: 4 कदम

वीडियो: ऑटो लॉक कंप्यूटर सिस्टम: 4 कदम
वीडियो: Increase your PC power with simple steps and Run GTA IV & V very somthly without any lag 2024, नवंबर
Anonim
Image
Image
विधानसभा और अपलोड
विधानसभा और अपलोड

इस ट्यूटोरियल में हम कंप्यूटर स्क्रीन लॉक की सुरक्षा का पता लगाने जा रहे हैं। ऑपरेटिंग सिस्टम में एक कॉन्फ़िगर करने योग्य टाइमआउट होता है जो आपकी स्क्रीन को लॉक कर देगा यदि उपयोगकर्ता ने माउस या कीबोर्ड को नहीं छुआ है।

आमतौर पर डिफ़ॉल्ट लगभग एक मिनट का होता है। यदि आप इस डिफ़ॉल्ट का पालन करते हैं और अपने कंप्यूटर को व्यस्त वातावरण में छोड़ देते हैं, तो कोई व्यक्ति आपके कंप्यूटर को उस मिनट में तब तक एक्सेस कर सकता है जब तक कि स्क्रीन लॉक न हो जाए। यदि आप इसे कुछ सेकंड के लिए सेट करते हैं तो आपको लॉक स्क्रीन बहुत बार मिलेगी जब आप कीबोर्ड को स्पर्श नहीं कर रहे हैं और यह कष्टप्रद है …

एक दिन एक कार्य सहयोगी ने मुझसे पूछा कि क्या मैं इस समस्या को किसी ऐसे उपकरण द्वारा "ठीक" कर सकता हूं जो कंप्यूटर को लॉक कर देता है जब वह वहां नहीं होता है, और मैंने चुनौती ली:)

मैंने अपने सिर में कई विकल्पों की खोज की है जैसे कि arduinos और एक इन्फ्रारेड थर्मामीटर सेंसर, PIR सेंसर या शायद कंप्यूटर पर फेस डिटेक्शन का उपयोग करना, लेकिन मैं एक सरल विधि के लिए बस गया हूं:

हम Arduino लियोनार्डो HID कार्यक्षमता (एमुलेट कीबोर्ड) को एक अल्ट्रासोनिक दूरी सेंसर के साथ संयोजित करने जा रहे हैं ताकि यह पता लगाया जा सके कि कोई व्यक्ति कंप्यूटर का उपयोग कर रहा है, यदि नहीं, तो डिवाइस कंप्यूटर को लॉक करने के लिए USB के माध्यम से एक कुंजी संयोजन भेजेगा।

चरण 1: अवयव

चूंकि यह अवधारणा का प्रमाण है, इसलिए हम डिवाइस को ब्रेडबोर्ड पर बनाने जा रहे हैं

आपको ज़रूरत होगी:

1. Arduino लियोनार्डो (लियोनार्डो का उपयोग करना महत्वपूर्ण है क्योंकि यह कीबोर्ड का अनुकरण कर सकता है)

2. एचसी-एसआर04 अल्ट्रासोनिक दूरी सेंसर

3. 2 x 10 K चर प्रतिरोधक

4. ब्रेडबोर्ड, ब्रेडबोर्ड तार

5. यूएसबी केबल

6. OLED डिस्प्ले (https://www.adafruit.com/product/931)

चरण 2: विधानसभा और अपलोड

विधानसभा और अपलोड
विधानसभा और अपलोड

पहले जांचें कि क्या आपके पास सभी आवश्यक घटक और एक Arduino IDE है। मैं संक्षेप में कनेक्शन चरणों पर जा रहा हूं, और आप हमेशा संलग्न फ्रिटिंग योजनाबद्ध पर एक नज़र डाल सकते हैं

सभा

1. लियोनार्डो को ब्रेडबोर्ड पर रखें और इसे रबर बैंड से पकड़ें

2. ब्रेडबोर्ड पर दो वैरिएबल रेसिस्टर्स, OLED डिस्प्ले और अल्ट्रासोनिक सेंसर लगाएं

3. कनेक्ट ग्राउंड और वीसीसी's

4. प्रतिरोधों के मध्य पिनों को arduino A0 और A1. से कनेक्ट करें

5. डिस्प्ले के एसडीए और एससीएल को लियोनार्डो पर चिह्नित एसडीए और एससीएल से कनेक्ट करें

6. अल्ट्रासोनिक सेंसर के ट्रिगर और इको पिन को लियोनार्डो के 12,13 डिजिटल पिन से कनेक्ट करें

7. USB को कंप्यूटर से कनेक्ट करें

डालना

सबसे पहले आपको आवश्यक arduino लाइब्रेरी को डाउनलोड और इंस्टॉल करना होगा:

1. GOFi2cOLED पुस्तकालय:

2. अल्ट्रासोनिक-एचसी-एसआर04 पुस्तकालय:

यदि आप नहीं जानते कि आर्डिनो लाइब्रेरी कैसे स्थापित करें, तो इस ट्यूटोरियल को देखें।

आपके द्वारा उपरोक्त पुस्तकालयों को डाउनलोड और स्थापित करने के बाद, आप यहाँ स्थित मेरे arduino रिपॉजिटरी को क्लोन या डाउनलोड कर सकते हैं: https://github.com/danionescu0/arduino, और हम इस स्केच का उपयोग करेंगे: https://github.com/danionescu0 /आर्डिनो/पेड़/मास्टर…

या आप नीचे दिए गए कोड को कॉपी और पेस्ट कर सकते हैं:

/* *इस परियोजना द्वारा उपयोग किए जाने वाले पुस्तकालय: * *GOFi2cOLED: https://github.com/hramrach/GOFi2cOLED * अल्ट्रासोनिक-HC-SR04: https://github.com/JRodrigoTech/Ultraonic-HC-SR04 */ #include "कीबोर्ड.एच" #include "Wire.h" #include "GOFi2cOLED.h" #include "Ultrasonic.h"

GOFi2cOLED GOFoled;

अल्ट्रासोनिक अल्ट्रासोनिक(१२, १३);

कास्ट बाइट दूरी पॉट = ए0;

कास्ट बाइट टाइमर पॉट = ए 1; कास्ट फ्लोट प्रतिशतMaxDistanceChangedAllowed = 25; इंट वास्तविक दूरी; अहस्ताक्षरित लंबी मैक्सडिस्टेंसडिटेक्शनटाइम; बूल लॉकटाइमरस्टार्ट = झूठा;

व्यर्थ व्यवस्था()

{ सीरियल.बेगिन (९६००); कीबोर्ड.बेगिन (); इनिशियलाइज़ डिस्प्ले (); }

शून्य लूप ()

{स्पष्ट प्रदर्शन (); वास्तविक दूरी = वास्तविक दूरी प्राप्त करें (); राइटस्टैटसडेटा (); डूडिस्प्ले (); अगर (!lockTimerStarted && shouldEnableLockTimer ()) {lockTimerStarted = true; मैक्सडिस्टेंसडिटेक्शनटाइम = मिली (); Serial.println ("लॉक टाइमर शुरू"); } और अगर (! shouldEnableLockTimer ()) {Serial.println ("लॉक टाइमर अक्षम"); लॉकटाइमरस्टार्ट = झूठा; } अगर (चाहिए लॉकस्क्रीन ()) {लॉकस्क्रीन (); Serial.println ("लॉक स्क्रीन"); } देरी (१००); }

बूल चाहिएलॉकस्क्रीन ()

{रिटर्न लॉकटाइमरस्टार्टेड && (मिलिस () - मैक्सडिस्टेंस डिटेक्शनटाइम) / १०००> गेटटाइमर (); }

बूल चाहिएEnableLockTimer ()

{ इंट अनुमत दूरी = प्रतिशत मैक्सडिस्टेंस चेंजअलाउटेड / 100 * गेटडिस्टेंस (); वापसी getTimer ()> 1 && getDistance ()> 1 && वास्तविक दूरी - getDistance ()> अनुमत दूरी; }

शून्य राइटस्टैटसडेटा ()

{setDisplayText(1, "मिनडिस्टेंस:", स्ट्रिंग (getDistance ())); setDisplayText(1, "टाइमर:", स्ट्रिंग (getTimer ())); setDisplayText(1, "वास्तविक दूरी:", स्ट्रिंग (वास्तविक दूरी)); इंट काउंटडाउन = गेटटाइमर () - (मिलिस () - मैक्सडिस्टेंस डिटेक्शनटाइम) / १०००; स्ट्रिंग संदेश = ""; अगर (चाहिए लॉकस्क्रीन ()) {संदेश = "लॉक भेजा गया"; } और अगर (चाहिए सक्षम लॉकटाइमर () && उलटी गिनती> = 0) {संदेश = ".." + स्ट्रिंग (काउंटडाउन); } और {संदेश = "नहीं"; } setDisplayText(1, "लॉकिंग:", संदेश); }

शून्य प्रारंभिक प्रदर्शन ()

{ GOFoled.init (0x3C); GOFoled.clearDisplay (); GOFoled.setCursor(0, 0); }

शून्य सेटडिस्प्लेटेक्स्ट (बाइट फ़ॉन्ट आकार, स्ट्रिंग लेबल, स्ट्रिंग डेटा)

{GOFoled.setTextSize(fontSize); GOFoled.println (लेबल + ":" + डेटा); }

शून्य doDisplay ()

{ GOFoled.display (); }

शून्य स्पष्ट प्रदर्शन ()

{ GOFoled.clearDisplay (); GOFoled.setCursor(0, 0); }

int getActualDistance ()

{इंट डिस्टेंससम = 0; के लिए (बाइट i=0;i<10;i++) { डिस्टेंससम += अल्ट्रासोनिक। रेंजिंग (सीएम); }

वापसी दूरीसम / 10;

}

इंट गेटडिस्टेंस ()

{वापसी नक्शा (एनालॉग रीड (टाइमरपॉट), 0, 1024, 0, 200); }

इंट गेटटाइमर ()

{वापसी नक्शा (एनालॉग रीड (डिस्टेंसपॉट), 0, 1024, 0, 20); }

शून्य लॉकस्क्रीन ()

{ सीरियल.प्रिंट्लन ("दबाना"); कीबोर्ड.प्रेस (KEY_LEFT_CTRL); देरी(10); कीबोर्ड.प्रेस (KEY_LEFT_ALT); देरी(10); कीबोर्ड.राइट ('एल'); देरी(10); कीबोर्ड.रिलीज ऑल (); }

अंत में USB केबल का उपयोग करके arduino को कंप्यूटर से कनेक्ट करें, और स्केच को arduino में अपलोड करें।

चरण 3: डिवाइस का उपयोग करना

डिवाइस का उपयोग करना
डिवाइस का उपयोग करना

जब arduino कंप्यूटर से जुड़ा होता है तो यह लगातार सेंसर के सामने की दूरी की निगरानी करेगा और दूरी बढ़ने पर कंप्यूटर को "लॉक" स्क्रीन कुंजी संयोजन भेजेगा।

डिवाइस में कुछ कॉन्फ़िगरेशन हैं:

1. सामान्य दूरी, दूरी को A0 से जुड़े चर अवरोधक का उपयोग करके कॉन्फ़िगर किया जा सकता है। दूरी भी OLED पर प्रदर्शित होती है। जब सेट की गई दूरी से 25% की दूरी बढ़ जाएगी, तो उलटी गिनती शुरू हो जाएगी

2. टाइमआउट (उलटी गिनती)। सेकंड में समयबाह्य A1 से जुड़े रोकनेवाला से भी विन्यास योग्य है। जब टाइमआउट समाप्त हो जाता है तो लॉक कमांड भेजा जाएगा

3. कुंजी संयोजन लॉक करें। डिफ़ॉल्ट लॉक कुंजी संयोजन को Ubuntu Linux 18 (CTRL+ALT+L) के लिए काम करने के लिए सेट किया गया है। संयोजन को बदलने के लिए आपको अपने स्केच को अपने ऑपरेशन सिस्टम के अनुसार संशोधित करने की आवश्यकता है:

4. समयबाह्य और दूरी की सुरक्षा। चूंकि यह एक ऐसा उपकरण है जो कीबोर्ड का अनुकरण करता है, इसलिए कीबोर्ड की कार्यक्षमता को निष्क्रिय करने का एक तंत्र होना एक अच्छा विचार है। अपने स्केच में मैंने चुना है कि टाइमआउट और दूरी "1" से अधिक होनी चाहिए। (यदि आप चाहें तो कोड में इसे संशोधित कर सकते हैं)

"लॉकस्क्रीन ()" फ़ंक्शन का पता लगाएँ और बदलें

शून्य लॉकस्क्रीन () {Serial.println ("दबाना"); कीबोर्ड.प्रेस (KEY_LEFT_CTRL); देरी(10); कीबोर्ड.प्रेस (KEY_LEFT_ALT); देरी(10); कीबोर्ड.राइट ('एल'); देरी(10); कीबोर्ड.रिलीज ऑल (); }

Arduino विशेष कुंजियों की पूरी सूची के लिए, यहां देखें:

चरण 4: अन्य दृष्टिकोण

इस कार्यान्वयन से पहले मैंने कुछ अन्य कार्यान्वयनों पर भी विचार किया है:

1. इन्फ्रारेड थर्मामीटर (MLX90614 https://www.sparkfun.com/products/10740)। एक इन्फ्रारेड थर्मामीटर एक ऐसा उपकरण है जो किसी वस्तु द्वारा दूर से उत्सर्जित अवरक्त विकिरणों का विश्लेषण करके तापमान को मापता है। मेरे पास एक पड़ा हुआ था और मैंने सोचा कि शायद मैं कंप्यूटर के सामने तापमान में अंतर का पता लगा सकता हूं।

मैंने इसे जोड़ दिया है, लेकिन तापमान का अंतर बहुत छोटा था (जब मैं सामने था या नहीं) 1-2 डिग्री और मुझे लगा कि यह इतना विश्वसनीय नहीं हो सकता

2. पीर सेंसर। (https://www.sparkfun.com/products/13285) इस सस्ते सेंसर को "मोशन सेंसर" के रूप में विपणन किया जाता है, लेकिन वे वास्तव में इन्फ्रारेड विकिरण में परिवर्तन का पता लगाते हैं, इसलिए सिद्धांत रूप में यह काम कर सकता है, जब कोई व्यक्ति कंप्यूटर छोड़ता है तो सेंसर पता लगाएगा कि.. इसके अलावा इन सेंसर में टाइमआउट और सेंसिटिविटी नॉब्स का निर्माण होता है। तो मैंने एक को जोड़ दिया है और इसके साथ खेला है लेकिन ऐसा लगता है कि सेंसर इसे एक करीबी सीमा के लिए नहीं बनाया गया है (इसमें एक विस्तृत कोण है), इसने सभी प्रकार के झूठे अलर्ट दिए।

3. वेबकैम का उपयोग करके चेहरा पहचानना। यह विकल्प बहुत दिलचस्प लग रहा था, जैसा कि मैंने अपनी अन्य परियोजनाओं में इस कंप्यूटर क्षेत्र के साथ खेला: https://github.com/danionescu0/robot-camera-platfo… और https://github.com/danionescu0/image-processing- जनसंपर्क…

यह केक का टुकड़ा था! लेकिन कुछ कमियां थीं: जब प्रोग्राम चल रहा था तब लैपटॉप कैमरा का उपयोग अन्य उद्देश्यों के लिए नहीं किया जा सकता था, और उसके लिए कुछ कंप्यूटर संसाधनों की आवश्यकता होगी। इसलिए मैंने यह विचार भी छोड़ दिया है।

यदि आपके पास इस बारे में और विचार हैं कि यह कैसे किया जा सकता है, तो कृपया उन्हें साझा करें, धन्यवाद!

सिफारिश की: