ESP32 C3 Super Mini 도어 센서
도어 센서는 문이나 창문이 열렸는지 닫혔는지를 ESP32 C3 Super Mini에 알려 주는 작고 저렴한 부품입니다. 거의 모든 DIY 홈 보안 프로젝트의 핵심입니다. 이 튜토리얼에서는 ESP32 C3 Super Mini로 도어 센서를 배선하고 프로그래밍하는 방법을 단계별로 보여줍니다.
이 튜토리얼에서 배울 내용:
- 도어 센서란 무엇이며 자석과 리드 스위치가 어떻게 함께 동작하는지
- 도어 센서를 ESP32 C3 Super Mini에 연결하는 방법
- 코드에서 문 상태(열림 또는 닫힘)를 읽는 방법
- 문이 열리는 이벤트와 닫히는 이벤트를 감지하는 방법
- 풀업 저항이 필요한 이유와 내장 풀업 저항을 사용하는 방법

필요한 하드웨어
| 1 | × | ESP32 C3 Super Mini | 아마존 | |
| 1 | × | USB 케이블 타입-A to 타입-C (USB-A PC용) | 쿠팡 | 아마존 | |
| 1 | × | USB 케이블 타입-C to 타입-C (USB-C PC용) | 아마존 | |
| 1 | × | 문 센서 | 쿠팡 | 아마존 | |
| 1 | × | (옵션) DC 커넥터 전원 연결 잭 플러그 소켓 | 쿠팡 | 아마존 | |
| 1 | × | 브레드보드 | 쿠팡 | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 |
도어 센서 소개
도어 센서는 자석이 가까이 오거나 멀어질 때 회로를 열거나 닫는 자기 스위치입니다.
다른 이름:
- 출입 센서
- 접촉 센서
- 창문 센서
- 마그네틱 접점 스위치
주요 특징:
- 매우 저렴하고 사용하기 쉽습니다
- 센서 자체에는 전원 공급이 필요 없습니다
- ESP32 C3 Super Mini에게는 간단한 버튼처럼 동작합니다
- 마모되는 움직이는 부품이 없습니다
- 문틀 안에 쉽게 숨길 수 있습니다
기술 사양:
- 종류: 상시 개방(normally-open) 리드 스위치와 자석
- 출력: 단순한 ON/OFF 접점 (전압 없음, 데이터 없음)
- 동작 거리: 자석과 스위치 사이 약 15-25 mm
- 로직 레벨: 3.3V 전용인 ESP32 C3 Super Mini 핀에 안전
- 전선: 2가닥, 극성 없음
도어 센서 핀 배치
도어 센서는 두 개의 분리된 부분으로 이루어져 있습니다.
- 자석: 움직이는 부분입니다. 전선이 없습니다.
- 리드 스위치: 고정된 부분입니다. 전선이 2가닥 있습니다.

- 전선 1: 극성이 없습니다. GND 또는 ESP32 C3 Super Mini 핀에 연결할 수 있습니다.
- 전선 2: 극성이 없습니다. GND 또는 ESP32 C3 Super Mini 핀에 연결할 수 있습니다.
버튼과 마찬가지로 리드 스위치의 두 전선을 구분할 필요가 없습니다.
도어 센서의 작동 원리
자석과 리드 스위치는 문이 닫혔을 때 나란히 놓이도록 설치합니다.
- 자석: 문이나 창문(움직이는 부분)에 부착합니다
- 리드 스위치: 문틀(움직이지 않는 부분)에 부착합니다
- 문 닫힘: 두 부분이 서로 가까이 있습니다
- 문 열림: 두 부분이 서로 멀리 떨어져 있습니다

리드 스위치 내부에서 일어나는 일:
- 자석이 가까움: 회로가 닫힙니다 (두 전선이 연결됨)
- 자석이 멀리 있음: 회로가 열립니다 (두 전선이 연결되지 않음)
※ 주의:
ESP32 C3 Super Mini - 버튼과 마찬가지로, 리드 스위치에 연결되는 ESP32 C3 Super Mini 핀에는 반드시 풀업 또는 풀다운 저항을 사용해야 합니다. 그렇지 않으면 핀 상태가 무작위로 바뀝니다. 다행히 ESP32 C3 Super Mini에는 내장 풀업 저항이 있으므로 추가 부품이 필요 없습니다.
리드 스위치의 한 전선을 GND에, 다른 전선을 풀업 저항이 있는 ESP32 C3 Super Mini 입력 핀에 연결하면:
- 자석이 리드 스위치 가까이 있을 때: 입력 핀은 LOW입니다
- 자석이 리드 스위치에서 멀리 있을 때: 입력 핀은 HIGH입니다
따라서 코드에서는:
- 핀이 LOW: 문이 닫혀 있습니다
- 핀이 HIGH: 문이 열려 있습니다
- 핀이 LOW에서 HIGH로 바뀜: 문이 열리는 중입니다
- 핀이 HIGH에서 LOW로 바뀜: 문이 닫히는 중입니다
도어 센서와 ESP32 C3 Super Mini 간의 배선도
도어 센서를 ESP32 C3 Super Mini에 연결하는 데는 전선 두 가닥만 있으면 됩니다.
- 참고: ESP32 C3 Super Mini는 3.3V에서만 동작합니다. GPIO 핀에 5V 신호를 절대 넣지 마세요.
- 참고: 리드 스위치에는 극성이 없으므로 두 전선을 서로 바꿔도 됩니다.
- 참고: 문이 닫혔을 때 자석과 리드 스위치의 거리를 약 15 mm 이내로 유지하세요.
- 참고: GPIO8이나 GPIO9는 사용하지 마세요. 부트 스트래핑 핀입니다.

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
| 도어 센서 핀 | ESP32 C3 Super Mini 핀 |
|---|---|
| 리드 스위치 전선 1 | GPIO7 |
| 리드 스위치 전선 2 | GND |
도어 센서 프로그래밍 방법
ESP32 C3 Super Mini에서 도어 센서를 프로그래밍하는 데는 두 개의 함수만 필요합니다.
- pinMode() 함수를 사용하여 핀을 내장 풀업이 있는 입력으로 설정합니다. 예: GPIO7
- digitalRead() 함수를 사용하여 핀의 상태를 읽습니다:
- 팁: INPUT_PULLUP은 ESP32 C3 Super Mini 내부의 저항을 켜므로 추가 저항이 필요 없습니다.
ESP32 C3 Super Mini 코드 - 문 열림/닫힘 상태 확인
첫 번째 예제는 시리얼 모니터에 문 상태를 반복해서 출력합니다.
이 코드가 하는 일:
- GPIO7을 내부 풀업 저항이 있는 입력으로 설정합니다
- 루프마다 도어 센서 상태를 읽습니다
- 핀이 HIGH이면 "The door is open"을 출력합니다
- 핀이 LOW이면 "The door is closed"를 출력합니다
빠른 단계
- ESP32 C3 Super Mini가 처음이신가요? 먼저 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료하여 개발 환경을 설정하세요.
- 부품 연결: 위의 배선도를 따릅니다. 리드 스위치를 GPIO7과 GND에 연결합니다.
- 보드 연결: USB Type-C 케이블로 ESP32 C3 Super Mini를 컴퓨터에 연결합니다.
- Arduino IDE 열기: 컴퓨터에서 소프트웨어를 실행합니다.
- 보드 선택: Tools > Board에서 ESP32 C3 Super Mini가 선택되어 있는지 확인합니다.
- 포트 선택: Tools > Port에서 보드의 COM 포트를 선택합니다.
- 코드 복사: 위 코드를 Arduino IDE에 붙여넣습니다.
- 코드 업로드: Arduino IDE에서 Upload 버튼을 클릭합니다.
- 시리얼 모니터 열기: 보드레이트를 115200으로 설정합니다.
- 테스트: 자석을 리드 스위치 가까이 가져간 다음, 멀리 떨어뜨립니다.
- 결과 확인: 시리얼 모니터를 확인합니다. 아래 출력과 같이 보입니다.
- 전문가 팁: 상태가 전혀 바뀌지 않으면 자석을 더 가까이 가져가세요. 대부분의 리드 스위치는 약 15 mm 이내여야 합니다.
ESP32 C3 Super Mini 코드 - 문 열림 및 문 닫힘 이벤트 감지
첫 번째 코드는 상태를 알려 줍니다. 두 번째 코드는 상태가 바뀌는 순간을 알려 줍니다.
이 코드가 하는 일:
- 이전 루프의 문 상태를 저장합니다
- GPIO7에서 새로운 문 상태를 읽습니다
- 문이 열리기 시작할 때(LOW에서 HIGH로) 메시지를 한 번 출력합니다
- 문이 닫히기 시작할 때(HIGH에서 LOW로) 메시지를 한 번 출력합니다
- 경보, 조명, 알림을 추가할 수 있는 깔끔한 위치를 제공합니다
빠른 단계
- ESP32 C3 Super Mini가 처음이신가요? 먼저 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료하여 개발 환경을 설정하세요.
- 같은 배선 유지: 리드 스위치는 그대로 GPIO7과 GND에 연결합니다.
- 코드 복사: 위 코드를 Arduino IDE에 붙여넣습니다.
- 보드 선택: Tools > Board에서 ESP32 C3 Super Mini가 선택되어 있는지 확인합니다.
- 코드 업로드: Arduino IDE에서 Upload 버튼을 클릭합니다.
- 시리얼 모니터 열기: 보드레이트를 115200으로 설정합니다.
- 테스트: 자석을 리드 스위치 가까이 가져간 다음, 멀리 떨어뜨립니다.
- 결과 확인: 변화가 있을 때마다 한 줄만 출력됩니다.
- 전문가 팁: 코드에서 // TODO 주석을 찾아보세요. 그곳에 부저나 LED 코드를 추가하면 됩니다.
라인별 코드 설명
위의 ESP32 C3 Super Mini 코드에는 라인별 설명이 포함되어 있습니다. 코드의 주석을 읽어 보세요!
응용/프로젝트 아이디어
ESP32 C3 Super Mini에서 도어 센서를 활용하는 재미있는 방법입니다.
- 문 경보기: 외출 중에 문이 열리면 부저를 울립니다.
- 출입 카운터: 오늘 문이 몇 번 열렸는지 셉니다.
- 자동 조명: 수납장 문이 열리는 순간 LED 스트립을 켭니다.
- 냉장고 감시기: 냉장고 문이 너무 오래 열려 있으면 알려 줍니다.
- 우편함 알림: 우편함 뚜껑이 열리면 메시지를 보냅니다.
- 창문 모니터: 잠자리에 들기 전에 모든 창문을 확인합니다.
도전해 보기
도어 센서와 ESP32 C3 Super Mini로 다음 작은 프로젝트를 연습해 보세요.
- 쉬움: 문이 열려 있는 동안 GPIO3의 LED를 켜 보세요.
- 쉬움: 루프마다가 아니라 문 상태가 바뀔 때만 출력해 보세요.
- 보통: 문이 열릴 때마다 세 번 울리는 부저를 추가해 보세요.
- 보통: 문이 열린 횟수를 세어 시리얼 모니터에 합계를 출력해 보세요.
- 어려움: 문이 열리면 타이머를 시작하고, 30초 후에도 열려 있으면 경보를 울려 보세요.
- 어려움: ESP32 C3 Super Mini의 WiFi를 사용하여 문이 열릴 때마다 휴대폰 알림을 보내 보세요.