পাসওয়ার্ড সুরক্ষা লক সার্কিট 4 × 4 কীপ্যাড এবং আরডুইনো ব্যবহার করে

সমস্যাগুলি দূর করার জন্য আমাদের উপকরণটি ব্যবহার করে দেখুন





এই পোস্টে আমরা একটি পাসওয়ার্ড সুরক্ষা লক সার্কিট তৈরি করতে যাচ্ছি, যা 6-সংখ্যার পাসওয়ার্ড দ্বারা অ্যাক্সেস করা যায়। আরও সুনির্দিষ্টভাবে বলতে গেলে এটি আলফা সংখ্যার পাসওয়ার্ড।

এই প্রকল্পের জন্য হার্ডওয়্যার

আমরা 4x4 কীপ্যাড ব্যবহার করতে যাচ্ছি, যার মধ্যে 0 থেকে 9 দশমিক মান রয়েছে, দুটি বিশেষ অক্ষর ‘#’ এবং ‘*’ এবং এ থেকে ডি বর্ণমালা। এই অক্ষরগুলির সংমিশ্রণটি পাসওয়ার্ড হিসাবে ব্যবহার করা যেতে পারে।



আরডুইনো সিস্টেমের মস্তিষ্ক, সঠিক পাসওয়ার্ড কমান্ড হওয়ার পরে একটি রিলে আর্দুইনোর সাথে সক্রিয় ও নিষ্ক্রিয় করতে ইন্টারফেস করা হয়। লক সিস্টেমের স্থিতি নির্দেশ করতে এখানে দুটি সূচক এলইডি ব্যবহার করা হয়।

আপনি যদি 4x4 কীপ্যাডের সাথে পরিচিত না হন তবে দয়া করে আমার পূর্ববর্তী নিবন্ধটি পড়ুন, যা বিস্তারিতভাবে আলোচনা করা হয়েছে 4x4 ম্যাট্রিক্স কিপ্যাডের মূল কথা



প্রস্তাবিত প্রকল্পটির বেশ নমনীয় হার্ডওয়্যার ডিজাইন রয়েছে। এটিতে কেবল একটি কীপ্যাড, রিলে, আরডুইনো এবং কয়েক জোড়া এলইডি রয়েছে, এমনকি অর্ডুইনোর একটি নবুও এটিকে সহজেই সম্পন্ন করতে পারে।

এই প্রকল্পে কেবলমাত্র যে অংশটি সামান্য কঠিন তা হ'ল কোডিং, এই প্রকল্পে কোডটি দেওয়া হচ্ছে তা চিন্তা করার দরকার নেই। প্রোগ্রামটি এমনভাবে লেখা উচিত যাতে এটি মূর্খ প্রমাণ এবং কোনও হাইজ্যাকার সিস্টেমটিকে হ্যাক করতে পারে না।

তবে, আপনি যদি এই প্রকল্পের হার্ডওয়্যার বা হার্ডওয়্যারটি সহজেই অ্যাক্সেসযোগ্য করে তোলেন তবে সাবধান থাকুন, রিলেটি সহজেই হ্যাক করা যায়। সুতরাং এই প্রকল্পটি ভাল সুরক্ষিত চ্যাসিসে রাখুন।

কিভাবে এটা কাজ করে

দ্রষ্টব্য: একটি বর্তমান সীমাবদ্ধ প্রতিরোধক 4.7K অবশ্যই ট্রানজিস্টরের বেসের সাথে সংযুক্ত থাকতে হবে, যা চিত্রটিতে প্রদর্শিত হয়নি।

এখন দেখা যাক এই আড়ডিনো পাসওয়ার্ড সুরক্ষা লক সার্কিট কীভাবে কাজ করে, দয়া করে সার্কিটটি পরিচালনা করতে নীচে প্রদত্ত নির্দেশাবলীটি সাবধানতার সাথে পড়ুন।

বর্তনী চিত্র

আরডুইনো পাসওয়ার্ড সুরক্ষা লক সার্কিট 4x4 কীপ্যাড ব্যবহার করে

কীওয়ার্ড এবং আরডুইনোকে ইন্টারফেস করার জন্য দুটি চিত্র এখানে দেওয়া হয়েছে:

আরডুইনো পাসওয়ার্ড সুরক্ষা লক পরীক্ষার ফলাফল

Circuit যখন সার্কিটটি চালিত হয়, এটি পাসওয়ার্ডের জন্য জিজ্ঞাসা করে, আপনি সিরিয়াল মনিটরে দেখতে পারেন (সিরিয়াল মনিটরটি বাধ্যতামূলক নয় তবে, পরীক্ষার উদ্দেশ্যে ব্যবহার করা যেতে পারে)।

Program প্রোগ্রামটি পাসওয়ার্ডটি সংকলনের আগে প্রবেশ করান।

You আপনি কীগুলি টিপানোর সময়, সেকেন্ডের এক দশমাংশের জন্য সবুজ এলইডি জ্বলজ্বল করে, ইঙ্গিত করে যে কিছু কী ব্যবহারকারীর দ্বারা চাপছে।

• একবার আপনি--সংখ্যার পাসওয়ার্ড প্রবেশ করালে কিপ্যাডে ‘ডি’ টিপুন যা ‘প্রবেশ করান’ হিসাবে কাজ করে। যদি আপনার পাসওয়ার্ডটি সঠিক হয়, রিলেটি সক্রিয় হয়, সবুজ এলইডি চালু হয়।

The রিলে নিষ্ক্রিয় করতে, কীপ্যাডে ‘সি’ টিপুন। এটি হয়ে গেলে, সবুজ এলইডি বন্ধ হয়ে যায় এবং রিলে নিষ্ক্রিয় হয়ে যায়। অন্য কোনও কী রিলে নিষ্ক্রিয় করতে পারে না।

The ব্যবহারকারীর দ্বারা প্রবেশ করা পাসওয়ার্ডটি যদি ভুল হয় তবে লাল নেতৃত্বাধীন আলো জ্বালানো হবে এবং পরবর্তী চেষ্টাতে প্রবেশের জন্য ব্যবহারকারীকে 30 সেকেন্ড অপেক্ষা করতে হবে। 30 সেকেন্ড শেষ হয়ে গেলে, লাল এলইডি বন্ধ করে দেয়, ব্যবহারকারীকে জানায় যে সিস্টেমটি ব্যবহারকারীর কাছ থেকে ইনপুট পেতে প্রস্তুত।

Successful রিলে সফল অ্যাক্টিভেশন পরে নিষ্ক্রিয় করা হয়, রিলে পুনরায় সক্রিয় করতে, ব্যবহারকারীর আবার পাসওয়ার্ড প্রবেশ করতে হবে এবং 'ডি' টিপুন।

এখানে একটি বিশেষ কেস দেওয়া হয়েছে:

Password সঠিক পাসওয়ার্ডটি প্রবেশ করা হলে, রিলেটি সক্রিয় হয় এবং সফল নিষ্ক্রিয়তার পরে, যখন ব্যবহারকারী কোনও ভুল কীস্ট্রোক (পুরো পাসওয়ার্ড নয়) হিট করে, প্রোগ্রামটি ভুল পাসওয়ার্ড হিসাবে স্বীকৃতি দেয় এবং ব্যবহারকারীকে আরও 30 সেকেন্ড অপেক্ষা করতে হবে। যদি এটি হাইজ্যাকার হয় তবে এটি হাইজ্যাকারের দ্বারা করা প্রচেষ্টার সংখ্যা বিলম্বিত করবে।

