Raspberry Pi + Python: 초음파 센서로 LED 제어하기 🚨

이번 프로젝트에서는 라즈베리파이와 파이썬을 이용해 초음파 센서로 거리를 측정하고, 특정 거리 이하로 접근하면 LED를 자동으로 켜는 시스템을 구현합니다. IoT 기초 실습으로 적합하며, 간단한 경보 장치로 응용할 수도 있어요.


🧰 준비물

  • Raspberry Pi 보드
  • CNDI 확장보드
  • 초음파 센서 (HC-SR04)
  • LED (적색 또는 녹색 추천)
  • 점퍼 케이블

📥 RPi.GPIO 라이브러리 설치 방법

  1. 아래 링크에서 GPIO 모듈 다운로드: 🔗 RPi.GPIO 다운로드 페이지
  2. 터미널 명령어 순서대로 실행:
cd /home/pi/Downloads
tar zxvf RPi.GPIO-0.7.0.tar.gz
cd RPi.GPIO-0.7.0
sudo apt-get install python-dev
sudo python setup.py install

⚡ 하드웨어 연결 구성도

  • LED 제어 핀: GPIO 4
  • Trigger 핀: GPIO 24
  • Echo 핀: GPIO 23

🎬 동작 영상 (YouTube)


💻 Python 제어 코드

import RPi.GPIO as gpio
import time
import sys
import warnings
warnings.filterwarnings('ignore')

LED = 4
TRIGER = 24
ECHO = 23

gpio.setmode(gpio.BCM)
gpio.setup(TRIGER, gpio.OUT)
gpio.setup(ECHO, gpio.IN)
gpio.setup(LED, gpio.OUT)

try:
    while True:
        gpio.output(TRIGER, gpio.LOW)
        time.sleep(0.1)
        gpio.output(TRIGER, gpio.HIGH)
        time.sleep(0.00002)
        gpio.output(TRIGER, gpio.LOW)

        while gpio.input(ECHO) == gpio.LOW:
            startTime = time.time()

        while gpio.input(ECHO) == gpio.HIGH:
            endTime = time.time()

        period = endTime - startTime
        dist_cm = round(period * 17241, 2)

        if dist_cm <= 20:
            print('👣 가까이 접근! → LED ON')
            gpio.output(LED, gpio.HIGH)
            time.sleep(1)
            gpio.output(LED, gpio.LOW)
            time.sleep(1)

        print(f"현재 거리: {dist_cm} cm")

except KeyboardInterrupt:
    print("프로그램을 종료합니다.")
    gpio.cleanup()
    sys.exit()

📝 마무리 정리

이 실습은 초음파 거리 측정 원리를 이해하고, 라즈베리파이 GPIO 제어 방법을 익히는 데 효과적입니다. 향후에는 부저나 경고음 추가, 이메일 전송 등 다양한 확장도 가능하니 창의적으로 발전시켜 보세요! ✨

Leave a Comment