সুচিপত্র:
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:01
এই টিউটোরিয়ালে আমরা কম্পিউটার স্ক্রিন লকের নিরাপত্তা অন্বেষণ করতে যাচ্ছি। অপারেটিং সিস্টেমে একটি কনফিগারযোগ্য টাইমআউট থাকে যা ব্যবহারকারী মাউস বা কীবোর্ড স্পর্শ না করলে আপনার স্ক্রিন লক করে দেবে।
সাধারণত ডিফল্ট প্রায় এক মিনিট। আপনি যদি এই ডিফল্টটি অনুসরণ করেন এবং আপনার কম্পিউটারকে ব্যস্ত পরিবেশে ছেড়ে দেন তাহলে কেউ স্ক্রিন লক না হওয়া পর্যন্ত সেই মিনিটে আপনার কম্পিউটার অ্যাক্সেস করতে পারে। আপনি যদি এটি কয়েক সেকেন্ডে সেট করেন তবে আপনি যখন আপনি কীবোর্ডটি স্পর্শ করছেন না তখন আপনি প্রায়শই লক স্ক্রিনটি পাবেন এবং এটি বিরক্তিকর…
একদিন একজন কর্মী সহকর্মী আমাকে জিজ্ঞাসা করেছিলেন যে আমি এই সমস্যাটি কোন ধরনের যন্ত্র দ্বারা "ঠিক" করতে পারি যা কম্পিউটারটি লক করে যখন সে সেখানে নেই, এবং আমি চ্যালেঞ্জটি নিয়েছিলাম:)
আমি আমার মাথায় বেশ কয়েকটি বিকল্প অনুসন্ধান করেছি যেমন arduinos এবং একটি ইনফ্রারেড থার্মোমিটার সেন্সর, PIR সেন্সর বা কম্পিউটারে মুখ সনাক্তকরণ ব্যবহার করে, কিন্তু আমি একটি সহজ পদ্ধতিতে স্থির হয়েছি:
আমরা একটি Arduino Leonardo HID কার্যকারিতা (ইমুলেট কীবোর্ড) কে একটি অতিস্বনক দূরত্ব সেন্সরের সাথে একত্রিত করতে যাচ্ছি যে একজন ব্যক্তি কম্পিউটার ব্যবহার করছে কিনা তা সনাক্ত করতে, যদি না হয় তবে ডিভাইসটি কম্পিউটারকে লক করার জন্য USB এর মাধ্যমে একটি কী সমন্বয় পাঠাবে।
ধাপ 1: উপাদান
কারণ এটি ধারণার প্রমাণ আমরা একটি ব্রেডবোর্ডে ডিভাইসটি তৈরি করতে যাচ্ছি
আপনার প্রয়োজন হবে:
1. আরডুইনো লিওনার্দো (লিওনার্দো ব্যবহার করা গুরুত্বপূর্ণ কারণ এটি কীবোর্ড অনুকরণ করতে পারে)
2. HC-SR04 অতিস্বনক দূরত্ব সেন্সর
3. 2 x 10 K পরিবর্তনশীল প্রতিরোধক
4. breadboard, breadboard তারের
5. ইউএসবি কেবল
6. OLED ডিসপ্লে (https://www.adafruit.com/product/931)
ধাপ 2: সমাবেশ এবং আপলোড
প্রথমে আপনার সমস্ত প্রয়োজনীয় উপাদান এবং একটি Arduino IDE আছে কিনা তা পরীক্ষা করুন। আমি সংক্ষিপ্তভাবে সংযোগের ধাপগুলিতে যাচ্ছি, এবং আপনি সর্বদা সংযুক্ত ফ্রিজিং পরিকল্পনার দিকে নজর দিতে পারেন
সমাবেশ
1. লিওনার্দোকে রুটিবোর্ডে রাখুন এবং একটি রাবার ব্যান্ড দিয়ে এটিকে ধরে রাখুন
2. দুটি পরিবর্তনশীল প্রতিরোধক, OLED প্রদর্শন এবং অতিস্বনক সেন্সর ব্রেডবোর্ডে রাখুন
3. সংযোগ স্থল এবং vcc এর
4. প্রতিরোধকের মাঝের পিনগুলিকে আরডুইনো A0 এবং A1 এর সাথে সংযুক্ত করুন
5. ডিসপ্লের এসডিএ এবং এসসিএল লিওনার্দোতে চিহ্নিত এসডিএ এবং এসসিএল এর সাথে সংযুক্ত করুন
6. লিওনার্দোর 12, 13 ডিজিটাল পিনের সাথে অতিস্বনক সেন্সরের ট্রিগার এবং ইকো পিন সংযুক্ত করুন
7. কম্পিউটারে ইউএসবি সংযুক্ত করুন
আপলোড করুন
প্রথমে আপনাকে প্রয়োজনীয় আরডুইনো লাইব্রেরি ডাউনলোড এবং ইনস্টল করতে হবে:
1. GOFi2cOLED লাইব্রেরি:
2. অতিস্বনক- HC-SR04 লাইব্রেরি:
আপনি যদি আরডুইনো লাইব্রেরি কিভাবে ইনস্টল করতে জানেন না এই টিউটোরিয়ালটি দেখুন।
আপনি উপরের লাইব্রেরিগুলি ডাউনলোড এবং ইনস্টল করার পরে, আপনি এখানে অবস্থিত আমার arduino সংগ্রহস্থলটি ক্লোন বা ডাউনলোড করতে পারেন: https://github.com/danionescu0/arduino, এবং আমরা এই স্কেচটি ব্যবহার করব: https://github.com/danionescu0 /arduino/গাছ/মাস্টার…
অথবা আপনি নীচের কোডটি কপি এবং পেস্ট করতে পারেন:
/ * * এই প্রকল্পের দ্বারা ব্যবহৃত লাইব্রেরি: "Keyboard.h" #অন্তর্ভুক্ত "Wire.h" #অন্তর্ভুক্ত "GOFi2cOLED.h" #অন্তর্ভুক্ত "Ultrasonic.h"
GOFi2cOLED GOFoled;
অতিস্বনক অতিস্বনক (12, 13);
const বাইট দূরত্ব পট = A0;
const বাইট টাইমারপট = A1; const float percentMaxDistanceChangedAllowed = 25; int প্রকৃত দূরত্ব; স্বাক্ষরবিহীন দীর্ঘ maxDistanceDetectionTime; bool lockTimerStarted = মিথ্যা;
অকার্যকর সেটআপ()
{Serial.begin (9600); Keyboard.begin (); initializeDisplay (); }
অকার্যকর লুপ ()
{clearDisplay (); প্রকৃত দূরত্ব = getActualDistance (); স্ট্যাটাসডাটা লিখুন (); doDisplay (); যদি (! lockTimerStarted && shouldEnableLockTimer ()) {lockTimerStarted = true; maxDistanceDetectionTime = মিলিস (); Serial.println ("লক টাইমার শুরু"); } অন্যথায় যদি (! shouldEnableLockTimer ()) {Serial.println ("লক টাইমার অক্ষম"); lockTimerStarted = মিথ্যা; } যদি (shouldLockScreen ()) {lockScreen (); Serial.println ("লক স্ক্রিন"); } বিলম্ব (100); }
bool shouldLockScreen ()
{return lockTimerStarted && (millis () - maxDistanceDetectionTime) / 1000> getTimer (); }
bool shouldEnableLockTimer ()
{int permissionDistance = percentMaxDistanceChangedAllowed / 100 * getDistance (); ফেরত getTimer ()> 1 && getDistance ()> 1 && actualDistance - getDistance ()> allowDistance; }
অকার্যকর স্ট্যাটাসডাটা ()
{setDisplayText (1, "MinDistance:", String (getDistance ())); setDisplayText (1, "টাইমার:", স্ট্রিং (getTimer ())); setDisplayText (1, "ActualDistance:", String (actualDistance)); int countDown = getTimer () - (millis () - maxDistanceDetectionTime) / 1000; স্ট্রিং বার্তা = ""; যদি (shouldLockScreen ()) {message = "lock sent"; } অন্যথায় যদি (shouldEnableLockTimer () && countDown> = 0) {message = ".." + স্ট্রিং (countDown); } অন্যথায় {বার্তা = "না"; } setDisplayText (1, "লক করা:", বার্তা); }
শূন্য initializeDisplay ()
{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 ()
{int distanceSum = 0; জন্য (বাইট i = 0; i <10; i ++) {distanceSum+= ultrasonic. Ranging (CM); }
ফেরার দূরত্ব যোগ / 10;
}
int getDistance ()
{ফেরত মানচিত্র (analogRead (timerPot), 0, 1024, 0, 200); }
int getTimer ()
{ফেরত মানচিত্র (analogRead (distancePot), 0, 1024, 0, 20); }
অকার্যকর লকস্ক্রিন ()
{Serial.println ("টিপে"); Keyboard.press (KEY_LEFT_CTRL); বিলম্ব (10); Keyboard.press (KEY_LEFT_ALT); বিলম্ব (10); Keyboard.write ('l'); বিলম্ব (10); Keyboard.releaseAll (); }
অবশেষে ইউএসবি কেবল ব্যবহার করে আরডুইনো কম্পিউটারের সাথে সংযুক্ত করুন, এবং স্কেচটি আরডুইনোতে আপলোড করুন।
ধাপ 3: ডিভাইস ব্যবহার করা
যখন আরডুইনো কম্পিউটারের সাথে সংযুক্ত থাকে তখন এটি সেন্সরের সামনে ক্রমাগত দূরত্ব পর্যবেক্ষণ করবে এবং দূরত্ব বাড়লে কম্পিউটারে একটি "লক" স্ক্রিন কী কম্বিনেশন পাঠাবে।
ডিভাইসটির কিছু কনফিগারেশন রয়েছে:
1. সাধারণ দূরত্ব, দূরত্ব A0 এর সাথে সংযুক্ত পরিবর্তনশীল প্রতিরোধক ব্যবহার করে কনফিগার করা যায়। OLED তে দূরত্বও প্রদর্শিত হয়। যখন দূরত্বটি 25% এর সাথে বাড়বে যা সেট করা আছে তার থেকে একটি কাউন্টডাউন শুরু হবে
2. টাইমআউট (কাউন্টডাউন)। A1 এর সাথে সংযুক্ত প্রতিরোধক থেকে সেকেন্ডের সময়সীমাও কনফিগারযোগ্য। সময়সীমা শেষ হলে লক কমান্ড পাঠানো হবে
3. লক কী সমন্বয়। উবুন্টু লিনাক্স 18 (CTRL+ALT+L) এর জন্য কাজ করার জন্য ডিফল্ট লক কী কম্বিনেশন সেট আপ করা আছে। আপনার অপারেশন সিস্টেম অনুসারে আপনার স্কেচ পরিবর্তন করতে আপনার সমন্বয় পরিবর্তন করতে হবে:
4. সময়সীমা এবং দূরত্ব সুরক্ষা। কারণ এটি এমন একটি ডিভাইস যা কীবোর্ডকে অনুকরণ করে কীবোর্ডের কার্যকারিতা নিষ্ক্রিয় করার একটি পদ্ধতি থাকা ভাল ধারণা। আমার স্কেচে আমি বেছে নিয়েছি যে সময়সীমা এবং দূরত্ব "1" এর চেয়ে বেশি হতে হবে। (আপনি যদি কোডে এটি পরিবর্তন করতে পারেন যদি আপনি চান)
"LockScreen ()" ফাংশনটি সনাক্ত করুন এবং পরিবর্তন করুন
void lockScreen () {Serial.println ("pressing"); 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. পিআইআর সেন্সর। (https://www.sparkfun.com/products/13285) এই সস্তা সেন্সরগুলিকে "মোশন সেন্সর" হিসাবে বাজারজাত করা হয় কিন্তু তারা সত্যিই ইনফ্রারেড বিকিরণের পরিবর্তনগুলি সনাক্ত করে তাই তত্ত্বগতভাবে এটি কাজ করতে পারে, যখন একজন ব্যক্তি কম্পিউটার ছেড়ে চলে যায় তখন সেন্সর সনাক্ত করবে যে.. এছাড়াও এই সেন্সর একটি সময়সীমা এবং সংবেদনশীলতা knobs একটি বিল্ড আছে। তাই আমি একটি আপ hooked এবং এটি সঙ্গে খেলেছি কিন্তু এটা মনে হয় যে সেন্সর এটি একটি বন্ধ পরিসীমা জন্য তৈরি করা হয় না (এটি একটি বিস্তৃত কোণ আছে), এটি সব ধরনের মিথ্যা সতর্কতা দিয়েছে।
3. ওয়েবক্যাম ব্যবহার করে মুখ সনাক্তকরণ। এই বিকল্পটি খুব আকর্ষণীয় মনে হয়েছিল, যেহেতু আমি এই কম্পিউটার ক্ষেত্রের সাথে আমার অন্যান্য প্রকল্পগুলিতে খেলেছি: https://github.com/danionescu0/robot-camera-platfo… এবং https://github.com/danionescu0/image-processing- জনসংযোগ…
এটা ছিল কেকের টুকরো! কিন্তু কিছু ত্রুটি ছিল: প্রোগ্রাম চলাকালীন ল্যাপটপ ক্যামেরা অন্য কাজে ব্যবহার করা যাবে না, এবং এর জন্য কিছু কম্পিউটার সম্পদ প্রয়োজন হবে। তাই আমিও এই ধারণা বাদ দিয়েছি।
এটি কীভাবে করা যেতে পারে সে সম্পর্কে আপনার যদি আরও ধারণা থাকে তবে দয়া করে সেগুলি ভাগ করুন, ধন্যবাদ!
প্রস্তাবিত:
ব্যাটারি চালিত অফিস। পূর্ব/পশ্চিম সৌর প্যানেল এবং বায়ু টারবাইন অটো স্যুইচিং সহ সৌর সিস্টেম: 11 টি ধাপ (ছবি সহ)
ব্যাটারি চালিত অফিস। অটো সুইচিং ইস্ট/ওয়েস্ট সোলার প্যানেল এবং উইন্ড টারবাইন সহ সৌর সিস্টেম: প্রকল্প: একটি 200 বর্গফুট অফিস ব্যাটারি চালিত হতে হবে। অফিসে অবশ্যই এই সিস্টেমের জন্য প্রয়োজনীয় সমস্ত কন্ট্রোলার, ব্যাটারি এবং উপাদান থাকতে হবে। সৌর এবং বায়ু শক্তি ব্যাটারি চার্জ করবে। শুধুমাত্র একটি সামান্য সমস্যা আছে
অটো রিটার্ডেশন সিস্টেম: 5 টি ধাপ
অটো রিটার্ডেশন সিস্টেম: এই প্রকল্পটি রোবটকে এড়িয়ে বস্তুর অ্যালগরিদম পরিবর্তন করে তৈরি করা হয়েছে। উপরন্তু, এই নির্দেশযোগ্য রোবটটি ব্লুটুথের মাধ্যমে স্মার্টফোন দ্বারা নিয়ন্ত্রণ করা যায়
পোর্টেবল সোলার অটো ট্র্যাকিং সিস্টেম: 9 টি ধাপ (ছবি সহ)
পোর্টেবল সোলার অটো ট্র্যাকিং সিস্টেম: মেডোমাইসেলফ অ্যামাজন সার্ভিসেস এলএলসি অ্যাসোসিয়েটস প্রোগ্রামে অংশগ্রহণকারী, একটি অ্যাফিলিয়েট বিজ্ঞাপন প্রোগ্রাম যা বিজ্ঞাপনের মাধ্যমে বিজ্ঞাপন ফি উপার্জনের মাধ্যম সরবরাহ করার জন্য ডিজাইন করা হয়েছে এবং amazon.com দ্বারা লিঙ্ক করা হয়েছে: ডেভ উইভার এই বিল্ডটি দিয়ে তৈরি করা হয়েছে
গাড়ি অটো লাইট সিস্টেম: 4 টি ধাপ
কার অটো লাইট সিস্টেম: হে বন্ধুরা, আধুনিক গাড়ি স্বয়ংক্রিয় গাড়ির লাইট সিস্টেমের সাথে আসে যার অর্থ হল হেডলাইটগুলি স্বয়ংক্রিয়ভাবে চালু এবং বন্ধ হচ্ছে পরিবেষ্টিত আলোর উপর নির্ভর করে তাই যখন এটি অন্ধকার হয়ে যায় বা আপনি টানেলে গাড়ি চালান তখন আলো স্বয়ংক্রিয়ভাবে চালু হবে। এমনকি ভেবেছিল সুইচি
ট্রিপ কম্পিউটার - আপনার গাড়ির জন্য জিপিএস ট্রিপ কম্পিউটার এবং আবহাওয়া মডিউল: 11 টি ধাপ (ছবি সহ)
ট্রিপ কম্পিউটার - আপনার গাড়ির জন্য জিপিএস ট্রিপ কম্পিউটার এবং আবহাওয়া মডিউল: একটি শীতল রাস্পবেরি পাই প্রকল্প যা জিপিএস ব্রেকআউট মডিউল এবং 2 টি ছোট ডিগোল ডিসপ্লে ব্যবহার করে আপনার ড্যাশে নেভিগেশন কম্পিউটার রয়েছে