아두이노 전자 자물쇠. 자동 "스마트" 잠금 및 Arduino 전자 잠금 설정

그것을 가진 대부분의 사람들과 마찬가지로 나에게 COTTAGE는 휴식, 바베큐, 편안함 및 기타 정신과 육체에 즐거운 움직임이라는 단어와 관련이 있지만 정원, 파기, 수리, 건설과 같은 단점도 있습니다. , 등.

10년 동안 우리 가족과 저는 시골집에서 최대한의 편안함을 제공하고 고상하게 만들기 위해 노력해 왔습니다. 시공, 수리 등을 하고 있습니다. 집, 헛간, 목욕탕 ... .. 그리고 마침내 거리 울타리, 문 및 문에 왔습니다. 양심, 예산 및 편의에 따라 그렇게하십시오.

몇 가지 세부 사항을 논의한 후 게이트가 자동이어야 하고 게이트에 일부 ACS 속성이 있어야 한다고 결정했습니다. 게이트의 경우 자동화 키트(드라이브, 레일, 리모콘 등)를 구매하여 문제를 해결했으며 게이트의 경우 몇 가지 문제를 해결해야 했습니다.

작업은 다음과 같습니다.

  1. 자물쇠는 이전에 설치된 비디오 인터폰과 함께 작동해야 했습니다(집을 떠나지 않고 문을 엽니다).
  2. 거리와 안뜰에서 열쇠 없이 일반 열쇠로 문을 열 수 있습니다.
  3. 남은 예산을 5000 r까지 유지하십시오.

Runet의 검색은 7000에서 무한대까지 다음과 같은 가격 범위를 제시했습니다. 기성 솔루션 구매가 사라지고 다양한 가능성을 가진 대안, 즉 직접 문을 자르는 대안이 고안되었습니다!

약간의 계산과 계산 끝에 약 2000 루블의 전기 기계식 잠금 장치, 350 루블의 방수 키보드, 여기에서 조종 할 MK를 구입하기로 결정했습니다. 여러 아두이노 나노보드, 릴레이, 낱개 부품, 일부 전선이 있었기 때문에 완성된 키트의 비용 차이는 4000tr이 넘었다. 저에게는 지갑과 자기 계발에 큰 보너스입니다.

자, 이제 말에서 행동으로:

필요한 구성 요소를 모두 구입한 후 보기 시작했습니다.

키보드 연결 다이어그램

키패드 신호가 있는 패널의 LED(흰색, 녹색, 빨간색)의 추가 표시(입력, 문을 열기 위한 올바른 암호, 거부됨).

  • 핀 9 노란색
  • 핀 10 녹색
  • 핀 11 빨간색

플렉시글라스 패널(그릴), ​​초콜릿 상자로 자르고 사무실 이웃을 웃게 합니다. 그러나 가장 작은 커터는 약간 더 뚱뚱해서 바늘 줄로 작업해야했습니다.

글쎄, 주말이야, 나는 시골로 이사했다.

전기 기계식 잠금 장치를 열려면 12볼트가 필요합니다. MK에 공급하는 전원 공급 장치는 5볼트였으며 잠금을 위해 하늘에서 dc-dc 부스트 컨버터를 설치하기로 결정했습니다. 나는 모든 것을 연결하고 확인하기 시작했지만 작동하지만 잠금 솔레노이드에 전압이 가해지면 전원 공급 장치가 부족한 Dunya가 재부팅되었습니다. 또한 비디오 인터콤의 통화 패널을 잠금 장치에 연결한 후 버튼을 눌러 문을 열 때 아무 일도 일어나지 않고 잠금 장치에 작은 전류가 흐르고 있습니다. 새 전선을 당기는 것은 선택 사항이 아니며 이미 집 출구에서 구체화되었습니다. 나는 패널에 다른 릴레이를 추가하고 추가 12v 전원 공급 장치를 설치하기로 결정했습니다. 성을 위해. 구문 분석 / 수집 후 모든 것이 작동했고 MK는 재부팅을 중지했습니다. 나는 모든 것을 방수 정션 박스에 숨기고 전선, 접착제, 실리콘을 숨겼습니다.

이 기사에서는 arduino에서 콤비네이션 자물쇠를 만드는 방법을 보여 드리겠습니다. 이를 위해서는 적색 및 녹색 LED, 부저, arduino nano, I2C 변환기가 있는 LCD 디스플레이, 서보 드라이브 및 4x4 매트릭스 키보드가 필요합니다. 전원을 켜면 디스플레이에 "코드 입력"이라고 표시됩니다.

빨간색 LED가 켜지고,

녹색이 꺼지면 서보가 0°로 설정됩니다. 숫자를 입력하면 디스플레이에 * 표시가 켜집니다.

코드를 잘못 입력하면 디스플레이에 "Enter cod."가 표시됩니다. 코드가 정확하면 신호음이 울리고 서보가 180° 회전하며 디스플레이에 "Open"이 표시됩니다.

녹색 LED가 켜지고,

빨간색이 꺼집니다. 3초 후 서보는 홈 위치로 돌아가고 빨간색 LED가 켜지고 녹색 LED가 꺼지며 디스플레이에 "Close"라고 표시됩니다.

그러면 디스플레이에 "코드 입력"이 표시됩니다. 이제 계획에 대해. 먼저 와이어가 있는 아두이노를 브레드보드(전원 접점)에 연결합니다.

그런 다음 매트릭스 키보드를 접점 D9 - D2에 연결합니다.

그런 다음 서보. 핀 10에 연결합니다.

빨간색 LED는 11번 핀에 연결됩니다.

녹색 - 핀 12.

부저 - 핀 13.

이제 스케치를 업로드합니다.

#포함하다 #포함하다 #포함하다 #포함하다 iarduino_KB KB(9, 8, 7, 6, 5, 4, 3, 2); LiquidCrystal_I2C lcd(0x27, 16, 2); 서보 서보 정수 통과 = (3, 6, 1, 8); int in; 정수 r = 11; 정수 g = 12; 무효 설정() (KB.begin(KB1); pinMode(r, OUTPUT); pinMode(g, OUTPUT); lcd.init(); lcd.backlight(); digitalWrite(g, LOW); digitalWrite(r, HIGH ); servo.attach(10); servo.write(0); lcd.setCursor(0, 0); ) void loop() ( lcd.clear(); lcd.print("코드를 입력하십시오."); 동안 ( !KB.check(KEY_DOWN)) (지연(1); ) in = KB.getNum; lcd.clear(); lcd.setCursor(0, 0); lcd.print("*"); 동안 (!KB. check(KEY_DOWN)) (delay(1); ) in = KB.getNum; lcd.print("*"); 동안 (!KB.check(KEY_DOWN)) ( delay(1); ) in = KB.getNum; lcd.print("*"); while (!KB.check(KEY_DOWN)) ( delay(1); ) in = KB.getNum; lcd.print("*"); if (in == 통과) ( if (in == pass) ( if (in == pass) ( if (in == pass) ( lcd.clear(); lcd.setCursor(0, 0); lcd.print("Open."); tone( 13, 400, 750); servo.write(180); digitalWrite(r, LOW); digitalWrite(g, HIGH); 지연(3000); lcd.clear(); lcd.setCursor(0, 0); lcd. print("닫습니다."); tone(13, 300, 700); servo.write(0); digitalWrite(g, LOW); digitalWrite(r, HIGH); 지연(1000); ) ) ) ) )

그게 다야. 코드 잠금을 즐기십시오!

라디오 요소 목록

지정 유형 명칭 수량 메모가게내 메모장
E1 아두이노 보드

아두이노 나노 3.0

1 5V 메모장으로
E8, E9 저항기

220옴

2 smd 메모장으로
E6 발광 다이오드

AL102G

1 빨간색 메모장으로
E7 발광 다이오드

AL307G

1 녹색 메모장으로
E3 LCD 디스플레이I2C 인터페이스로1 녹색 백라이트 메모장으로
E5 서보 기구SG901 180도 메모장으로
E2 버저5V1 메모장으로
E4 건반4x41 행렬 메모장으로
아니요 브레드보드640점1 납땜하지 않고

RF키로 제어되는 도어록을 소개합니다.

자물쇠는 다음과 같이 작동합니다. 우리 열쇠 가져오기(RFID 태그) - 자물쇠가 닫혀 있고 열쇠를 다시 가져오면 자물쇠가 열립니다. 자물쇠의 작동을 시각화하기 위해 6개의 2색 LED(선)를 사용했습니다. 닫을 때 - 빨간색 표시등을 통해 실행되고 열 때 - 녹색입니다. ALIEN의 키를 가져오면 빨간색 LED가 깜박입니다.

액추에이터로서 저는 자동차의 중앙 잠금 드라이브를 사용하기로 결정했습니다. 새거 사셔도 되고 쓰셔도 되고 가격차이도 크지 않아서 새거 쓰셔서 더 믿음이 가네요. 래치에 연결된 드라이브 로드. 걸쇠는 여전히 소련이고 강합니다. 그리고 강력한 "기물 파손 방지"도 필요하지 않습니다.

"기계"는 두 개의 와이어로 제어됩니다. 하나의 극성은 스템을 확장하고 반대 극성은 스템을 수축시킵니다. 12V의 전압에서 전류는 6A이며 많이 ...
"기계"에는 제한 스위치가 없습니다.

잠금 회로(계획대로)에는 ~ 220의 손실이 발생할 경우 잠금 작동을 보장하기 위해 보장된 전원 공급 장치인 12볼트 배터리가 있다는 사실을 기반으로 합니다. "기계"용 브리지 제어 체계를 개발했습니다. 회로의 특별한 특징은 비선형성으로 잠금 메커니즘의 안정적인 작동과 동시에 "기계" 및 주요 트랜지스터의 작동을 절약합니다.

다이어그램(위)에서 "Close" 숄더는 빨간색으로 강조 표시되고 "Open" 숄더는 녹색으로 강조 표시됩니다. 암은 저항기(전원 공급 장치에 있음)를 통해 별도로 전원이 공급됩니다. 가양성을 제거하기 위해 도입된 브리지 숄더의 전원 공급 장치 분리.

설명: 33옴 저항(전원 공급 장치 회로에 있음)을 통해 12볼트의 전압이 커패시터를 충전합니다(각 암에서 2000마이크로패럿). Arduino_ProMini-에서 제어 전압을 받으면 168 PVT322 옵토커플러를 통해 "닫기" 입력(또는 "열기"와 유사)에 연결하면 해당 키 암이 열립니다. 이 경우 다음과 같은 일이 발생합니다. 키가 열리는 순간 커패시터의 에너지가 "자동차"의 모터를 강력하게 "당깁니다". 커패시터가 방전되면(빠르게 발생) "기계"의 모터는 저항(33옴)에 의해 제한된 전류로 전원을 공급받습니다. 이로 인해 자물쇠를 "닫기"- "열기"하는 과정이 끝나면 스템이 다소 느리게 움직입니다.

이 엔진 구동 방식이 최적입니다.

변압기 전원 공급 회로. 일반적으로 잠금 회로는 12볼트, 2.8A/H 배터리로 구동됩니다. 그리고 전원 공급 회로는 배터리를 공칭 수준으로 유지합니다. "네트워크" LED는 전원 공급 장치의 정상 작동을 나타냅니다.

모든 다이오드는 1N4007입니다 (다이어그램에 표시하는 것을 잊었지만 사람이 질문했습니다-어떤 것입니까?).

(1) 최대 전류 제한기가 조립됩니다. 저항 R 1 상위 전류 임계값은 300mA로 설정됩니다.
일체형 스태빌라이저 LM317 (2) 조립된 전압 조정기. 안정화 전압은 저항에 의해 조정됩니다.아르 자형 2 . 배터리 전압은 13.7볼트여야 합니다.

배터리의 전압은 세 지점에서 공급됩니다.
(X), (Y)의 저항(각각 33옴)을 통해 - "자동차" 모터의 "드라이버" 키 어깨에 전원 ​​공급.

내 장치의 대부분은 손에 든 것에서 수집합니다. 이 프로젝트도 예외는 아닙니다. 케이스로 전자식 안정기의 케이스 :)를 사용합니다.

LED No.-2 ... No.-7 - 2색. 그들은 줄을 서 있습니다. 자물쇠를 "열고" "닫는" 과정을 시각화하는 데 사용됩니다. 꾸밈.

Arduino는 모든 종류의 장비를 복사하는 데 가장 적합한 시스템입니다. 대부분의 아이디어는 그녀 없이는 불가능했을 것입니다. 오랫동안 그러한 아이디어가있었습니다 : arduino에 특별한 조합 잠금 장치를 만드는 것입니다. 열려면 특정 키를 누르고 있어야 합니다. 이 경우 올바른 버튼을 알고 있어도 자물쇠가 열리지 않아야 합니다. 그것을 열려면 머슬 메모리를 사용하여 일정 간격을 유지해야 합니다. 범죄자는 그런 일을 할 수 없습니다. 그러나 이것은 모두 이론일 뿐입니다.

그것을 조립하려면 직사각형 펄스의 특수 장치와 여러 카운터 및 힙을 사용해야합니다. 그러나 완성된 장치는 전체 크기가 크고 사용하기 불편할 것입니다. 일반적으로 그러한 생각은 쉬지 않습니다. 꿈을 실현하기 위한 첫 번째 단계는 Arduino용 프로그램을 만드는 것이었습니다. 그것은 콤비네이션 자물쇠 역할을 할 것입니다. 그것을 열려면 하나의 키가 아니라 여러 개의 키를 동시에 눌러야 합니다. 완성된 회로는 다음과 같습니다.

화질이 좋지는 않지만 접지, D3, D5, D7, D9, D11에 연결이 되어 있습니다.

코드는 다음과 같습니다.

Const intina = 3; const int inb = 5; const int inc = 9; const int ledPin = 13; 정수 i = 1000; 바이트 a = 0; 바이트 b = 0; 바이트 c = 0; 바이트 d = 0; 부호 없는 긴 시간 = 0; // millis() unsigned long temp = 0 값을 갖는 것을 잊지 마십시오. //unsigned long byte에 저장 keya = (0, 0, 0, 0, 0, 0, 0, 0); // 실제로 바이트 keyb = ( 1, 1, 1, 1, 0, 1, 0, 0); 바이트 키c = (1, 0, 1, 0, 1, 1, 1, 0); 바이트 k = 0; void setup() ( pinMode(ina, INPUT_PULLUP); //버튼에 연결된 3개의 입력 pinMode(inb, INPUT_PULLUP); pinMode(inc, INPUT_PULLUP); pinMode(ledPin, OUTPUT); //핀 13에 내장된 LED pinMode (7, OUTPUT); pinMode(11, OUTPUT); digitalWrite(7, LOW); //접지 교체 digitalWrite(11, LOW); time = millis(); //타이밍에 필요 ) void blinktwice() ( // LED 이중 점멸 digitalWrite(ledPin, HIGH); delay(100); digitalWrite(ledPin, LOW); delay(100); digitalWrite(ledPin, HIGH); delay(100); digitalWrite(ledPin, LOW); delay( 200); ) void loop() ( if(k==0) ( blinktwice(); // 코드 입력 프롬프트 ) if (k == 8) ( digitalWrite(ledPin, HIGH); delay(3000); k = 0 ; ) a = digitalRead(ina); //버튼에서 신호 레벨 읽기 - 눌림/눌리지 않음 b = digitalRead(inb); c = digitalRead(inc); delay(100); //다음 if - 보호 가양성, if((digitalRead(ina) == a)&&(digitalRead(inb) ==b)&&(digitalRead(inc)==c)) ( if (a == keya[k]) ( if (b == keyb[k]) ( if (c == keyc[k]) ( k++; ) ) ) ) if (k==1) ( if (d ==0) ( 시간 = 밀리스(); d++; ) ) 온도 = 밀리스(); 온도 = 온도 - 시간; if (온도 > 10000) ( k= 0; d=0; 시간 = 밀리 (); ) )

코드에 대한 불필요한 질문을 피하기 위해 몇 가지 사항을 명확히 해야 합니다. 설정 기능은 포트를 할당하는 데 사용됩니다. 다음 기능은 핀 전압을 5V 높이는 데 필요한 Input_Pullup입니다. 이것은 저항을 사용하여 수행됩니다. 이로 인해 다양한 단락이 발생하지 않습니다. 보다 편리하게 사용하기 위해 blinktwice 기능을 사용하는 것이 좋습니다. 일반적으로 다른 프로그램을 만들 때 다른 기능을 시도해야 합니다.

기능을 할당한 후 포트에서 신호를 읽습니다. 버튼을 누르면 숫자 1로 표시되고 그렇지 않은 경우 - 2로 표시됩니다. 다음으로 모든 값이 분석됩니다. 예를 들어 0,1,1과 같은 조합이 있습니다. 즉, 첫 번째 키는 눌리고 나머지 두 개는 눌리지 않습니다. 모든 값이 참이면 조건 ​​8도 참입니다. 이는 전면 패널의 조명 LED로 표시됩니다. 다음으로 문을 여는 특정 코드를 입력해야 합니다.

코드의 마지막 요소는 카운터 값을 재설정하는 데 사용됩니다. 이 기능은 마지막 키를 누른 후 10초 이상이 경과하면 실행됩니다. 이 코드가 없으면 가능한 모든 옵션을 분류하는 것이 가능했지만 꽤 많이 있습니다. 이 장치를 만든 후 테스트해야 합니다. 더

얼마 전에 어메이징 스파이더맨을 다시 보고 있었는데 한 장면에서 피터 파커가 노트북에서 원격으로 문을 열고 닫았습니다. 이것을 보자마자 나는 정문에 이런 전자 잠금 장치가 필요하다는 것을 즉시 깨달았습니다.

약간의 손놀림 끝에 스마트 잠금 장치의 작동 모델을 조립했습니다. 이 기사에서는 수집 방법을 알려 드리겠습니다.

1단계: 재료 목록





Arduino에서 전자 잠금 장치를 조립하려면 다음 자료가 필요합니다.

전자제품:

  • 5V 벽면 어댑터

구성 요소:

  • 래치용 나사 6개
  • 판지
  • 전선

도구:

  • 납땜 인두
  • 글루건
  • 송곳
  • 송곳
  • 파일럿 홀 드릴
  • 편지지 칼
  • Arduino IDE가 있는 컴퓨터

2단계: 잠금 작동 방식

아이디어는 내가 열쇠 없이, 심지어 거기에 가지 않고도 문을 열고 닫을 수 있다는 것입니다. 하지만 이것은 기본 아이디어일 뿐입니다. 특별한 노크에 반응하는 노크 센서를 추가하거나 음성 인식 시스템을 추가할 수 있기 때문입니다!

볼트에 연결된 서보 레버는 Bluetooth 모듈을 통해 수신된 명령을 사용하여 볼트를 닫고(0°) 엽니다(60°).

3단계: 배선도


먼저 Arduino 보드에 서보를 연결해 보겠습니다(Arduino Nano 보드를 사용하고 있지만 핀아웃은 Uno 보드에서 정확히 동일합니다).

  • 서보의 갈색 선이 접지되어 Arduino의 접지에 연결합니다.
  • 빨간색 선은 양극이며 Arduino의 5V 커넥터에 연결합니다.
  • 주황색 선 - 서보 소스 출력, Arduino의 핀 9에 연결

조립을 진행하기 전에 서보를 테스트하는 것이 좋습니다. 이렇게 하려면 Arduino IDE 프로그램에서 예제에서 Sweep을 선택합니다. 서보가 작동하는지 확인한 후 Bluetooth 모듈을 연결할 수 있습니다. 블루투스 모듈의 rx 핀을 아두이노의 tx 핀에 연결하고 모듈의 tx 핀을 아두이노의 rx 핀에 연결해야 합니다. 하지만 아직 하지 마세요! 이러한 연결이 납땜되면 Arduino에 코드를 업로드할 수 없으므로 먼저 모든 코드를 업로드한 다음 연결을 납땜하십시오.

다음은 모듈과 마이크로 컨트롤러의 연결 다이어그램입니다.

  • Rx 모듈 - Tx Arduino 보드
  • Tx 모듈 - Rx 보드
  • 모듈의 Vcc(양극 단자) - Arduino 보드의 3.3v
  • 접지 접지 연결(접지 대 접지)

설명이 명확하지 않으면 제공된 배선도를 따르십시오.

4단계: 테스트

이제 모든 작동 부품이 있으므로 서보가 래치를 움직일 수 있는지 확인하겠습니다. 도어에 걸쇠를 장착하기 전에 서보가 충분히 강한지 확인하기 위해 테스트 샘플을 조립했습니다. 처음에는 서보가 약한 것 같았고 걸쇠에 기름 한 방울을 추가한 후 모든 것이 잘 작동했습니다. 메커니즘이 잘 미끄러지는 것이 매우 중요합니다. 그렇지 않으면 방에 갇힐 위험이 있습니다.

5단계: 전기 부품용 인클로저



