산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

변경 가능한 코드가 있는 키패드 도어 잠금

구성품 및 소모품

Arduino UNO
× 1
4x4 키패드 매트릭스
× 1
일반 푸시 버튼
× 1
LCD i²c
× 1
선형 솔레노이드 잠금
× 1
IRF510N MOSFET
× 1
1 채널 릴레이
× 1

필요한 도구 및 기계

브레드보드, 170핀
10 Pc. 점퍼 와이어 키트, 길이 5cm

이 프로젝트 정보

안녕하세요. 이 튜토리얼에 오신 것을 환영합니다(예, 오래되었지만 고전적입니다). 오늘 저는 Arduino 보드, 키패드, LCD i²c 화면을 기반으로 도어 잠금 프로젝트를 만들고 있으며 잠금 솔레노이드 및 릴레이에 사용할 것입니다. DC 모터를 사용하는 잠금 장치를 사용한 지문 도어 잠금 장치에 대한 내 튜토리얼을 확인할 수 있으므로 잠금 시스템에 따라 배선, 코드 및 적용을 선택해야 합니다.

주의:실제 프로젝트의 경우 솔레노이드를 사용하지 않는 것이 좋습니다. 전자 잠금과 기계 잠금 모두로 열 수 있는 잠금 장치를 해킹하여 프로젝트에 맞게 조정하세요.

부품

따라서 이 프로젝트의 경우 일부 점프 와이어와 함께 이러한 구성 요소가 필요하고 12V 전원 공급 장치가 필요합니다. 여기에 추가하지 않아서 죄송합니다.

푸시 버튼은 내부에서 잠금을 열기 위한 것이므로 원하는 경우 제거할 수 있습니다. 저항은 디바운스용입니다.

저는 4×4 키패드를 사용했습니다. 3×4를 사용할 수 있지만 확인을 위해 코드에서 무언가를 수정해야 합니다. 예를 들어 'A'를 사용하면 '*' 또는 '#'으로 변경할 수 있습니다.

솔레노이드는 12V 외부 전원으로 구동되며 IRF510N MOSFET 트랜지스터에 의해 구동됩니다.

트랜지스터는 스위치로 사용되며 N 채널을 사용하는 것이 좋습니다. IRF510N은 Arduino와 함께 사용할 때 꽤 인기가 있습니다. 게이트와 소스에 5V 전압을 적용하면 트랜지스터가 닫힌 스위치처럼됩니다. 드레인과 소스, 바이폴라와 같은 저항이 필요하지 않습니다.

그리고 전압이 가해지지 않으면 트랜지스터는 열린 스위치처럼 작동하며 이것이 우리가 솔레노이드를 제어하는 ​​방식입니다.

1채널 릴레이 모듈을 사용하는 다른 예에서는 3.3V로 작동하며 트랜지스터를 제어하는 ​​것처럼 입력을 제어합니다. 유일한 차이점은 반전된다는 것입니다(코드에서 볼 수 있음).

알고리즘 순서도

이해를 쉽게 하기 위해 순서도가 있습니다. 자세히 설명되어 있지는 않지만 코드에 대한 개요입니다.

주의:릴레이를 사용하여 최대 250VAC의 전기 잠금 장치를 제어할 수 있으며 솔레노이드를 제어하는 ​​데에도 사용할 수 있습니다...

코드는 정확히 동일하며 잠금을 열기 위해 (LOW와 HIGH) 사이를 전환한다는 점만 다릅니다.

처음에 코드를 업로드하고 암호를 변경한 다음 일부 행의 주석 처리를 제거해야 함을 기억하십시오(코드를 읽으려면 설정에 있음). EEPROM에서 암호를 읽을 수 있도록 코드를 다시 업로드하십시오. 한 번만 완료 .

또한 코드 길이를 변경할 수 있습니다. 먼저 "4" 대신 "sizeof(code)" 코드에서 사용한 것처럼 기본 코드에서 변경할 수 있습니다. 4자리 코드를 6자리 비밀번호로 변경할 수 없습니다. 먼저 코드 소스에서 초기 비밀번호를 변경하세요.

테스트

아래 사진에서 테스트를 찾을 수 있습니다.

뭐, 그건 프로젝트의 테스트였고, 솔레노이드나 릴레이도 마찬가지고, 원하면 내부에서 푸시 버튼이 열리거나 제거할 수 있습니다.

도움이 되었기를 바라며 문제나 질문이 있으면 댓글을 남겨주세요.

<섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

코드

<울>
  • Keypad_doorlock_solenoid.ino
  • Keypad_doorlock_relay.ino
  • Keypad_doorlock_solenoid.ino아두이노
    코드를 먼저 업로드한 다음 62에서 64 행의 주석을 제거하고 다시 업로드하십시오. 한 번만 수행됩니다.
    /* 이 코드는 4x4 키패드 매트릭스, LCD ic, IRF510N 트랜지스터 및 푸시 버튼과 함께 작동합니다. * 트랜지스터가 구동되는 잠금 장치입니다. 올바른 코드로 열 수 있는 솔레노이드 잠금 * 또는 내부의 푸시 버튼 * 코드는 키패드로 직접 변경할 수 있으며 코드를 다시 업로드할 필요가 없습니다. * 코드는 EEPROM에 저장됩니다. * www.surtrtech.com을 참조하십시오. 자세한 내용은 */#include #include #include #define 솔레노이드 11 //실제로 솔레노이드를 제어하는 ​​트랜지스터의 게이트#define O_Button 10 //푸시 버튼 #define I2C_ADDR 0x27 //I2C 주소, 이 코드를 사용하여 먼저 주소를 스캔해야 합니다(0x27) here#define BACKLIGHT_PIN 3 // LCD 핀 선언#define En_pin 2#define Rw_pin 1#define Rs_pin 0#define D4_pin 4#define D5_pin 5#define D6_pin 6#define D7_pin 7const byte numRows=4; // 키패드의 행 수const byte numCols=4; //키패드의 열 수char keymap[numRows][numCols]={{'1', '2', '3', 'A'}, {'4', '5', '6', 'B '}, {'7', '8', '9', 'C'},{'*', '0', '#', 'D'}};문자 키 누름; //키가 저장되는 위치는 매우 자주 변경됩니다.char code[]={'6','6','0','1'}; //기본 코드, 변경하거나 'n'자리로 만들 수 있습니다. onechar code_buff1[sizeof(code)]; //새 키가 저장된 위치char code_buff2[sizeof(code)]; //새 키가 다시 저장되어 이전 키와 비교되는 위치 short a=0,i=0,s=0,j=0; //나중에 사용되는 변수byte rowPins[numRows] ={9,8,7,6}; //행 0에서 3 //핀을 수정하는 경우 이 toobyte도 수정해야 합니다. colPins[numCols]={5,4,3,2}; //열 0 ~ 3LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);Keypad myKeypad=Keypad(makeKeymap(keymap), rowPins, colPins, setup()numRows); .시작(16,2); lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE); lcd.set백라이트(높음); //조명 백라이트 lcd.home(); lcd.print("대기"); //LCD에 쓰여진 내용은 변경할 수 있습니다. pinMode(Solenoid,OUTPUT); 핀모드(O_버튼, 입력); // for(i=0; i 
    Keypad_doorlock_relay.ino아두이노
    코드를 먼저 업로드한 다음 62~64행의 주석을 제거하고 다시 업로드하십시오. 한 번만 수행됩니다.
    /* 이 코드는 4x4 키패드 매트릭스, LCD IC, 릴레이 모듈 및 푸시 버튼과 함께 작동합니다. * 릴레이가 할 수 있는 잠금 장치입니다. 올바른 코드로 열 수 있는 잠금 장치 제어 * 또는 내부의 푸시 버튼으로 열 수 있음 * 코드는 키패드로 직접 변경할 수 있으며 코드를 다시 업로드할 필요가 없습니다. * 코드는 EEPROM에 저장됩니다. * www.surtrtech.com을 참조하십시오. 자세한 내용은 */#include #include #include #define Relay 11 //릴레이 제어#define O_Button 10 //푸시 버튼#define I2C_ADDR 0x27 //I2C 주소, 먼저 주소를 스캔하려면 코드를 사용해야 합니다(0x27) here#define BACKLIGHT_PIN 3 // LCD 핀 선언#define En_pin 2#define Rw_pin 1#define Rs_pin 0#define D4_pin 4#define D5_pin 5#define D6_pin 6# 정의 D7_pin 7const 바이트 numRows=4; // 키패드의 행 수const byte numCols=4; //키패드의 열 수char keymap[numRows][numCols]={{'1', '2', '3', 'A'}, {'4', '5', '6', 'B '}, {'7', '8', '9', 'C'},{'*', '0', '#', 'D'}};문자 키 누름; //키가 저장되는 위치는 매우 자주 변경됩니다.char code[]={'6','6','0','1'}; //기본 코드, 변경하거나 'n'자리로 만들 수 있습니다. onechar code_buff1[sizeof(code)]; //새 키가 저장된 위치char code_buff2[sizeof(code)]; //새 키가 다시 저장되어 이전 키와 비교되는 위치 short a=0,i=0,s=0,j=0; //나중에 사용되는 변수byte rowPins[numRows] ={9,8,7,6}; //행 0에서 3 //핀을 수정하는 경우 이 toobyte도 수정해야 합니다. colPins[numCols]={5,4,3,2}; //열 0 ~ 3LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);Keypad myKeypad=Keypad(makeKeymap(keymap), rowPins, colPins, setup()numRows); .시작(16,2); lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE); lcd.set백라이트(높음); //조명 백라이트 lcd.home(); lcd.print("대기"); //LCD에 쓰여진 내용은 변경할 수 있습니다. pinMode(Relay,OUTPUT); 핀모드(O_버튼, 입력); // for(i=0; i  

    회로도


    제조공정

    1. 은행 금고
    2. 스마트폰 근접 센서로 사무실 문 자동 잠금 만들기
    3. 다중 온도 센서
    4. 모션센스
    5. 3D 프린터 화재 안전
    6. 암호 기반 도어록
    7. Arduino, Yaler 및 IFTTT가 포함된 IoT 게이지
    8. Arduino 반발 전자기 부상
    9. 원격 제어 그리퍼 봇
    10. CoroFence - 열 감지기🖖