Password Security Lock Circuit Gamit ang 4 × 4 Keypad at Arduino

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Sa post na ito magtatayo kami ng isang password security lock circuit, na maaaring ma-access ng isang 6-digit na password. Upang mas maging tumpak ito ay alpha numeric password.

Hardware para sa Project na ito

Gagamitin namin ang 4x4 keypad, na binubuo ng 0 hanggang 9 na decimal na halaga, dalawang espesyal na character na '#' at '*' at A hanggang D na mga alpabeto. Ang kombinasyon ng mga character na ito ay maaaring magamit bilang password.



Ang Arduino ay utak ng system, ang isang relay ay nakikipag-ugnay sa Arduino upang isaaktibo at i-deactivate, kapag ang tamang password ay iniutos. Dalawang tagapagpahiwatig na LED ay ginagamit dito upang ipahiwatig ang katayuan ng lock system.

Kung hindi ka pamilyar sa 4x4 keypad, mangyaring sumangguni sa aking naunang artikulo, na komprehensibong tinalakay pangunahing kaalaman ng 4x4 matrix keypad



Ang ipinanukalang proyekto ay may minimalistic na disenyo ng hardware. Ito ay binubuo lamang ng isang keypad, relay, arduino at ilang mga LED, kahit na isang noob sa arduino ay maaaring magawa ito nang madali.

Ang nag-iisang bahagi na kung saan ay medyo mahirap sa proyektong ito ay ang pag-coding, hindi kailangang magalala ang code ay ibinigay sa proyektong ito. Ang programa ay dapat na nakasulat sa isang paraan na, ito ay walang katotohanan na patunay at walang hijacker ang maaaring mag-hack ng system.

Ngunit, mag-ingat kung ilantad mo ang hardware o ang hardware ng proyektong ito ay madaling ma-access, ang relay ay maaaring ma-hack nang madali. Kaya't panatilihin ang proyektong ito sa mahusay na protektadong chassis.

Paano ito gumagana

Tandaan: Ang isang kasalukuyang pumipigil sa resistor 4.7K ay dapat na konektado sa base ng transistor, na hindi ipinakita sa diagram.

Tingnan natin ngayon kung paano gumagana ang Arduino password security lock circuit, mangyaring basahin nang maingat ang tagubilin na ibinigay sa ibaba, upang mapatakbo ang circuit.

Diagram ng Circuit

Arduino Password Security Lock Circuit Gamit ang 4x4 Keypad

Narito ang dalawang mga guhit kung paano i-interface ang keyboard at Arduino:

Mga Resulta sa Pagsubok sa Lock ng Security ng Arduino

• Kapag pinapagana ang circuit, humihingi ito ng password, maaari mong makita sa serial monitor (ang serial monitor ay hindi sapilitan ngunit, maaaring magamit para sa layunin ng pagsubok).

• Ipasok ang password na iyong ipinasok sa programa bago ito isulat.

• Habang pinindot mo ang mga key, kumikislap ang berdeng LED sa isang ikasampu ng isang segundo, na nagpapahiwatig na ang ilang mga key ay pinindot ng gumagamit.

• Kapag naipasok mo na ang 6-digit na password, pindutin ang 'D' sa keypad na kumikilos bilang 'Enter'. Kung ang iyong password ay tama, ang relay ay magiging aktibo, ang berdeng LED ay ON.

• Upang i-deactivate ang relay, pindutin ang 'C' sa keypad. Kapag, tapos na ito, ang berdeng LED ay NAKA-OFF at ang relay ay na-deactivate. Walang ibang susi ang maaaring mag-deactivate ng relay.

• Kung ang password na ipinasok ng gumagamit ay hindi tama, pagkatapos ang mga pulang LED light ay ilaw at ang gumagamit ay maghintay ng 30 segundo upang ipasok ang susunod na pagtatangka. Kapag natapos ang 30 segundo, ang pulang LED ay NAKA-OFF, na ipinagbibigay alam sa gumagamit na, handa na ang system na kumuha ng input mula sa gumagamit.

• Kapag ang relay ay na-deactivate pagkatapos ng matagumpay na pag-aktibo, upang maisaaktibo muli ang relay, kailangang ipasok muli ng gumagamit ang password at pindutin ang 'D'.

Narito ang isang espesyal na kaso:

• Kapag ang tamang password ay ipinasok, ang relay ay maisaaktibo at pagkatapos ng matagumpay na pag-deactivate, kapag ang gumagamit ay tumama sa anumang isang maling keystroke (hindi buong password), makikilala ang programa bilang maling password at kailangang maghintay ng 30 segundo ang gumagamit. Kung ito ay isang hijacker maaantala nito ang bilang ng pagtatangka na ginawa ng hijacker.

