فهرست مطالب:

سیستم قفل خودکار کامپیوتر: 4 مرحله
سیستم قفل خودکار کامپیوتر: 4 مرحله

تصویری: سیستم قفل خودکار کامپیوتر: 4 مرحله

تصویری: سیستم قفل خودکار کامپیوتر: 4 مرحله
تصویری: قفل شدن خودکار ویندوز به کمک Dynamic Lock 2024, جولای
Anonim
Image
Image
مونتاژ و بارگذاری
مونتاژ و بارگذاری

در این آموزش ما قصد داریم امنیت قفل صفحه کامپیوتر را بررسی کنیم. سیستم عامل ها دارای زمان وقفه قابل تنظیم هستند که اگر کاربر موس یا صفحه کلید را لمس نکرده باشد ، صفحه شما قفل می شود.

معمولاً پیش فرض حدود یک دقیقه است. اگر از این پیش فرض پیروی کنید و رایانه خود را در یک محیط شلوغ بگذارید ، ممکن است کسی در همان دقیقه به رایانه شما دسترسی پیدا کند تا صفحه قفل شود. اگر آن را روی چند ثانیه تنظیم کنید ، هنگامی که صفحه کلید را لمس نمی کنید و این آزاردهنده است ، اغلب قفل صفحه را دریافت خواهید کرد…

یک روز یکی از همکاران کار از من پرسید که آیا می توانم این مشکل را با دستگاهی که کامپیوتر را قفل می کند "در صورت عدم وجود" حل کنم ، و من چالش را پذیرفتم:)

من چندین گزینه در ذهنم مانند استفاده از آردوینو و سنسور دماسنج مادون قرمز ، سنسور PIR یا شاید استفاده از تشخیص چهره در رایانه را بررسی کرده ام ، اما به روش ساده تری روی آورده ام:

ما قصد داریم عملکرد Arduino Leonardo HID (شبیه سازی صفحه کلید) را با یک سنسور فاصله مافوق صوت ترکیب کنیم تا تشخیص دهیم که آیا شخصی از رایانه استفاده می کند یا نه ، اگر دستگاه ترکیبی از کلیدها را از طریق USB برای قفل کردن رایانه ارسال کند.

مرحله 1: اجزاء

از آنجا که این یک اثبات مفهوم است ، ما قصد داریم دستگاه را روی یک تخته نان بسازیم

شما نیاز دارید:

1. آردوینو لئوناردو (استفاده از لئوناردو مهم است زیرا می تواند از صفحه کلید تقلید کند)

2. سنسور فاصله فراصوت HC-SR04

3. مقاومتهای متغیر 2 x 10 K

4. تخته نان ، سیم های نان بردی

5. کابل USB

