제조공정
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 |
![]() |
|
0
0
알리 함자
이 프로젝트에서는 4X4 키패드를 사용하여 키를 입력하고 DC 잠금을 사용하여 문을 열거나 닫는 키리스 도어록 시스템을 만들 것입니다. 디스플레이에는 16X2 LCD가 사용됩니다.
이 프로젝트에 필요한 구성 요소는 다음과 같습니다.
<울>키를 누를 때마다 이미 저장된 키와 일치합니다. 누른 키가 EEPROM에 저장된 초기 비밀번호 '1234'와 일치하면 잠금 장치가 열립니다. 비밀번호가 일치하지 않으면 LCD에 "액세스 거부됨"이 인쇄됩니다.
'#' 키를 누르면 현재 비밀번호를 입력하라는 메시지가 표시되고 일치하면 새 비밀번호를 입력하라는 메시지가 표시되고 비밀번호가 변경됩니다.
먼저 4X4 키패드를 Arduino에 연결합니다. 4X4 키패드의 처음 6개 핀을 Arduino의 A0 및 A5 핀에 연결합니다. 그런 다음 4X4 키패드 모듈의 마지막 두 핀을 Arduino의 디지털 핀 3과 2에 연결합니다.
그런 다음 LCD를 Arduino에 연결하십시오. LCD와 Arduino를 연결하기 위한 연결은 다음과 같습니다.
<울>마지막으로 DC 잠금 장치를 Arduino와 연결합니다. Lock은 7~12V의 전압에서 작동하므로 Arduino에 직접 연결할 수 없습니다. Arduino에 연결하려면 릴레이와 배터리가 필요합니다.
릴레이의 신호 핀을 Arduino의 핀 10에 연결하고 잠금 장치의 VCC 및 GND를 Arduino의 5V 및 GND에 연결합니다. 그런 다음 릴레이의 다른 쪽 끝에서 배터리의 음극을 릴레이의 공통 부분에 연결하고 릴레이의 NO(Normally open)를 잠금 장치의 한쪽에 연결합니다. 그런 다음 잠금 장치의 다른 쪽을 배터리의 양극 단자에 연결합니다.
초기 비밀번호는 1234입니다.
#include #include#includeLiquidCrystal liquid_crystal_display(9,8,7,6,5,4,);char 암호[4]; char initial_password[4],new_password[4];int i=0;int relay_pin =10;char key_pressed=0;const 바이트 행 =4; const 바이트 열 =4; char hexaKeys[행][열] ={{'1','2','3','A'},{'4','5','6','B'},{'7' ,'8','9','C'},{'*','0','#','D'}};바이트 row_pins[행] ={A0,A1,A2,A3};바이트 column_pins[열] ={A4,A5,3,2}; 키패드 키패드 키 =키패드( makeKeymap(hexaKeys), row_pins, column_pins, 행, 열); 무효 설정(){ pinMode(relay_pin, OUTPUT); liquid_crystal_display.begin(16,2); liquid_crystal_display.print(" DIYhacking.com"); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("전자 잠금 장치"); 지연(2000); liquid_crystal_display.clear(); liquid_crystal_display.print("비밀번호를 입력하세요"); liquid_crystal_display.setCursor(0,1); initialpassword();}무효 루프(){ digitalWrite(relay_pin, HIGH); key_pressed =키패드_키.getKey(); if(key_pressed=='#') change(); if (key_pressed) { 비밀번호[i++]=key_pressed; liquid_crystal_display.print(key_pressed); } if(i==4) { delay(200); for(int j=0;j<4;j++) initial_password[j]=EEPROM.read(j); if(!(strncmp(비밀번호, initial_password,4))) { liquid_crystal_display.clear(); liquid_crystal_display.print("합격 승인됨"); digitalWrite(relay_pin, LOW); 지연(2000); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("변경하려면 #를 누르세요"); 지연(2000); liquid_crystal_display.clear(); liquid_crystal_display.print("비밀번호를 입력하세요:"); liquid_crystal_display.setCursor(0,1); 나는 =0; } 그 외 { digitalWrite(relay_pin, HIGH); liquid_crystal_display.clear(); liquid_crystal_display.print("잘못된 비밀번호"); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("변경하려면 #를 누르세요"); 지연(2000); liquid_crystal_display.clear(); liquid_crystal_display.print("비밀번호를 입력하세요"); liquid_crystal_display.setCursor(0,1); 나는 =0; } }}변경 무효(){ int j=0; liquid_crystal_display.clear(); liquid_crystal_display.print("현재 비밀번호"); liquid_crystal_display.setCursor(0,1); 동안(j<4) { char key=keypad_key.getKey(); if(키) { new_password[j++]=키; liquid_crystal_display.print(키); } 키=0; } 지연(500); if((strncmp(new_password, initial_password, 4))) { liquid_crystal_display.clear(); liquid_crystal_display.print("잘못된 비밀번호"); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("다시 시도하세요"); 지연(1000); } 기타 { j=0; liquid_crystal_display.clear(); liquid_crystal_display.print("새 비밀번호:"); liquid_crystal_display.setCursor(0,1); while(j<4) { char key=keypad_key.getKey(); if(키) { initial_password[j]=키; liquid_crystal_display.print(키); EEPROM.write(j, 키); j++; } } liquid_crystal_display.print("통과 변경됨"); 지연(1000); } liquid_crystal_display.clear(); liquid_crystal_display.print("비밀번호를 입력하세요"); liquid_crystal_display.setCursor(0,1); key_pressed=0;}void initialpassword(){ for(int j=0;j<4;j++) EEPROM.write(j, j+49); for(int j=0;j<4;j++) initial_password[j]=EEPROM.read(j);}
먼저 4X4 키패드용 라이브러리, LCD용 라이브러리, 비밀번호 저장용 라이브러리를 포함합니다. EEPROM 라이브러리는 암호를 저장하는 데 사용됩니다. 저장된 기본 비밀번호는 '1234'입니다.
#include #include#include
루프 기능에서 누른 키는 'key_pressed ' 변수를 입력하고 다른 키와 비교합니다. 누른 키가 '#'이면 변경 기능이 호출되어 새 비밀번호를 묻습니다.
<사전><코드>key_pressed =키패드_키.getKey(); if(key_pressed=='#') change();누른 키는 '비밀번호에 저장됩니다. ' 변수로 나타나며 키를 눌렀을 때 LCD에 표시됩니다. 그런 다음 이 키는 EEPROM에 저장된 초기 암호와 일치합니다. 누른 키가 초기 암호와 일치하면 잠금 장치가 열리고 LCD에 "Pass accepted"가 인쇄됩니다. 비밀번호가 일치하지 않으면 비밀번호를 다시 입력하라는 메시지가 표시됩니다.
if (key_pressed) { password[i++]=key_pressed; liquid_crystal_display.print(key_pressed); }if(i==4) { delay(200); for(int j=0;j<4;j++) initial_password[j]=EEPROM.read(j); if(!(strncmp(비밀번호, initial_password,4))) { liquid_crystal_display.clear(); liquid_crystal_display.print("합격 승인됨"); digitalWrite(relay_pin, LOW); 지연(2000);
'#' 키를 누르면 'change() ' 기능. 변경 기능에서 현재 암호를 입력하라는 메시지가 표시됩니다. 현재 암호가 정확하면 새 암호를 입력하라는 메시지가 표시됩니다. 새 비밀번호를 입력하면 비밀번호가 변경됩니다.
void change(){ int j=0; liquid_crystal_display.clear(); liquid_crystal_display.print("현재 비밀번호"); liquid_crystal_display.setCursor(0,1); 동안(j<4) { char key=keypad_key.getKey(); if(키) { new_password[j++]=키; liquid_crystal_display.print(키); } 키=0; } 지연(500);
태그:4x4 키패드, Arduino, DC 잠금, Keylock, 키패드, LCD, 잠금
추천 게시물
실시간 시계와 LCD 화면을 이용한 아두이노 알람시계
Arduino 자체 균형 로봇을 만드는 방법
Arduino와 솔레노이드를 사용하여 토스터 댄스 만들기
Arduino로 DIY 자동 관개 시스템 만들기
#include#include #include LiquidCrystal liquid_crystal_display(9,8,7,6,5,4,);char 암호[4];char initial_password[ 4],new_password[4];int i=0;int relay_pin =10;char key_pressed=0;const 바이트 행 =4; const 바이트 열 =4; char hexaKeys[행][열] ={{'1','2','3','A'},{'4','5','6','B'},{'7' ,'8','9','C'},{'*','0','#','D'}};바이트 row_pins[행] ={A0,A1,A2,A3};바이트 column_pins[열] ={A4,A5,3,2}; 키패드 키패드 키 =키패드( makeKeymap(hexaKeys), row_pins, column_pins, 행, 열); 무효 설정(){ pinMode(relay_pin, OUTPUT); liquid_crystal_display.begin(16,2); liquid_crystal_display.print(" DIYhacking.com"); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("전자 잠금 장치"); 지연(2000); liquid_crystal_display.clear(); liquid_crystal_display.print("비밀번호를 입력하세요"); liquid_crystal_display.setCursor(0,1); initialpassword();}무효 루프(){ digitalWrite(relay_pin, HIGH); key_pressed =키패드_키.getKey(); if(key_pressed=='#') change(); if (key_pressed) { 비밀번호[i++]=key_pressed; liquid_crystal_display.print(key_pressed); } if(i==4) { delay(200); for(int j=0;j<4;j++) initial_password[j]=EEPROM.read(j); if(!(strncmp(비밀번호, initial_password,4))) { liquid_crystal_display.clear(); liquid_crystal_display.print("합격 승인됨"); digitalWrite(relay_pin, LOW); 지연(2000); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("변경하려면 #를 누르세요"); 지연(2000); liquid_crystal_display.clear(); liquid_crystal_display.print("비밀번호를 입력하세요:"); liquid_crystal_display.setCursor(0,1); 나는 =0; } 그 외 { digitalWrite(relay_pin, HIGH); liquid_crystal_display.clear(); liquid_crystal_display.print("잘못된 비밀번호"); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("변경하려면 #를 누르세요"); 지연(2000); liquid_crystal_display.clear(); liquid_crystal_display.print("비밀번호를 입력하세요"); liquid_crystal_display.setCursor(0,1); 나는 =0; } }}변경 무효(){ int j=0; liquid_crystal_display.clear(); liquid_crystal_display.print("현재 비밀번호"); liquid_crystal_display.setCursor(0,1); 동안(j<4) { char key=keypad_key.getKey(); if(키) { new_password[j++]=키; liquid_crystal_display.print(키); } 키=0; } 지연(500); if((strncmp(new_password, initial_password, 4))) { liquid_crystal_display.clear(); liquid_crystal_display.print("잘못된 비밀번호"); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("다시 시도하세요"); 지연(1000); } 기타 { j=0; liquid_crystal_display.clear(); liquid_crystal_display.print("새 비밀번호:"); liquid_crystal_display.setCursor(0,1); while(j<4) { char key=keypad_key.getKey(); if(키) { initial_password[j]=키; liquid_crystal_display.print(키); EEPROM.write(j, 키); j++; } } liquid_crystal_display.print("통과 변경됨"); 지연(1000); } liquid_crystal_display.clear(); liquid_crystal_display.print("비밀번호를 입력하세요"); liquid_crystal_display.setCursor(0,1); key_pressed=0;}void initialpassword(){ for(int j=0;j<4;j++) EEPROM.write(j, j+49); for(int j=0;j<4;j++) initial_password[j]=EEPROM.read(j);}
#include#include #include
if (key_pressed) { password[i++]=key_pressed; liquid_crystal_display.print(key_pressed); }if(i==4) { delay(200); for(int j=0;j<4;j++) initial_password[j]=EEPROM.read(j); if(!(strncmp(비밀번호, initial_password,4))) { liquid_crystal_display.clear(); liquid_crystal_display.print("합격 승인됨"); digitalWrite(relay_pin, LOW); 지연(2000);
제조공정
이 튜토리얼에서는 RFID가 무엇인지, 어떻게 작동하는지, Arduino 기반 RFID 도어록을 만드는 방법을 배웁니다. 자세한 내용은 다음 동영상을 보거나 아래에 작성된 튜토리얼을 참조하세요. 개요 RFID는 무선 주파수 식별을 나타냅니다. 그리고 인사 추적, 액세스 제어, 공급망 관리, 도서관의 책 추적, 톨게이트 시스템 등과 같은 작업을 위해 많은 산업 분야에서 널리 사용되는 비접촉 기술입니다.[/column] RFID 작동 방식 RFID 시스템은 두 가지 주요 구성 요소인 트랜스폰더 또는 식별하려는 물체에 위치한
이 프로젝트에서는 Arduino 보안 및 경보 시스템을 만드는 방법을 배웁니다. 다음 비디오를 보거나 아래에 작성된 튜토리얼을 읽을 수 있습니다. 개요 알람은 A 버튼을 누른 후 10초 후에 활성화됩니다. 물체를 감지하기 위해 초음파 센서를 사용하고 알람이 무언가를 감지하면 부저가 소리를 내기 시작합니다. 알람을 중지하려면 4자리 비밀번호를 삽입해야 합니다. 사전 설정된 비밀번호는 1234이지만 변경할 수도 있습니다. B 버튼을 눌러 암호 변경 메뉴로 들어갑니다. 계속하려면 현재 암호를 입력해야 하고 새 4자리 암호를 입력