라즈베리 파이 피코 모션 센서
이 가이드는 Raspberry Pi Pico와 함께 HC-SR501 모션 센서를 사용하여 사람을 감지하는 방법을 보여줍니다. 다음 세부 사항을 다룰 것입니다:
- HC-SR501 모션 센서의 작동 원리
- HC-SR501 모션 센서를 Raspberry Pi Pico와 연결하기
- HC-SR501 모션 센서에서 데이터를 수집하기 위한 Raspberry Pi Pico 프로그래밍
- Raspberry Pi Pico와 모션 센서를 사용한 인체 감지

준비물
1 | × | 라즈베리 파이 피코 W | 아마존 | |
1 | × | 라즈베리 파이 피코 (또는) | 아마존 | |
1 | × | 마이크로 USB 케이블 | 아마존 | |
1 | × | HC-SR501 모션 센서 | 쿠팡 | 아마존 | |
1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
1 | × | (추천) 라즈베리 파이 피코용 스크루 터미널 확장 보드 | 아마존 |
HC-SR501 모션 센서에 대하여

HC-SR501 PIR 센서는 사람 또는 동물의 움직임을 감지할 수 있는 모션 감지기입니다. 이는 다음을 포함한 다양한 응용 분야에서 사용됩니다:
- 자동 조명: 움직임에 따라 조명을 켜고 끕니다.
- 문 제어: 문을 자동으로 열고 닫습니다.
- 에스컬레이터 제어: 에스컬레이터를 활성화하거나 비활성화합니다.
- 보안 시스템: 침입자를 탐지합니다.
핀아웃
HC-SR501 모션 센서에는 세 개의 핀이 있습니다.
- GND 핀: GND(0V)에 연결합니다.
- VCC 핀: VCC(5V)에 연결합니다.
- OUTPUT 핀: 움직임이 감지되지 않으면 LOW 신호를, 감지되면 HIGH 신호를 출력합니다. 이 핀을 ESP32의 입력 핀에 연결합니다.
HC-SR501은 하나의 점퍼와 두 개의 가변저항을 갖추고 있어 설정을 조정할 수 있습니다. 자세한 내용은 모션 센서의 고급 사용법을 참조하세요.

작동 방식
HC-SR501 센서는 적외선 방사량의 변화를 감지하여 움직임을 감지합니다. 센서가 작동되기 위해서는 물체가 두 가지 조건을 충족해야 합니다:
- 움직이고 있어야 한다.
- 적외선을 방출해야 한다.
그 결과:
- 적외선을 방출하지 않는 움직이는 물체(예: 로봇 장난감)는 감지되지 않습니다.
- 적외선을 방출하지만 정지해 있는 물체(예: 가만히 서 있는 사람)는 감지되지 않습니다.
인간과 동물은 자연적으로 적외선을 방출하여 센서에 의해 감지됩니다.
출력 핀 동작:
- 움직임 없음: 센서 감지 범위 내에 사람이거나 동물이 없으면 OUTPUT 핀이 LOW를 유지합니다.
- 움직임 감지됨: 사람이거나 동물이 감지 범위에 들어오면 OUTPUT 핀이 LOW에서 HIGH로 전환됩니다.
- 움직임 종료됨: 감지 범위를 벗어나면 OUTPUT 핀이 HIGH에서 다시 LOW로 전환됩니다.
비디오는 모션 센서의 기본 기능을 설명합니다. 실제 상황에서는 설정에 따라 작동 방식이 약간 달라질 수 있으며, 고급 사용법 섹션에 자세히 설명되어 있습니다.
Raspberry Pi Pico - HC-SR501 모션 센서
라즈베리 파이 피코의 핀을 디지털 입력으로 설정하면, 연결된 객체가 LOW 상태인지 HIGH 상태인지를 확인할 수 있습니다.
라즈베리 파이 피코의 핀을 HC-SR501 센서의 출력 핀에 연결합니다. 다음으로, 라즈베리 파이 피코의 코드를 사용하여 출력 핀의 값을 확인하고 움직임을 감지합니다.
선연결

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
초기 설정
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. |

모션 센서를 위한 프로그래밍 방법
- Raspberry Pi Pico 핀을 디지털 입력 모드로 설정합니다.
- 센서의 OUTPUT 핀 상태를 읽습니다.
Raspberry Pi Pico 코드
자세한 사용 방법
아래의 지침을 단계별로 따라주세요:
- 컴퓨터에 Thonny IDE가 설치되어 있는지 확인하세요.
- Raspberry Pi Pico에 MicroPython 펌웨어가 설치되어 있는지 확인하세요.
- Raspberry Pi Pico를 처음 사용한다면, 자세한 설명은 라즈베리 파이 피코 - 시작하기 튜토리얼을 참조하세요.
- 제공된 다이어그램에 따라 Raspberry Pi Pico를 HC-SR501 모션 센서에 연결하세요.
- Raspberry Pi Pico를 USB 케이블을 사용하여 컴퓨터에 연결하세요.
- 컴퓨터에서 Thonny IDE를 실행하세요.
- Thonny IDE에서 도구 옵션으로 이동하여 MicroPython (Raspberry Pi Pico) 인터프리터를 선택하세요.
- 인터프리터 탭에서 드롭다운 메뉴에서 MicroPython (Raspberry Pi Pico)를 선택하세요.
- 올바른 포트가 선택되었는지 확인하세요. Thonny IDE는 포트를 자동으로 감지하지만, 수동으로 선택해야 할 수도 있습니다 (예: Windows에서는 COM3, Linux에서는 /dev/ttyACM0).
- 위 코드를 복사하여 Thonny IDE의 에디터에 붙여넣으세요.
- Raspberry Pi Pico에 스크립트를 저장하려면:
- 저장 버튼을 클릭하거나 Ctrl+S 키를 사용하세요.
- 저장 대화 상자에서 "이 컴퓨터"와 "Raspberry Pi Pico" 두 섹션이 표시됩니다. Raspberry Pi Pico를 선택하세요.
- 파일 이름을 main.py로 저장하세요.
- 초록색 실행 버튼을 클릭하거나 F5 키를 눌러 스크립트를 실행하세요. 스크립트가 실행됩니다.
- 센서 앞에서 손을 움직이세요.
- Thonny 하단의 셸에 표시되는 메시지를 확인하세요.
Raspberry Pi Pico의 루트 디렉터리에 스크립트의 이름을 main.py로 지정하고 저장하면 Pico의 전원이 켜지거나 리셋될 때마다 자동으로 실행됩니다. 이는 전원 공급 직후 즉시 실행되어야 하는 독립형 애플리케이션에 유용합니다. 스크립트의 이름을 main.py가 아닌 다른 이름으로 지정하면 Thonnys's Shell에서 수동으로 실행해야 합니다.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.
고급 사용법
앞서 설명한 바와 같이, 하나의 점퍼와 두 개의 노브를 사용하여 센서 설정을 변경할 수 있습니다.
감지 범위 조정기
이 포텐셔미터는 감지 범위를 설정합니다 (약 3미터부터 7미터까지).
- 완전히 시계 방향으로 돌리면, 감지 거리가 약 3미터입니다.
- 완전히 반시계 방향으로 돌리면, 감지 거리가 약 7미터입니다.

포텐셔미터의 설정을 조정하여 3미터부터 7미터까지의 거리를 얻을 수 있습니다.
시간 지연 조절기
이 노브는 딜레이 시간을 변경합니다.
- 시계 방향으로 완전히 회전시키면, 지연 시간은 약 5분 정도 됩니다.
- 반시계 방향으로 완전히 회전시키면, 지연 시간은 약 3초 정도 됩니다.
다음으로, 시간 지연이 무엇인지와 그것이 Repeat Trigger와 어떻게 연결되어 있는지 설명하겠습니다.

반복 트리거 선택기
이 점퍼는 단일 트리거 모드 또는 반복 트리거 모드를 선택할 수 있게 해줍니다.

우리는 시간 지연 설정(시간 지연 조정기를 사용하여 변경할 수 있음)을 time_delay라고 부를 것입니다. 센서의 감지 영역에서 오랫동안 움직이는 자신의 모습을 상상해 보세요. 이를 motion_time이라 부를 것이며, 이는 time_delay보다 깁니다.
- 단일 트리거 모드에서 OUTPUT 핀이 여러 번 LOW에서 HIGH로 변경됩니다. 이는 "time_delay"라고 불리는 기간 동안 HIGH 상태를 유지하고, 일정한 3초 동안 LOW 상태를 유지합니다.

- OUTPUT 핀은 모션 시간과 추가 지연 시간 동안 HIGH 상태를 유지합니다.

테스트
다양한 트리거 설정을 시도해 봅시다. 먼저, 시간 지연 조정기를 왼쪽 끝까지 돌려 지연 시간을 3초로 설정하세요.
- 단일 트리거 모드:
• 단일 트리거 모드를 위한 점퍼 설정.
• 10초 동안 센서 앞에서 손을 움직이세요.
• 손을 센서 영역에서 떼세요.
• 3초 후 시리얼 모니터를 확인하여 결과를 보세요.
- 반복 가능한 트리거 모드:
- 점퍼를 꽂아 반복 가능한 트리거 모드를 시작하세요.
- 10초 동안 센서 앞에서 손을 계속 움직이세요.
- 센서 앞에서 손을 떼세요.
- 3초 동안 기다린 후, 시리얼 모니터에서 출력을 확인하세요.
- 사람이 가까이 있음을 감지하면 장치나 기계는 일반적으로 켜집니다.
- 사람이 떠나면 즉시 꺼지지 않고, 잠시 지연 후에 꺼집니다.
단일 트리거 모드에서는 센서가 두세 번 켜집니다. 반복 트리거 모드에서는 단 한 번만 켜집니다.
※ 주의:
3초의 낮은 기간 동안 센서는 동작을 감지할 수 없습니다. 이는 센서가 활성 상태가 아님을 의미하지만, 일반적으로 문제를 일으키지는 않습니다.
반복 가능한 트리거 모드 사용을 권장합니다.
실제 사용에서: