நமது அன்றாட வாழ்க்கையில் பாதுகாப்பு என்பது ஒரு முக்கிய கவலையாக உள்ளது, மேலும் டிஜிட்டல் பூட்டுகள் இந்த பாதுகாப்பு அமைப்புகளின் முக்கிய பகுதியாக மாறிவிட்டன. அத்தகைய ஒரு டிஜிட்டல் குறியீடு பூட்டு இந்த திட்டத்தில் arduino போர்டு மற்றும் ஒரு மேட்ரிக்ஸ் விசைப்பலகையைப் பயன்படுத்தி பின்பற்றப்படுகிறது.
கூறுகள்
- அர்டுயினோ
- கீபேட் தொகுதி
- பஸர்
- 16x2 எல்சிடி
- BC547 டிரான்சிஸ்டர்
- மின்தடை (1 கி)
- ரொட்டி பலகை
- சக்தி
- கம்பிகளை இணைக்கிறது
இந்த சுற்றில் கணினியில் கடவுச்சொல்லை உள்ளிடுவதற்கு விசைப்பலகையை இடைமுகப்படுத்த மல்டிபிளெக்சிங் நுட்பத்தைப் பயன்படுத்தினோம். இங்கே நாம் 16 விசைகளைக் கொண்ட 4x4 விசைப்பலகையைப் பயன்படுத்துகிறோம். நாம் 16 விசைகளைப் பயன்படுத்த விரும்பினால், அர்டுயினோவுடன் இணைப்பதற்கு நமக்கு 16 முள் தேவை, ஆனால் மல்டிபிளெக்சிங் நுட்பத்தில் 16 விசைகளை இடைமுகப்படுத்த 8 முள் மட்டுமே பயன்படுத்த வேண்டும். எனவே இது ஒரு விசைப்பலகையை இடைமுகப்படுத்த ஒரு சிறந்த வழியாகும்.
மல்டிபிளெக்ஸிங் நுட்பம்: உள்ளீடு அல்லது கடவுச்சொல் அல்லது எண்களை வழங்க மைக்ரோகண்ட்ரோலருடன் பயன்படுத்தப்படும் ஊசிகளின் எண்ணிக்கையைக் குறைக்க மல்டிபிளெக்சிங் நுட்பம் மிகவும் திறமையான வழியாகும். அடிப்படையில் இந்த நுட்பம் இரண்டு வழிகளில் பயன்படுத்தப்படுகிறது - ஒன்று வரிசை ஸ்கேனிங் மற்றும் மற்றொன்று பெருங்குடல் ஸ்கேனிங். ஆனால் இந்த அர்டுயினோ அடிப்படையிலான திட்டத்தில் நாங்கள் விசைப்பலகை நூலகத்தைப் பயன்படுத்தினோம், எனவே இந்த அமைப்புக்கு எந்த மல்டிபிளெக்சிங் குறியீட்டையும் உருவாக்க தேவையில்லை. உள்ளீட்டை வழங்க கீபேட் நூலகத்தை மட்டுமே பயன்படுத்த வேண்டும்.
சுற்று விளக்கம்
இந்த திட்டத்தின் சுற்று மிகவும் எளிதானது, இதில் அர்டுயினோ, கீபேட் தொகுதி, பஸர் மற்றும் எல்சிடி ஆகியவை உள்ளன. கடவுச்சொல் படிவ விசைப்பலகையை எடுத்துக்கொள்வது, கடவுச்சொற்களை ஒப்பிடுவது, பஸரை ஓட்டுவது மற்றும் எல்சிடி காட்சிக்கு நிலையை அனுப்புவது போன்ற முழுமையான செயல்முறைகளை ஆர்டுயினோ கட்டுப்படுத்துகிறது. கடவுச்சொல்லை எடுக்க கீபேட் பயன்படுத்தப்படுகிறது. பஸர் அறிகுறிகளுக்குப் பயன்படுத்தப்படுகிறது மற்றும் எல்.சி.டி நிலை அல்லது செய்திகளைக் காண்பிக்கப் பயன்படுகிறது. NPN டிரான்சிஸ்டரைப் பயன்படுத்துவதன் மூலம் பஸர் இயக்கப்படுகிறது.

