ESP8266 - 문 센서 | ESP8266 - Door Sensor

문 센서는 문, 창문 등과 같은 출입구를 감지하고 모니터링할 수 있어 보안 시스템에서 인기있는 선택입니다. 또한 출입 센서, 접촉 센서 또는 창문 센서로도 불립니다.

이 튜토리얼은 ESP8266을 문 센서와 함께 사용하는 방법을 안내합니다. 자세히 말해, 우리는 배울 것입니다:

준비물

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

문 센서 정보

문 센서 핀아웃

문 센서는 두 부분으로 구성됩니다:

  • 두 개의 핀이 있는 리드 스위치
  • 자석
Door Sensor pinout

일반 스위치/버튼과 비슷하게, 리드 스위치의 두 핀을 구분할 필요가 없습니다.

작동 원리

자석은 문이나 창문(움직이는 부분)에 붙어 있고, 리드 스위치는 문틀(고정된 부분)에 부착되어 있습니다. 문이 닫히면 두 부품이 접촉됩니다:

  • 자석이 리드 스위치에 가까우면, 리드 스위치 회로가 닫힙니다.
  • 자석이 리드 스위치에서 멀리 떨어져 있으면, 리드 스위치 회로가 열립니다.
Door Sensor how it works

※ NOTE THAT:

리드 스위치는 핀에서 LOW 또는 HIGH 신호를 발생시키지 않습니다. 닫혀 있거나 열려 있습니다. ESP8266에 어떻게 연결하느냐에 따라 핀의 값이 LOW, HIGH 또는 예측할 수 없는 부동 값이 될 수 있습니다. 이를 방지하기 위해 ESP8266 핀에 풀업 또는 풀다운 저항을 사용해야 합니다.

리드 스위치의 한 핀을 GND에 연결하고, 리드 스위치의 다른 핀을 풀업 저항기(내부 또는 외부)가 있는 ESP8266 입력 핀에 연결한다면:

  • 자석이 리드 스위치에 가까울 때, ESP8266 입력 핀의 값은 LOW입니다.
  • 자석이 리드 스위치에서 멀어질 때, ESP8266 입력 핀의 값은 HIGH입니다.

문의 상태를 결정하기 위해, 우리는 단순히 아두이노의 입력 핀 상태를 확인합니다.

  • 상태가 LOW이면, 문은 닫혀 있습니다.
  • 상태가 HIGH이면, 문은 열려 있습니다.

우리는 ESP8266 입력 핀의 상태 변화를 모니터링함으로써 문이 열리거나 닫힐 때를 감지할 수도 있습니다.

  • 상태가 LOW에서 HIGH로 변경되면, 문이 열림이 감지되었습니다.
  • 상태가 HIGH에서 LOW로 변경되면, 문이 닫힘이 감지되었습니다.

선연결

ESP8266 NodeMCU Door Sensor wiring diagram

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

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

문 센서를 프로그래밍하는 방법

PinMode() 함수를 사용하여 ESP8266 핀을 디지털 입력 모드로 설정합니다. 예를 들어, 핀 D7이 입력으로 설정됩니다.

pinMode(D7, INPUT_PULLUP);

ESP8266 핀의 상태를 평가하기 위해 digitalRead() 함수를 활용합니다.

cpp int door_state = digitalRead(D7);

ESP8266 코드 - 문 열림과 닫힘 상태 확인

/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-door-sensor */ #define DOOR_SENSOR_PIN D7 // ESP8266 핀 D7이 문 센서의 핀에 연결되어 있습니다 int door_state; void setup() { Serial.begin(9600); // 직렬 통신을 통한 통신을 초기화합니다. pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // ESP8266 핀을 입력 풀업 모드로 구성합니다 } void loop() { door_state = digitalRead(DOOR_SENSOR_PIN); // 상태 읽기 if (door_state == HIGH) { Serial.println("The door is open"); } else { Serial.println("The door is closed"); } }

사용 방법

Arduino IDE에서 ESP8266을 시작하려면 다음 단계를 따르십시오:

  • ESP8266을 처음 사용하는 경우 Arduino IDE에서 ESP8266 환경 설정하는 방법 튜토리얼을 확인하세요.
  • 다이어그램에 표시된 대로 부품을 연결하세요.
  • USB 케이블을 사용하여 ESP8266 보드를 컴퓨터에 연결하세요.
  • 컴퓨터에서 Arduino IDE를 엽니다.
  • 올바른 ESP8266 보드를 선택하세요, 예를 들면 (NodeMCU 1.0 (ESP-12E Module)), 그리고 해당하는 COM 포트를 선택하세요.
  • 코드를 복사하고 Arduino IDE로 엽니다.
  • IDE에서 Upload 버튼을 클릭하여 코드를 ESP8266에 전송하세요.
  • 자석을 리드 스위치에 가까이 가져간 다음 멀어지게 하세요.
  • 결과를 확인하기 위해 시리얼 모니터를 확인하세요.
COM6
Send
The door is open The door is open The door is closed The door is closed The door is closed The door is closed The door is closed The door is open The door is open
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

ESP8266 코드 - 문 열림 및 문 닫힘 이벤트 감지

/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-door-sensor */ #define DOOR_SENSOR_PIN D7 // ESP8266 핀 D7이 문 센서의 핀에 연결되어 있습니다 int door_state; // 문 센서의 현재 상태 int prev_door_state; // 문 센서의 이전 상태 void setup() { Serial.begin(9600); // 직렬 통신을 시작해서 시리얼 모니터와 통신합니다. pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // ESP8266 핀을 입력 풀업 모드로 설정합니다 door_state = digitalRead(DOOR_SENSOR_PIN); // 상태 읽기 } void loop() { prev_door_state = door_state; // 마지막 상태 저장 door_state = digitalRead(DOOR_SENSOR_PIN); // 새로운 상태 읽기 if (prev_door_state == LOW && door_state == HIGH) { // 상태 변화: LOW -> HIGH Serial.println("The door-opening has been detected"); // 할 일: 경보 켜기, 불 켜기 또는 알림 보내기 ... } else if (prev_door_state == HIGH && door_state == LOW) { // 상태 변화: HIGH -> LOW Serial.println("The door-closing has been detected"); // 할 일: 경보 끄기, 불 끄기 또는 알림 보내기 ... } }
  • 코드를 복사하고 Arduino IDE에서 열어보세요.
  • Upload 버튼을 클릭하여 ESP8266으로 전송하세요.
  • 리드 스위치 가까이에 자석을 가져다 놓은 다음, 멀리 이동시키세요.
  • 시리얼 모니터에서 결과를 확인하세요.
COM6
Send
The door-closing has been detected The door-opening has been detected
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, 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!