아두이노 나노 ESP32 - 문 센서 | Arduino Nano ESP32 - Door Sensor

문 문센서(또는 출입 센서, 접촉 센서, 또는 창문 센서라고도 함)는 특히 보안을 위해 많은 종류의 응용 프로그램에서 널리 사용됩니다. 이것은 문, 창문 등의 출입구를 감지/모니터링하는 데 사용됩니다. 이 튜토리얼은 문 센서와 함께 Arduino Nano ESP32를 사용하는 방법에 대한 지침을 제공합니다.

준비물

1×Arduino Nano ESP32 Amazon
1×USB Cable Type-C 쿠팡 | Amazon
1×Door Sensor 쿠팡 | Amazon
1×(Optional) DC Power Jack 쿠팡 | Amazon
1×Breadboard 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Recommended) Screw Terminal Expansion Board for Arduino Nano 쿠팡 | Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

문 센서 정보

도어 센서 핀배열

문 센서는 두 가지 구성 요소가 있습니다:

  • 하나의 자석
  • 두 개의 전선이 있는 하나의 리드 스위치
Door Sensor Pinout

스위치/버튼처럼, 리드 스위치의 두 전선을 구분할 필요가 없습니다.

문 센서 작동 원리

문/창문에 자석과 리드 스위치는 다음과 같이 설치됩니다:

  • 자석은 움직일 수 있는 부품입니다. 이것은 문/창문에 부착되어야 합니다.
  • 리드 스위치는 고정된 부품입니다. 이것은 문틀에 부착되어야 합니다.

문이 닫혔을 때 두 부품은 접촉 상태입니다.

  • 자석에 가까울 때 리드 스위치 회로는 닫힙니다.
  • 자석에서 멀리 떨어져 있을 때 리드 스위치 회로는 열립니다.
Door Sensor how it works

※ NOTE THAT:

버튼처럼, 리드 스위치에 연결된 Arduino Nano ESP32 핀에서는 풀업 또는 풀다운 저항을 반드시 사용해야 합니다.

리드 스위치를 다음과 같이 연결한다면: 하나의 선을 GND에, 다른 하나를 ESP32의 입력 핀에 풀업 저항기와 함께 연결한다면:

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

그래서:

  • ESP32의 입력 핀이 LOW이면 문이 닫혀 있습니다.
  • ESP32의 입력 핀이 HIGH이면 문이 열립니다.
  • ESP32의 입력 핀이 LOW에서 HIGH로 바뀌면 문이 열리고 있습니다.
  • ESP32의 입력 핀이 HIGH에서 LOW로 바뀌면 문이 닫히고 있습니다.

도어 센서와 아두이노 나노 ESP32 사이의 배선도

Arduino Nano ESP32 Door Sensor Wiring Diagram

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

문 센서 프로그래밍 방법

pinMode() 함수를 사용하여 Arduino Nano ESP32 핀을 디지털 입력 모드로 초기화합니다. 예를 들어, 핀 D2

pinMode(D2, INPUT_PULLUP);
  • digitalRead() 함수를 사용하여 아두이노 나노 ESP32 핀의 상태를 읽습니다.
int door_state = digitalRead(D2);

아두이노 나노 ESP32 코드 - 문 열림 및 닫힘 상태 확인

/* * 이 Arduino Nano ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano-esp32/arduino-nano-esp32-door-sensor */ #define DOOR_SENSOR_PIN D2 // Arduino Nano ESP32 핀이 문 센서의 핀에 연결됨 int door_state; void setup() { Serial.begin(9600); // 시리얼을 초기화하여 시리얼 모니터와 통신합니다. pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // ESP32 핀을 입력 풀업 모드로 설정 } 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"); } }

사용 방법

  • 아두이노 나노 ESP32를 처음 사용하는 경우, 아두이노 IDE에서 아두이노 나노 ESP32 환경 설정 방법을 참조하세요. 아두이노 나노 ESP32 환경 설정 방법.
  • 위의 코드를 복사하여 아두이노 IDE에 붙여넣으세요.
  • 아두이노 IDE에서 Upload 버튼을 클릭하여 아두이노 나노 ESP32 보드에 코드를 컴파일하고 업로드하세요.
  • 자석을 리드 스위치에 가까이 가져간 다음 리드 스위치에서 멀어지게 이동시키세요.
  • 시리얼 모니터에서 결과를 확인하세요. 아래와 같이 보일 것입니다:.
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  

아두이노 나노 ESP32 코드 - 문 열림 및 닫힘 이벤트 감지

/* * 이 Arduino Nano ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano-esp32/arduino-nano-esp32-door-sensor */ #define DOOR_SENSOR_PIN D2 // 아두이노 나노 ESP32 핀이 문 센서의 핀에 연결되어 있습니다. int door_state; // 문 센서의 현재 상태 int prev_door_state; // 문 센서의 이전 상태 void setup() { Serial.begin(9600); // 시리얼 모니터와 통신하기 위해 시리얼을 초기화합니다. pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // ESP32 핀을 입력 풀업 모드로 설정합니다. 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 event is detected"); // TODO: 알람 켜기, 불 켜기 혹은 알림 보내기... } else if (prev_door_state == HIGH && door_state == LOW) { // 상태 변경: HIGH -> LOW Serial.println("The door-closing event is detected"); // TODO: 알람 끄기, 불 끄기 혹은 알림 보내기... } }
  • 위의 코드를 복사해서 아두이노 IDE에 붙여넣으세요.
  • 아두이노 IDE에서 Upload 버튼을 클릭하여 코드를 아두이노 나노 ESP32 보드에 컴파일하고 업로드하세요.
  • 자석을 리드 스위치에 가까이 가져갔다가 멀어지게 움직이세요.
  • 시리얼 모니터에서 결과를 확인하세요. 아래와 같이 보입니다:.
COM6
Send
The door-closing event is detected The door-opening event is 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!