6. صفحه نمایش OLED (https://www.adafruit.com/product/931)

مرحله 2: مونتاژ و بارگذاری

مونتاژ و بارگذاری
مونتاژ و بارگذاری

ابتدا بررسی کنید که آیا همه اجزای مورد نیاز و شناسه آردوینو را دارید یا خیر. من به طور مختصر به مراحل اتصال می روم ، و شما همیشه می توانید به شماتیک متصل ضمیمه شده نگاهی بیندازید

مونتاژ

1. لئوناردو را روی تخته نان بگذارید و با یک نوار لاستیکی در جای خود نگه دارید

2. دو مقاومت متغیر ، صفحه نمایش OLED و سنسور اولتراسونیک را روی تخته نان قرار دهید

3. متصل زمین و vcc را

4. پین های وسط مقاومتها را به arduino A0 و A1 وصل کنید

5. SDA و SCL صفحه نمایش را به SDA و SCL مشخص شده روی Leonardo وصل کنید

6. ماشه و پین اکو سنسور اولتراسونیک را به 12 ، 13 پین دیجیتال لئوناردو وصل کنید

7. USB را به کامپیوتر وصل کنید

بارگذاری

ابتدا باید کتابخانه های arduino لازم را بارگیری و نصب کنید:

1. کتابخانه GOFi2cOLED:

2. کتابخانه Ultrasonic-HC-SR04:

اگر نمی دانید چگونه کتابخانه های arduino را نصب کنید ، این آموزش را ببینید.

پس از بارگیری و نصب کتابخانه های بالا ، می توانید مخزن arduino من را در اینجا کلون یا بارگیری کنید: https://github.com/danionescu0/arduino ، و ما از این طرح استفاده می کنیم: https://github.com/danionescu0 /arduino/tree/master…

یا می توانید کد زیر را کپی و جایگذاری کنید:

/ * * کتابخانه های مورد استفاده در این پروژه: * * GOFi2cOLED: https://github.com/hramrach/GOFi2cOLED * Ultrasonic-HC-SR04: https://github.com/JRodrigoTech/Ultrasonic-HC-SR04 */#include "Keyboard.h" #شامل "Wire.h" #شامل "GOFi2cOLED.h" #شامل "Ultrasonic.h"

GOFi2cOLED GOFoled ؛

اولتراسونیک اولتراسونیک (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 ()؛ }

حلقه خالی ()

{clearDisplay ()؛ actualDistance = getActualDistance ()؛ writeStatusData ()؛ doDisplay ()؛ if (! lockTimerStarted && shouldEnableLockTimer ()) {lockTimerStarted = true؛ maxDistanceDetectionTime = millis ()؛ Serial.println ("تایمر قفل شروع می شود") ؛ } else if (! shouldEnableLockTimer ()) {Serial.println ("تایمر قفل غیرفعال است") ؛ lockTimerStarted = false؛ } if (shouldLockScreen ()) {lockScreen ()؛ Serial.println ("صفحه قفل") ؛ } تأخیر (100) ؛ }

bool shouldLockScreen ()

{return lockTimerStarted && (millis () - maxDistanceDetectionTime) / 1000> getTimer ()؛ }

bool shouldEnableLockTimer ()

{int allowDistance = percentMaxDistanceChangedAllowed / 100 * getDistance ()؛ بازگشت getTimer ()> 1 && getDistance ()> 1 && actualDistance - getDistance ()> مجازDistance؛ }

void writeStatusData ()

{setDisplayText (1 ، "حداقل فاصله:" ، رشته (getDistance ())) ؛ setDisplayText (1 ، "Timer:" ، String (getTimer ())) ؛ setDisplayText (1 ، "ActualDistance:" ، String (actualDistance)) ؛ int countDown = getTimer () - (millis () - maxDistanceDetectionTime) / 1000؛ پیام رشته = ""؛ if (shouldLockScreen ()) {message = "قفل ارسال شد" ؛ } else if (shouldEnableLockTimer () && countDown> = 0) {message = ".." + String (countDown)؛ } else {message = "no"؛ } setDisplayText (1 ، "قفل شدن:" ، پیام) ؛ }

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 distanceSum = 0؛ برای (بایت i = 0 ؛ i <10؛ i ++) {distanceSum+= فراصوت. رتبه بندی (CM) ؛ }

فاصله بازگشت جمع / 10 ؛

}

int getDistance ()

{بازگشت نقشه (analogRead (timerPot) ، 0 ، 1024 ، 0 ، 200) ؛ }

int getTimer ()

{نقشه بازگشت (analogRead (distancePot) ، 0 ، 1024 ، 0 ، 20) ؛ }

void lockScreen ()

{Serial.println ("فشار دادن") ؛ Keyboard.press (KEY_LEFT_CTRL) ؛ تأخیر (10) ؛ Keyboard.press (KEY_LEFT_ALT) ؛ تأخیر (10) ؛ Keyboard.write ('l')؛ تأخیر (10) ؛ Keyboard.releaseAll ()؛ }

در نهایت آردوینو را با استفاده از کابل usb کامپیوتر متصل کرده و طرح را در آردوینو بارگذاری کنید.

مرحله 3: استفاده از دستگاه

با استفاده از دستگاه
با استفاده از دستگاه

هنگامی که آردوینو به کامپیوتر متصل می شود ، به طور مداوم فاصله جلوی سنسور را کنترل می کند و در صورت افزایش فاصله ، ترکیبی از کلیدهای "قفل" را به رایانه ارسال می کند.

