라즈베리 파이 GPIO 마스터하기: B+/모델 2에서 PIR 모션 센서 인터페이싱
이 단계별 가이드에서 라즈베리 파이 B+/모델 2에 수동 적외선(PIR) 모션 센서를 연결하고 GPIO 핀을 프로그래밍해 움직임을 감지하고 액션을 트리거하는 방법을 배웁니다. 홈 오토메이션 시스템, 보안 알림, 단순 로봇을 만들든 GPIO 마스터는 필수입니다.
준비물
- 라즈베리 파이 B+, B, 또는 모델 2 (마이크로SD 카드, 전원 공급기, 키보드, 마우스, 디스플레이 포함)
- LED(아무 색상)와 220Ω 저항
- PIR 모션 센서(5V 출력)
- 브레드보드와 점퍼 와이어(수-수, 암-수)
파이에서 GPIO 작동 방식
파이 GPIO 핀은 RPi.GPIO 같은 파이썬 라이브러리로 접근 가능합니다. 각 핀은 물리적 핀 번호(BOARD) 또는 브로드컴 칩 핀 번호(BCM)로 번호 매겨집니다. 이 튜토리얼에서는 명확성을 위해 BOARD 번호 방식을 사용합니다.
PIR 센서에 대해
PIR 센서는 따뜻한 물체가 방출하는 적외선 복사를 감지합니다. 프레넬 렌즈, IR 검출기, 제어 회로로 구성됩니다. 적외선 레벨 변화를 감지하면 최대 1분간 5V 로직 HIGH를 출력합니다. 일반적인 감지 범위는 6~7m입니다.
1단계: GPIO 출력으로 LED 깜빡이기
먼저 출력 핀 제어 연습으로 LED를 깜빡입니다. LED 애노드를 220Ω 저항으로 핀 3에 연결, 캐소드를 접지 핀에 연결.
import RPi.GPIO as GPIO
import time
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(3, GPIO.OUT) # 핀 3을 출력으로
while True:
GPIO.output(3, GPIO.HIGH)
time.sleep(1)
GPIO.output(3, GPIO.LOW)
time.sleep(1)
이를 ledblink.py로 저장하고 sudo python3 ledblink.py로 실행하세요.
2단계: PIR 센서 읽고 반응하기
PIR 센서 배선: VCC를 5V, GND를 접지, OUT을 핀 7(GPIO 4)에 연결. 이제 움직임 감지 시 메시지 출력하는 스크립트 작성:
import RPi.GPIO as GPIO
import time
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.IN) # PIR 출력을 입력으로
print('준비 – 움직임 대기 중…')
try:
while True:
if GPIO.input(7):
print('침입자 감지!')
# 여기에 커스텀 액션 추가 (예: LED 점등, 알림 전송)
time.sleep(0.5)
except KeyboardInterrupt:
print('종료…')
finally:
GPIO.cleanup()
sudo python3 pir_detect.py로 실행하고 콘솔에서 센서가 움직임을 보고하는지 확인하세요.
다음 단계
여기서 프로젝트 확장 가능: 움직임 감지 시 LED 깜빡이기, 타임스탬프 파일 로깅, MQTT로 알림 전송. 초보자는 라즈베리 파이와 아두이노 무료 eBook 다운로드로 하드웨어 스킬을 더 깊게 다지길 권장합니다.
참고 자료