ESP32 마이크로파이썬 모션 센서
이 튜토리얼은 HC-SR501 모션 센서와 MicroPython을 사용하는 ESP32로 사람의 존재를 감지하는 방법을 안내합니다. 자세히 살펴보면:
- HC-SR501 모션 센서의 작동 원리
- HC-SR501 모션 센서의 상태를 읽기 위한 ESP32용 MicroPython 코드 작성 방법

준비물
1 | × | ESP32 ESP-WROOM-32 개발 모듈 | 쿠팡 | 아마존 | |
1 | × | USB 케이블 타입-A to 타입-C (USB-A PC용) | 쿠팡 | 아마존 | |
1 | × | USB 케이블 타입-C to 타입-C (USB-C PC용) | 아마존 | |
1 | × | HC-SR501 모션 센서 | 쿠팡 | 아마존 | |
1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
1 | × | (추천) ESP32용 스크루 터미널 확장 보드 | 쿠팡 | 아마존 | |
1 | × | (추천) ESP32용 전원 분배기 | 쿠팡 | 아마존 |
HC-SR501 모션 센서 소개

HC-SR501 PIR 센서는 사람이나 동물의 움직임을 감지할 수 있는 모션 감지기입니다. 일반적으로 다음과 같은 다양한 응용 분야에서 사용됩니다:
- 자동 조명: 움직임에 반응하여 조명을 켜고 끕니다.
- 문 제어: 문을 자동으로 열고 닫습니다.
- *에스컬레이터 제어: 에스컬레이터를 작동하거나 정지시킵니다.
- 보안 시스템: 침입자를 탐지합니다.
핀 배치
HC-SR501 모션 센서에는 세 개의 핀이 포함되어 있습니다.
- GND 핀: 접지(0V)에 연결합니다.
- VCC 핀: 전원(5V)에 연결합니다.
- OUTPUT 핀: 움직임이 감지되지 않으면 LOW 신호를, 움직임이 감지되면 HIGH 신호를 출력합니다. 이 핀을 ESP32의 입력 핀에 연결하세요.
HC-SR501 센서에는 설정을 조정할 수 있는 점퍼 하나와 포텐셔미터 두 개가 있습니다. 자세한 내용은 모션 센서의 고급 활용법을 참고하세요.

작동 방식
HC-SR501 센서는 적외선 복사의 변화를 감지하여 움직임을 탐지합니다. 센서가 물체를 감지하기 위해서는 두 가지 조건이 충족되어야 합니다:
- 물체는 움직이고 있어야 합니다.
- 물체는 적외선을 방출해야 합니다.
따라서:
- 움직이지만 적외선을 방출하지 않는 물체(예: 일부 장난감)는 감지되지 않습니다.
- 적외선을 방출하지만 움직이지 않는 물체(예: 정지한 사람)는 감지되지 않습니다.
인간과 동물은 적외선을 방출하기 때문에 센서는 이들의 움직임을 감지할 수 있습니다.
출력 핀 동작:
- 움직임 없음: 센서의 감지 범위 내에 사람이나 동물이 없을 때, OUTPUT 핀은 LOW 상태를 유지합니다.
- 움직임 감지: 사람이거나 동물이 감지 범위에 들어오면, OUTPUT 핀이 LOW에서 HIGH로 전환됩니다.
- 움직임 종료: 사람이거나 동물이 감지 범위를 벗어나면, OUTPUT 핀이 HIGH에서 LOW로 돌아갑니다.
영상은 모션 센서의 일반적인 작동 방식을 보여줍니다. 실제 상황에서는 고급 사용 섹션에 설명된 것처럼 설정에 따라 작동 방식이 약간 달라질 수 있습니다.
ESP32 - HC-SR501 모션 센서
ESP32에서 핀을 디지털 입력으로 설정하면, 연결된 객체가 LOW 상태인지 HIGH 상태인지 감지할 수 있습니다.
ESP32의 핀을 HC-SR501 센서의 OUTPUT 핀에 연결하세요. 그리고 ESP32를 프로그래밍하여 OUTPUT 핀의 값을 모니터링하며 움직임을 감지하세요.
선연결
- USB 케이블로 전원 공급되는 브레드보드를 사용하여 ESP32와 모션 센서를 연결하는 방법

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
- ESP32와 모션 센서를 브레드보드를 사용하여 연결하는 방법 (Vin 핀을 통한 전원 공급)

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
- USB 케이블로 전원 공급되는 스크류 터미널 블록 브레이크아웃 보드를 사용하여 ESP32와 모션 센서를 연결하는 방법

- Vin 핀을 통해 전원 공급되는 스크류 단자 브레이크아웃 보드를 사용하여 ESP32와 모션 센서를 연결하는 방법

초기 설정
Time Delay Adjuster | Screw it in anti-clockwise direction fully. |
Detection Range Adjuster | Screw it in clockwise direction fully. |
Repeat Trigger Selector | Put jumper as shown on the image. |

모션 센서를 위한 프로그래밍 방법
- ESP32 핀을 디지털 입력으로 설정합니다.
- 센서의 OUTPUT 핀 상태를 확인하세요.
ESP32 마이크로파이썬 코드
자세한 사용 방법
ESP32에서 Thonny IDE를 사용하여 MicroPython 코드를 설정하고 실행하는 방법에 대한 지침은 다음과 같습니다:
- 컴퓨터에 Thonny IDE가 설치되어 있는지 확인하십시오.
- ESP32 보드에 MicroPython 펌웨어가 로드되어 있는지 확인하십시오.
- ESP32와 MicroPython을 처음 사용하는 경우, 단계별 지침이 포함된 ESP32 마이크로파이썬 - 시작하기 가이드를 확인하십시오.
- 다이어그램에 표시된 대로 ESP32 보드를 HC-SR501 모션 센서에 연결하십시오.
- USB 케이블을 사용하여 ESP32 보드를 컴퓨터에 연결하십시오.
- 컴퓨터에서 Thonny IDE를 실행하십시오.
- Thonny IDE에서 "도구 > 옵션"으로 이동하십시오.
- Interpreter 탭에서 드롭다운 메뉴에서 MicroPython (ESP32)를 선택하십시오.
- 정확한 포트가 선택되어 있는지 확인하십시오. Thonny IDE가 일반적으로 자동으로 감지하지만, 수동으로 선택해야 할 수도 있습니다 (예: Windows에서는 COM12, Linux에서는 /dev/ttyACM0).
- 제공된 MicroPython 코드를 복사하여 Thonny의 에디터에 붙여넣으십시오.
- 다음을 통해 ESP32에 코드를 저장하십시오:
- ○ "저장" 버튼을 클릭하거나 Ctrl+S를 누릅니다.
- ○ 저장 대화 상자에서 "MicroPython device"를 선택합니다.
- ○ 파일 이름을 main.py로 지정합니다.
- 녹색 "실행" 버튼을 클릭하거나 F5를 눌러 스크립트를 실행하십시오.
- 센서 앞에서 손을 흔드십시오.
- Thonny IDE 하단의 Shell에서 메시지를 확인하여 출력 결과를 확인하십시오.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.