این دستگاه دارای برخی تنظیمات است:

1. فاصله طبیعی ، فاصله را می توان با استفاده از مقاومت متغیر متصل به A0 پیکربندی کرد. فاصله نیز در OLED نمایش داده می شود. هنگامی که فاصله 25 from از فاصله تعیین شده افزایش می یابد ، شمارش معکوس آغاز می شود

2. زمان پایان (شمارش معکوس). زمان وقفه در ثانیه نیز از طریق مقاومت متصل به A1 قابل تنظیم است. پس از پایان مهلت زمانی ، فرمان قفل ارسال می شود

3. قفل ترکیب کلید. ترکیب کلید قفل پیش فرض برای کار در لینوکس اوبونتو 18 (CTRL+ALT+L) تنظیم شده است. برای تغییر ترکیب ، باید طرح خود را با توجه به سیستم عامل خود تغییر دهید:

4. مهلت زمانی و حفاظت از فاصله. از آنجا که این دستگاه شبیه ساز صفحه کلید است ، ایده خوبی است که مکانیزمی برای غیرفعال کردن عملکرد صفحه کلید داشته باشید. در طرح خود انتخاب کرده ام که فاصله زمانی و فاصله باید بیشتر از "1" باشد. (در صورت تمایل می توانید آن را در کد تغییر دهید)

عملکرد "lockScreen ()" را پیدا کرده و تغییر دهید

void lockScreen () {Serial.println ("فشار دادن")؛ Keyboard.press (KEY_LEFT_CTRL) ؛ تأخیر (10) ؛ Keyboard.press (KEY_LEFT_ALT) ؛ تأخیر (10) ؛ Keyboard.write ('l')؛ تأخیر (10) ؛ Keyboard.releaseAll ()؛ }

برای مشاهده لیست کامل کلیدهای ویژه arduino ، اینجا را بررسی کنید:

مرحله 4: سایر رویکردها

قبل از این پیاده سازی ، برخی از پیاده سازی های دیگر را نیز در نظر گرفته ام:

1. دماسنج مادون قرمز (MLX90614 https://www.sparkfun.com/products/10740). دماسنج مادون قرمز دستگاهی است که دما را با تجزیه و تحلیل تشعشعات مادون قرمز ساطع شده از یک جسم در فاصله اندازه گیری می کند. من یکی را دراز کشیده بودم و فکر کردم شاید بتوانم تفاوت دما را در مقابل کامپیوتر تشخیص دهم.

من آن را وصل کردم ، اما اختلاف دما بسیار کم بود (زمانی که من جلو بودم یا نبودم) 1-2 درجه و فکر می کردم نمی تواند خیلی قابل اعتماد باشد

2. سنسور PIR. (https://www.sparkfun.com/products/13285) این سنسورهای ارزان قیمت به عنوان "سنسور حرکت" به بازار عرضه می شوند ، اما واقعاً تغییرات تابش مادون قرمز را تشخیص می دهند ، بنابراین از لحاظ تئوری می تواند کار کند ، هنگامی که شخصی کامپیوتر را ترک می کند ، سنسور تشخیص می دهد این.. همچنین این سنسورها دارای دکمه های timeout و حساسیت هستند. بنابراین من یکی را وصل کردم و با آن بازی کردم اما به نظر می رسد سنسوری که برای فاصله نزدیک ساخته نشده است (زاویه وسیعی دارد) ، انواع هشدارهای کاذب را می دهد.

3. تشخیص چهره با استفاده از وب کم. این گزینه بسیار جالب به نظر می رسید ، زیرا در پروژه های دیگر خود مانند: روابط عمومی…

این یک تکه کیک بود! اما اشکالاتی وجود داشت: دوربین لپ تاپ نمی تواند برای اهداف دیگر در هنگام اجرای برنامه مورد استفاده قرار گیرد ، و برخی منابع کامپیوتر برای این مورد نیاز است. بنابراین من نیز این ایده را کنار گذاشتم.

اگر ایده های بیشتری در مورد نحوه انجام این کار دارید ، لطفاً آنها را به اشتراک بگذارید ، با تشکر!

توصیه شده: