ESP8266 - 솔레노이드 잠금장치 | ESP8266 - Solenoid Lock

솔레노이드 잠금장치, 또는 전기 스트라이크 잠금장치라고도 불리는 이 장치는 찬장, 서랍, 문을 잠그고 풀 수 있습니다. 이 튜토리얼에서는 ESP8266을 사용하여 솔레노이드 잠금장치를 제어하는 방법을 배우게 됩니다.

솔레노이드 잠금의 대안은 전자기 잠금입니다. 자세한 정보는 ESP8266 - 전자기 잠금 튜토리얼을 참조해주세요.

준비물

1×ESP8266 NodeMCU Amazon
1×Micro USB Cable Amazon
1×Solenoid Lock Amazon
1×Relay Amazon
1×12V Power Adapter Amazon
1×DC Power Jack 쿠팡 | Amazon
1×(Optional) 5V Power Adapter for ESP8266 Amazon
1×(Optional) ESP8266 Screw Terminal Adapter Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

솔레노이드 잠금장치에 대하여

솔레노이드 잠금 핀배열

솔레노이드 잠금장치는 두 개의 전선으로 구성되어 있습니다:

  • 양극(+) 전선(빨간색)은 직류 전원 공급 장치의 12V에 연결되어야 합니다.
  • 음극(-) 전선(검정색)은 직류 전원 공급 장치의 GND에 연결되어야 합니다.
Solenoid Lock pinout

작동 원리

  • 솔레노이드 잠금장치에 전력을 공급할 때, 잠금 혀가 돌출되어 문이 잠깁니다.
  • 솔레노이드 잠금장치에 전력을 공급하지 않을 때, 잠금 혀가 들어가서 문이 열립니다.

※ NOTE THAT:

솔레노이드 잠금장치는 일반적으로 12V, 24V, 혹은 48V 전원이 필요합니다. 따라서, ESP8266 핀에 직접 연결될 수 없습니다. 솔레노이드 잠금장치를 ESP8266 핀에 연결하기 위해서는 릴레이를 사용해야 합니다.

솔레노이드 잠금장치가 릴레이(평소에 개방 모드로)에 연결되어 있다면:

  • 릴레이가 활성화되지 않았을 때, 문은 잠기지 않습니다.
  • 릴레이가 활성화되었을 때, 문은 잠깁니다.

ESP8266을 릴레이에 연결하면 ESP8266 프로그래밍을 통해 솔레노이드 잠금장치를 제어할 수 있습니다. 릴레이에 대한 자세한 정보는 ESP8266 - 릴레이 튜토리얼을 참고하세요.

선연결

ESP8266 NodeMCU Solenoid Lock wiring diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

ESP8266의 핀 배치ESP8266 및 다른 구성 요소에 전원을 공급하는 방법에 대해 더 많이 보십시오.

ESP8266 코드

이 코드는 문이 5초마다 잠그고 풀리도록 합니다.

/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-solenoid-lock */ #define RELAY_PIN D8 // ESP8266 핀이 릴레이의 IN 핀에 연결됨 // setup 함수는 리셋이나 전원 켤 때 한 번 실행됩니다. void setup() { // 디지털 핀을 출력으로 초기화합니다. pinMode(RELAY_PIN, OUTPUT); } // loop 함수는 무한히 반복됩니다 void loop() { digitalWrite(RELAY_PIN, LOW); // 문을 해제합니다 delay(5000); digitalWrite(RELAY_PIN, HIGH); // 문을 잠급니다 delay(5000); }

사용 방법

Arduino IDE에서 ESP8266을 시작하는 방법에 대해 아래 단계를 따르세요:

  • ESP8266을 처음 사용하는 경우 ESP8266 환경 설정 방법 튜토리얼을 확인하세요.
  • 다이어그램에 표시된 대로 구성 요소를 연결하세요.
  • USB 케이블을 사용하여 컴퓨터에 ESP8266 보드를 연결하세요.
  • 컴퓨터에서 Arduino IDE를 엽니다.
  • 올바른 ESP8266 보드(예: NodeMCU 1.0 (ESP-12E Module))와 해당 COM 포트를 선택하세요.
  • 코드를 복사하고 Arduino IDE에서 엽니다.
  • Arduino IDE에서 Upload 버튼을 클릭하여 코드를 ESP8266으로 전송하세요.
  • 자물쇠 혀의 상태를 확인하세요.

ESP8266 - 버튼으로 솔레노이드 잠금 제어

배선도

ESP8266 NodeMCU Solenoid Lock wiring diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

ESP8266 보드용 코드 작성.

/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-solenoid-lock */ #include <ezButton.h> #define BUTTON_PIN D1 // ESP8266의 버튼 핀에 연결된 핀 #define RELAY_PIN D8 // ESP8266의 릴레이 핀에 연결된 핀 ezButton button(BUTTON_PIN); // D8 핀을 위한 ezButton 객체 생성 void setup() { Serial.begin(9600); // 시리얼 모니터와 통신을 초기화합니다. pinMode(RELAY_PIN, OUTPUT); // 아두이노 핀을 출력 모드로 설정 button.setDebounceTime(50); // 디바운스 시간을 50 밀리초로 설정 digitalWrite(RELAY_PIN, HIGH); // 문을 잠급니다 } void loop() { button.loop(); // 반드시 loop() 함수를 먼저 호출해야 합니다 if(button.isPressed()) { Serial.println("The button is pressed"); digitalWrite(RELAY_PIN, LOW); // 10초 동안 문을 엽니다 delay(10000); // 10초 digitalWrite(RELAY_PIN, HIGH); // 다시 문을 잠급니다 } }

사용 방법

다이어그램에 표시된 대로 구성요소를 연결하세요.

USB 케이블을 사용하여 ESP8266 보드를 컴퓨터에 연결하세요.

컴퓨터에서 Arduino IDE를 열어주세요.

올바른 ESP8266 보드(예: NodeMCU 1.0 (ESP-12E 모듈))와 해당 COM 포트를 선택하세요.

ezButton 라이브러리를 설치하세요. 설치 방법은 어떻게 하나요를 참고하세요.

코드를 복사하여 Arduino IDE에서 엽니다.

Arduino IDE에서 Upload 버튼을 클릭하여 ESP8266으로 코드를 업로드하세요.

버튼을 한 번 누르세요.

10초 동안 자물쇠 혀의 상태를 확인하세요.

※ NOTE THAT:

위 코드에서는 delay 함수를 사용했습니다. 결과적으로, 버튼에 대해 디바운싱을 구현할 필요가 없습니다. 그럼에도 불구하고, delay 함수를 사용하지 않고 추가 작업을 수행하고자 하는 경우를 위해 디바운싱이 포함된 코드를 여전히 포함시켰습니다. 자세한 정보는 How to use millis() instead of delay()를 확인하세요.

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!