컨트롤러와 블루투스 모듈만 케이스에 넣고 서보는 밖에 두기로 했습니다. 이렇게 하려면 카드보드에 Arduino Nano 보드의 윤곽을 따라가며 주변에 1cm의 공간을 추가하고 잘라냅니다. 그런 다음 신체의 5면을 더 잘라냅니다. 전면 벽에 컨트롤러 전원 코드용 구멍을 뚫어야 합니다.

케이스 측면 치수:

  • 하단 - 7.5x4cm
  • 뚜껑 - 7.5x4cm
  • 왼쪽 벽 - 7.5x4cm
  • 오른쪽 벽 - 7.5x4cm
  • 전면 벽 - 4x4cm(전원 코드용 슬롯 포함)
  • 뒷벽 - 4x4cm

6단계: 신청

컨트롤러를 제어하려면 Bluetooth가 내장된 Android 또는 Windows 가젯이 필요합니다. 나는 사과 장치에서 응용 프로그램을 테스트할 기회가 없었습니다. 아마도 일부 드라이버가 필요할 것입니다.

나는 당신 중 일부가 그것을 확인할 기회가 있다고 확신합니다. Android의 경우 Bluetooth 터미널 앱을 다운로드하고 Windows의 경우 TeraTerm을 다운로드하십시오. 그런 다음 모듈을 스마트폰에 연결해야 합니다. 이름은 linvor이고 암호는 0000 또는 1234여야 합니다. 페어링이 설정되면 설치된 애플리케이션을 열고 옵션을 입력한 다음 "연결 설정(보안되지 않음)"을 선택합니다. 스마트폰은 이제 Arduino 직렬 모니터이므로 컨트롤러와 통신할 수 있습니다.

0을 입력하면 문이 닫히고 스마트폰 화면에 "문 닫힘"이라는 메시지가 표시됩니다.
1을 입력하면 문이 열리는 것을 볼 수 있으며 화면에 "문 열림"이라는 메시지가 나타납니다.
Windows에서는 TeraTerm 애플리케이션을 설치해야 한다는 점을 제외하면 프로세스가 동일합니다.

7단계: 볼트 장착


먼저 서보를 래치에 연결해야 합니다. 이렇게 하려면 드라이브 하우징의 장착 구멍에서 플러그를 잘라냅니다. 서보를 넣으면 마운팅 홀이 래치와 같은 높이가 되어야 합니다. 그런 다음 래치 핸들이 있던 래치 슬롯에 서보 레버를 배치해야 합니다. 케이스에서 자물쇠가 어떻게 움직이는지 확인하십시오. 모든 것이 정상이면 접착제로 서보 레버를 고정하십시오.

이제 도어에 나사용 파일럿 구멍을 뚫어야 합니다. 이렇게하려면 래치를 도어에 부착하고 도어 리프의 나사 구멍을 연필로 표시하십시오. 표시된 위치에 약 2.5cm 깊이의 나사용 구멍을 뚫고 걸쇠를 부착하고 나사로 고정합니다. 서보를 다시 확인하십시오.

8단계: 영양


장치를 완성하려면 Arduino에 연결할 전원 공급 장치, 코드 및 미니 USB 플러그가 필요합니다.
전원 공급 장치의 접지 단자를 미니 USB 포트의 접지 단자에 연결하고 빨간색 선을 미니 USB 포트의 빨간색 선에 연결한 다음 잠금 장치에서 도어 경첩으로 연결하고 거기에서 소켓으로 연결합니다. .

9단계: 코드

#include 서보 myservo; 정수 위치 = 0; 정수 상태; 정수 플래그=0; 무효 설정() ( myservo.attach(9); Serial.begin(9600); myservo.write(60); 지연(1000); ) 무효 루프() ( if(Serial.available() > 0) ( 상태 = Serial.read(); flag=0; ) // 상태가 "0"이면 DC 모터가 꺼집니다 if (state == "0") ( myservo.write(8); delay(1000); Serial.read(); flag=0; ) println("도어 잠김"); ) else if (state == "1") ( myservo.write(55); delay(1000); Serial.println("Door UnLocked"); ) )

10단계: 완성된 아두이노 잠금

원격 제어 잠금 장치를 사용하고 방에 있는 친구를 "실수로" 잠그는 것을 잊지 마십시오.