HC-SR501 PIR 모션 센서를 라즈베리파이에 연결, 보정, 프로그래밍하는 방법
목차
- 1. HC-SR501 PIR 센서의 작동 원리
- 2. 회로도 및 배선
- 3. 모션 이벤트 읽기 파이썬 코드
- 4. 샘플 출력 및 다음 단계
모든 생물은 육안으로 보이지 않는 적외선 복사를 방출합니다. HC-SR501과 같은 수동 적외선(PIR) 센서는 움직이는 물체로 인한 미세한 온도 변화를 감지하여 디지털 출력을 트리거합니다. HC-SR501은 두 개의 압전 소자와 차동 회로를 사용하여 주변 온도 변화로 인한 오작동을 억제하므로 보안 및 자동화 프로젝트에 이상적입니다.
HC-SR501을 라즈베리파이와 연결하는 것은 간단합니다. 센서 출력이 3.3V TTL 레벨이라 라즈베리파이의 5V 레일에서 직접 전원 공급이 가능하기 때문입니다.
모듈에는 세 개의 핀이 있습니다:
- Vcc – 4.5V ~ 20V, 전원 입력
- OUTPUT – 0V(LOW) / 3.3V(HIGH)
- GND – 그라운드
HC-SR501 PIR 센서의 작동 원리

센서의 직사각형 개구부에는 양 끝에 두 개의 적외선 감지 소자가 배치되어 있습니다. 열을 방출하는 물체가 시야를 가로지르면 각 소자가 온도 변화를 감지하는 시점에 차이가 생깁니다. 이 시간 차이가 클수록 감도가 높아집니다. 프레넬 렌즈가 적외선을 소자에 집중시키고, 내부 필터가 비적외선 파장을 차단하여 정확도를 높입니다.
감도 및 지연 시간 조정
- 감지 지연 시간 (0.3초 ~ 600초): 포텐셔미터를 시계 방향으로 돌리면 지연 시간 증가, 반시계 방향이면 감소.
- 감지 거리 (3m ~ 7m): 포텐셔미터를 시계 방향으로 돌리면 거리 증가, 반시계 방향이면 감소.
회로도 및 배선

센서를 다음과 같이 연결하세요:
- Vcc → 핀 2 (5V)
- OUTPUT → 핀 26 (GPIO 19)
- GND → 핀 6 (그라운드)
BCM 번호 체계를 사용하는 경우 핀 번호를 다시 확인하세요. GPIO 19는 40핀 헤더의 핀 26에 해당합니다.
모션 이벤트 읽기 파이썬 코드
스크립트 실행 전 RPi.GPIO 라이브러리가 설치되어 있지 않다면 설치하세요:
sudo apt-get install python3-rpi.gpio
다음 내용으로 pir_motion.py 파일을 생성하세요:
#!/usr/bin/env python3
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD) # 물리적 핀 번호 사용
pir_pin = 26 # 핀 26 (GPIO 19)이 센서 OUTPUT에 연결됨
GPIO.setup(pir_pin, GPIO.IN)
print("센서 안정화 대기 중...")
time.sleep(2) # 센서 안정화 시간
print("모션 감지 시작...")
try:
while True:
if GPIO.input(pir_pin): # 센서 출력이 HIGH
print("모션 감지됨!")
time.sleep(2) # 디바운스 지연으로 다중 트리거 방지
time.sleep(0.1) # 짧은 루프 지연
except KeyboardInterrupt:
print("종료 중...")
finally:
GPIO.cleanup()
python3 pir_motion.py로 스크립트를 실행하세요. 콘솔에 센서가 움직임을 감지할 때마다 "모션 감지됨!"이 출력됩니다.
샘플 출력 및 다음 단계
배선과 코드 실행이 성공하면 터미널에 다음과 유사한 출력이 나타납니다:
센서 안정화 대기 중...
모션 감지 시작...
모션 감지됨!
모션 감지됨!
...
여기서 프로그램을 확장하여 알람 트리거, 카메라로 이미지 촬영, 파일이나 데이터베이스에 이벤트 로깅 등을 구현할 수 있습니다. HC-SR501은 다양한 자동화 및 보안 프로젝트에 신뢰할 수 있는 저비용 구성 요소입니다.
고급 PIR 센서 활용법, 보정 기술, 홈 오토메이션 플랫폼 통합에 대한 자세한 내용은 고급 PIR 활용 페이지를 참조하세요.