• Kapag ang tamang keystroke ay pinindot sa unang pagtatangka, dito lamang pinapayagan na ipasok ang susunod na key. Ito ay para lamang sa unang keystroke lamang at hindi para sa lahat ng sunud-sunod na keystroke.

• Ang motto ng ipinaliwanag na konsepto sa itaas ay upang maantala ang bilang ng mga pagtatangka na ginawa ng hijacker.

Code ng Programa:

//---------------------------------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

}
}
iba pa
{
pagtapon ng goto
}
SA:
key2 = keypad.waitForKey ()
kung (key2 == pumasa [1])
{
digitalWrite (berde, TAAS)
antala (100)
digitalWrite (berde, LOW)
{
z = 2
Serial.print ('*')
goto B
}
}
iba pa
{
pagtapon ng goto
}
B:
key3 = keypad.waitForKey ()
kung (key3 == pumasa [2])
{
digitalWrite (berde, TAAS)
antala (100)
digitalWrite (berde, LOW)
{
z = 3
Serial.print ('*')
goto C
}
}
iba pa
{
pagtapon ng goto
}
C:
key4 = keypad.waitForKey ()
kung (key4 == pumasa [3])
{
digitalWrite (berde, TAAS)
antala (100)
digitalWrite (berde, LOW)
{
z = 4
Serial.print ('*')
goto D
}
}
iba pa
{
pagtapon ng goto
}
D:
key5 = keypad.waitForKey ()
kung (key5 == pumasa [4])
{
digitalWrite (berde, TAAS)
antala (100)
digitalWrite (berde, LOW)
{
z = 5
Serial.print ('*')
goto E
}
}
iba pa
{
pagtapon ng goto
}
AY:
key6 = keypad.waitForKey ()
kung (key6 == pumasa [5])
{
digitalWrite (berde, TAAS)
antala (100)
digitalWrite (berde, LOW)
{
z = 6
Serial.print ('*')
goto ok
}
}
iba pa
{
pagtapon ng goto
}
ok:
keyOK = keypad.waitForKey ()
kung (keyOK == ok [0])
{
digitalWrite (OP, MATAAS)
digitalWrite (berde, TAAS)
Serial.println (')
Serial.println ('Na-activate ang Relay, Pindutin ang' C 'upang Deactivate.n')
}
iba pa
{
Serial.println (')
Serial.println ('Pindutin ang' D 'upang Ipasok')
goto ok
}
off:
offkey = keypad.waitForKey ()
kung (offkey == off [0])
{
digitalWrite (OP, LOW)
digitalWrite (berde, LOW)
Serial.println ('Relay Deactivated.n')
pumunta sa tuktok
}
iba pa
{
Serial.println ('Pindutin ang' C 'sa Deactivaten')
goto off
}
magtapon:
kung (z == 0)
{
digitalWrite (berde, TAAS)
antala (100)
digitalWrite (berde, LOW)
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
error sa goto
}
kung (z == 1)
{
digitalWrite (berde, TAAS)
antala (100)
digitalWrite (berde, LOW)
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
error sa goto
}
kung (z == 2)
{
digitalWrite (berde, TAAS)
antala (100)
digitalWrite (berde, LOW)
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
error sa goto
}
kung (z == 3)
{
digitalWrite (berde, TAAS)
antala (100)
digitalWrite (berde, LOW)
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
error sa goto
}
kung (z == 4)
{
digitalWrite (berde, TAAS)
antala (100)
digitalWrite (berde, LOW)
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
error sa goto
}
kung (z == 5)
{
digitalWrite (berde, TAAS)
antala (100)
digitalWrite (berde, LOW)
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
error sa goto
}
error:
Serial.println (')
Serial.print ('Maling password, Maghintay ng 30 segundo.')
digitalWrite (pula, MATAAS)
pagkaantala (10000)
pagkaantala (10000)
pagkaantala (10000)
digitalWrite (pula, LOW)
pumunta sa tuktok
}
// ------------------------------- Program na binuo ni R.Girish --------- ----------------- //

TANDAAN: Upang itakda ang password: char pass [] = '123ABC' // 6 digit na password lamang (walang mas kaunti o hindi hihigit)
Baguhin ang '123ABC' gamit ang iyong sariling password, sa loob ng marka ng sipi.

Tiyaking ang naka-set na password sa programa ay 6-digit LAMANG, hindi kukulangin o wala na ngunit, eksaktong 6-digit. Kung hindi man ay hindi gagana nang tama ang programa.

Kung mayroon kang anumang karagdagang pag-aalinlangan tungkol sa ipinaliwanag na circuit ng lock ng seguridad ng password, mangyaring huwag mag-atubiling mai-post ang mga ito sa iyong mga komento




Nakaraan: Sunrise Sunset Simulator LED Circuit Susunod: Bluetooth Motor Controller Circuit