Correct যখন প্রথম প্রয়াসে সঠিক কীস্ট্রোক টিপানো হয়, কেবল তখনই এটি পরবর্তী কী প্রবেশ করতে দেয়। এটি কেবলমাত্র প্রথম কীস্ট্রোকের জন্য এবং সমস্ত ক্রমাগত কীস্ট্রোকের জন্য নয়।

Explained উপরোক্ত বর্ণিত ধারণার মূল উদ্দেশ্য হ'ল হাইজ্যাকারের দ্বারা করা প্রচেষ্টার সংখ্যা বিলম্ব করা।

প্রোগ্রাম কোড:

//---------------------------------Program Developed by R.Girish--------------------------//
#include
const byte ROWS = 4
const byte COLS = 4
char pass[] = '123ABC' // 6 digit password only (no less or no more)
int OP=10
int green=12
int red=11
char key1
char key2
char key3
char key4
char key5
char key6
char dumpkey
char keyOK
char ok[]='D'
char offkey
char off[]='C'
int z
char keys[ROWS][COLS] =
{
{'D','#','0','*'},
{'C','9','8','7'},
{'B','6','5','4'},
{'A','3','2','1'}
}
byte rowPins[ROWS] = {6,7,8,9} //connect to the row pinouts of the keypad
byte colPins[COLS] = {2,3,4,5} //connect to the column pinouts of the keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS )
void setup()
{
Serial.begin(9600)
pinMode(OP,OUTPUT)
pinMode(green,OUTPUT)
pinMode(red,OUTPUT)
digitalWrite(OP,LOW)
}
void loop()
{
top:
Serial.println('')
Serial.println('[Press D = Enter]')
Serial.print('Enter the password: ')
key1=keypad.waitForKey()
if(key1 == pass[0])
{
digitalWrite(green,HIGH)
delay(100)
digitalWrite(green,LOW)
{
z=1
Serial.print('*')
goto A

}
}
অন্য
{
গোটো ডাম্প
}
প্রতি:
কী 2 = কিপ্যাড.ওয়েটফোর্কে ()
যদি (কী 2 == পাস [1])
{
ডিজিটাল রাইট (সবুজ, উচ্চ)
বিলম্ব (100)
ডিজিটাল রাইট (সবুজ, কম)
{
z = 2
সিরিয়াল.প্রিন্ট ('*')
গোটো বি
}
}
অন্য
{
গোটো ডাম্প
}
বি:
কী 3 = কিপ্যাড.ওয়েটফোর্কে ()
যদি (কী 3 == পাস [2])
{
ডিজিটাল রাইট (সবুজ, উচ্চ)
বিলম্ব (100)
ডিজিটাল রাইট (সবুজ, কম)
{
z = 3
সিরিয়াল.প্রিন্ট ('*')
গেটো সি
}
}
অন্য
{
গোটো ডাম্প
}
সি:
কী 4 = কিপ্যাড.ওয়েটফোর্কে ()
যদি (কী 4 == পাস [3])
{
ডিজিটাল রাইট (সবুজ, উচ্চ)
বিলম্ব (100)
ডিজিটাল রাইট (সবুজ, কম)
{
z = 4
সিরিয়াল.প্রিন্ট ('*')
গেটো ডি
}
}
অন্য
{
গোটো ডাম্প
}
ডি:
কী 5 = কিপ্যাড.ওয়েটফোর্কে ()
যদি (কী 5 == পাস [4])
{
ডিজিটাল রাইট (সবুজ, উচ্চ)
বিলম্ব (100)
ডিজিটাল রাইট (সবুজ, কম)
{
z = 5
সিরিয়াল.প্রিন্ট ('*')
গেটো ই
}
}
অন্য
{
গোটো ডাম্প
}
IS:
কী = = কীপ্যাড.ওয়েটফোর্কে ()
যদি (কী 6 == পাস [5])
{
ডিজিটাল রাইট (সবুজ, উচ্চ)
বিলম্ব (100)
ডিজিটাল রাইট (সবুজ, কম)
{
z = 6
সিরিয়াল.প্রিন্ট ('*')
ঠিক আছে
}
}
অন্য
{
গোটো ডাম্প
}
ঠিক আছে:
keyOK=keypad.waitForKey()
যদি (কীওকে == ঠিক আছে [0])
{
ডিজিটাল রাইট (ওপি, উচ্চ)
ডিজিটাল রাইট (সবুজ, উচ্চ)
সিরিয়াল.প্রিন্টলন ('')
সিরিয়াল.প্রিন্টলন ('রিলে অ্যাক্টিভেটেড, ডিয়ােক্টিভ.এন'তে' সি 'টিপুন)
}
অন্য
{
সিরিয়াল.প্রিন্টলন ('')
সিরিয়াল.প্রিন্টলন ('চাপতে' ডি 'টিপুন')
ঠিক আছে
}
বন্ধ:
অফকি = কিপ্যাড.ওয়েটফোর্কে ()
যদি (অফকি == বন্ধ [0])
{
ডিজিটাল রাইট (ওপি, কম)
ডিজিটাল রাইট (সবুজ, কম)
সিরিয়াল.প্রিন্টলন ('রিলে ডিএক্টিভেটড.এন')
গোটো টপ
}
অন্য
{
সিরিয়াল.প্রিন্টলন ('সি চাপুন' নিষ্ক্রিয় করতে ')
চলে গেল
}
ফেলা:
যদি (z == 0)
{
ডিজিটাল রাইট (সবুজ, উচ্চ)
বিলম্ব (100)
ডিজিটাল রাইট (সবুজ, কম)
সিরিয়াল.প্রিন্ট ('*')
ডাম্পকি = কিপ্যাড.ওয়েটফোরকি ()
সিরিয়াল.প্রিন্ট ('*')
ডাম্পকি = কিপ্যাড.ওয়েটফোরকি ()
সিরিয়াল.প্রিন্ট ('*')
ডাম্পকি = কিপ্যাড.ওয়েটফোরকি ()
সিরিয়াল.প্রিন্ট ('*')
ডাম্পকি = কিপ্যাড.ওয়েটফোরকি ()
সিরিয়াল.প্রিন্ট ('*')
ডাম্পকি = কিপ্যাড.ওয়েটফোরকি ()
সিরিয়াল.প্রিন্ট ('*')
ডাম্পকি = কিপ্যাড.ওয়েটফোরকি ()
সিরিয়াল.প্রিন্ট ('*')
গোটো ত্রুটি
}
যদি (z == 1)
{
ডিজিটাল রাইট (সবুজ, উচ্চ)
বিলম্ব (100)
ডিজিটাল রাইট (সবুজ, কম)
সিরিয়াল.প্রিন্ট ('*')
ডাম্পকি = কিপ্যাড.ওয়েটফোরকি ()
সিরিয়াল.প্রিন্ট ('*')
ডাম্পকি = কিপ্যাড.ওয়েটফোরকি ()
সিরিয়াল.প্রিন্ট ('*')
ডাম্পকি = কিপ্যাড.ওয়েটফোরকি ()
সিরিয়াল.প্রিন্ট ('*')
ডাম্পকি = কিপ্যাড.ওয়েটফোরকি ()
সিরিয়াল.প্রিন্ট ('*')
ডাম্পকি = কিপ্যাড.ওয়েটফোরকি ()
সিরিয়াল.প্রিন্ট ('*')
গোটো ত্রুটি
}
যদি (z == 2)
{
ডিজিটাল রাইট (সবুজ, উচ্চ)
বিলম্ব (100)
ডিজিটাল রাইট (সবুজ, কম)
সিরিয়াল.প্রিন্ট ('*')
ডাম্পকি = কিপ্যাড.ওয়েটফোরকি ()
সিরিয়াল.প্রিন্ট ('*')
ডাম্পকি = কিপ্যাড.ওয়েটফোরকি ()
সিরিয়াল.প্রিন্ট ('*')
ডাম্পকি = কিপ্যাড.ওয়েটফোরকি ()
সিরিয়াল.প্রিন্ট ('*')
ডাম্পকি = কিপ্যাড.ওয়েটফোরকি ()
সিরিয়াল.প্রিন্ট ('*')
গোটো ত্রুটি
}
যদি (z == 3)
{
ডিজিটাল রাইট (সবুজ, উচ্চ)
বিলম্ব (100)
ডিজিটাল রাইট (সবুজ, কম)
সিরিয়াল.প্রিন্ট ('*')
ডাম্পকি = কিপ্যাড.ওয়েটফোরকি ()
সিরিয়াল.প্রিন্ট ('*')
ডাম্পকি = কিপ্যাড.ওয়েটফোরকি ()
সিরিয়াল.প্রিন্ট ('*')
ডাম্পকি = কিপ্যাড.ওয়েটফোরকি ()
সিরিয়াল.প্রিন্ট ('*')
গোটো ত্রুটি
}
যদি (z == 4)
{
ডিজিটাল রাইট (সবুজ, উচ্চ)
বিলম্ব (100)
ডিজিটাল রাইট (সবুজ, কম)
সিরিয়াল.প্রিন্ট ('*')
ডাম্পকি = কিপ্যাড.ওয়েটফোরকি ()
সিরিয়াল.প্রিন্ট ('*')
ডাম্পকি = কিপ্যাড.ওয়েটফোরকি ()
সিরিয়াল.প্রিন্ট ('*')
গোটো ত্রুটি
}
যদি (z == 5)
{
ডিজিটাল রাইট (সবুজ, উচ্চ)
বিলম্ব (100)
ডিজিটাল রাইট (সবুজ, কম)
সিরিয়াল.প্রিন্ট ('*')
ডাম্পকি = কিপ্যাড.ওয়েটফোরকি ()
সিরিয়াল.প্রিন্ট ('*')
গোটো ত্রুটি
}
ত্রুটি:
সিরিয়াল.প্রিন্টলন ('')
সিরিয়াল.প্রিন্ট ('ভুল পাসওয়ার্ড, 30 সেকেন্ডের জন্য অপেক্ষা করুন।')
ডিজিটাল রাইট (লাল, উচ্চ)
বিলম্ব (10000)
বিলম্ব (10000)
বিলম্ব (10000)
ডিজিটাল রাইট (লাল, কম)
গোটো টপ
}
// --------------------------------- আর.গিরিশ দ্বারা বিকাশিত প্রোগ্রাম --------- ----------------- //

বিঃদ্রঃ: পাসওয়ার্ড সেট করতে: চর পাস [] = '123ABC' // কেবলমাত্র 6 ডিজিটের পাসওয়ার্ড (কম বা বেশি নয়)
উদ্ধৃতি চিহ্নের ভিতরে আপনার নিজের পাসওয়ার্ড দিয়ে '123ABC' পরিবর্তন করুন।

প্রোগ্রামটিতে থাকা পাসওয়ার্ডটি কেবলমাত্র 6-অঙ্কের রয়েছে তা নিশ্চিত করুন, কম বা বেশি নয়, ঠিক 6-অঙ্কের। অন্যথায় প্রোগ্রামটি সঠিকভাবে কাজ করবে না।

বর্ণিত পাসওয়ার্ড সুরক্ষা লক সার্কিট সম্পর্কে যদি আপনার আরও সন্দেহ থাকে তবে দয়া করে আপনার মন্তব্যের মাধ্যমে সেগুলি পোস্ট করতে দ্বিধা বোধ করবেন




পূর্ববর্তী: সানরাইজ সানসেট সিমুলেটর এলইডি সার্কিট পরবর্তী: ব্লুটুথ মোটর কন্ট্রোলার সার্কিট