கீபேட் தொகுதியின் நெடுவரிசை ஊசிகளை முள் 4, 5, 6, 7 உடன் நேரடியாக இணைக்கப்பட்டுள்ளது மற்றும் வரிசை ஊசிகளை 3, 2, 1, 0 உடன் அர்டுயினோ யூனோவுடன் இணைக்கப்பட்டுள்ளது. 16x2 எல்சிடி 4-பிட் பயன்முறையில் அர்டுயினோவுடன் இணைக்கப்பட்டுள்ளது. கட்டுப்பாட்டு முள் RS, RW மற்றும் En ஆகியவை நேரடியாக arduino pin 13, GND மற்றும் 12 உடன் இணைக்கப்பட்டுள்ளன. மேலும் தரவு முள் D4-D7 ஆர்டுயினோவின் 11, 10, 9 மற்றும் 8 ஊசிகளுடன் இணைக்கப்பட்டுள்ளது. ஒரு பஸர் BC547 NPN டிரான்சிஸ்டர் மூலம் அர்டுயினோவின் முள் 14 (A1) இல் இணைக்கப்பட்டுள்ளது.
வேலை
கடவுச்சொல்லைச் சேமிக்க உள்ளடிக்கிய arduino இன் EEPROM ஐப் பயன்படுத்தினோம், எனவே இந்த சுற்று முதல் முறையாக நிரலை இயக்கும் போது உள்ளடிக்கிய arduino இன் EEPROM இலிருந்து ஒரு குப்பைத் தரவைப் படித்து அதை உள்ளீட்டு கடவுச்சொல்லுடன் ஒப்பிட்டு, LCD இல் ஒரு செய்தியைக் கொடுங்கள். இந்த சிக்கலைத் தீர்க்க, கீழே கொடுக்கப்பட்டுள்ள நிரலாக்கத்தைப் பயன்படுத்தி முதன்முறையாக இயல்புநிலை கடவுச்சொல்லை அமைக்க வேண்டும்:
for (int j = 0; j <4; j ++) EEPROM.write (j, j + 49);
lcd.print ("உர் பாஸ்கியை உள்ளிடவும்:"); lcd.setCursor (0,1); (int j = 0; j <4; j ++) pass = EEPROM.read (j);
இது கடவுச்சொல் “1234” ஐ ஆர்டுயினோவின் EEPROM க்கு அமைக்கும்.
இதை முதன்முதலில் இயக்கிய பிறகு இதை நிரலிலிருந்து அகற்றிவிட்டு மீண்டும் குறியீட்டை arduino க்கு எழுதி இயக்க வேண்டும். இப்போது உங்கள் கணினி நன்றாக இயங்கும். உங்கள் இரண்டாவது முறையாக பயன்படுத்தப்பட்ட கடவுச்சொல் இப்போது “1234” ஆகும். இப்போது நீங்கள் # பொத்தானை அழுத்துவதன் மூலம் அதை மாற்றலாம், பின்னர் உங்கள் தற்போதைய கடவுச்சொல்லை உள்ளிட்டு உங்கள் புதிய கடவுச்சொல்லை உள்ளிடவும்.
உங்கள் கடவுச்சொல்லை நீங்கள் உள்ளிடும்போது, நீங்கள் உள்ளிட்ட கடவுச்சொல்லை கணினி அந்த கடவுச்சொல்லுடன் ஒப்பிட்டுப் பார்க்கும், இது EEPROM of arduino இல் சேமிக்கப்படுகிறது. போட்டி ஏற்பட்டால், எல்சிடி “அணுகல் வழங்கப்பட்டது” என்பதைக் காண்பிக்கும், கடவுச்சொல் தவறாக இருந்தால் எல்சிடி “அணுகல் மறுக்கப்படும்” மற்றும் பஸர் தொடர்ந்து சிறிது நேரம் பீப் செய்யும். பயனர் விசைப்பலகையிலிருந்து எந்த பொத்தானையும் அழுத்தும் போதெல்லாம் ஒரே நேரத்தில் பஸர் பீப் ஆகும்.
நிரலாக்க விளக்கம்
குறியீட்டில், விசைப்பலகையை arduino உடன் இடைமுகப்படுத்த விசைப்பலகை நூலகத்தைப் பயன்படுத்தினோம்.
#சேர்க்கிறது
const byte ROWS = 4; // நான்கு வரிசைகள் const byte COLS = 4; // நான்கு நெடுவரிசைகள் char hexaKeys = {1 '1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', ' 8 ',' 9 ',' சி '}, {' * ',' 0 ',' # ',' டி '}}; byte rowPins = {3, 2, 1, 0}; // கீபேட் பைட் கோல்பின்ஸின் வரிசை பின்அவுட்களுடன் இணைக்கவும் = {4, 5, 6, 7}; // விசைப்பலகையின் நெடுவரிசை பின்அவுட்களுடன் இணைக்கவும் // வகுப்பின் ஒரு நிகழ்வைத் தொடங்கவும் NewKeypad Keypad customKeypad = Keypad (makeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS);
எல்சிடி இடைமுகத்திற்கான எல்சிடி நூலகத்தையும், ஈப்ரோம் இடைமுகப்படுத்துவதற்கும் நாங்கள் நூலகம் ஈஇபிரோம்.ஹெச் சேர்த்துள்ளோம், பின்னர் கூறுகளுக்கான மாறி மற்றும் வரையறுக்கப்பட்ட ஊசிகளை துவக்கியுள்ளோம்.
# பஸர் 15 லிக்விட் கிரிஸ்டல் எல்சிடி (13,12,11,10,9,8) வரையறுக்கவும்; கரி கடவுச்சொல்; கரி பாஸ், பாஸ் 1; int i = 0; char customKey = 0;
பின்னர் எல்.சி.டி.யை துவக்கி, அமைவு செயல்பாட்டில் ஊசிகளுக்கு திசை தருகிறோம்
வெற்றிட அமைப்பு () {lcd.begin (16,2); pinMode (தலைமையிலான, OUTPUT); pinMode (பஸர், OUTPUT); pinMode (m11, OUTPUT); pinMode (m12, OUTPUT); lcd.print ("மின்னணு"); lcd.setCursor (0,1); lcd.print ("கீபேட் பூட்டு"); தாமதம் (2000); lcd.clear (); lcd.print ("உர் பாஸ்கியை உள்ளிடவும்:"); lcd.setCursor (0,1);
இதற்குப் பிறகு லூப் செயல்பாட்டில் கீபேட் படிக்கிறோம்
customKey = customKeypad.getKey (); if (customKey == '#') மாற்றம் (); if (customKey) {password = customKey; lcd.print (customKey); பீப் (); }
பின்னர் சரம் ஒப்பிட்டு முறையைப் பயன்படுத்தி கடவுச்சொல்லை சேமி கடவுச்சொல்லுடன் ஒப்பிடுக.
if (i == 4) {தாமதம் (200); (int j = 0; j <4; j ++) pass = EEPROM.read (j); if (! (strncmp (password, pass, 4%)) {DigitalWrite (led, HIGH); பீப் (); lcd.clear (); lcd.print ("பாஸ்கி ஏற்றுக்கொள்ளப்பட்டது"); தாமதம் (2000); lcd.setCursor (0,1); lcd.print ("#. பாஸ்கியை மாற்று"); தாமதம் (2000); lcd.clear (); lcd.print ("பாஸ்கியை உள்ளிடுக:"); lcd.setCursor (0,1); i = 0; டிஜிட்டல்ரைட் (தலைமையிலான, குறைந்த); }
இது கடவுச்சொல் மாற்ற செயல்பாடு மற்றும் பஸர் பீப் செயல்பாடு
வெற்றிட மாற்றம் () {int j = 0; lcd.clear (); lcd.print ("UR Current Passk"); lcd.setCursor (0,1); (j <4) {char key = customKeypad.getKey (); if (விசை) {pass1 = key; lcd.print (விசை); வெற்றிட பீப் () {டிஜிட்டல்ரைட் (பஸர், உயர்); தாமதம் (20); டிஜிட்டல்ரைட் (பஸர், குறைந்த); }
