Back-end/Raspberry Pi)

라즈베리파이 Python 프로젝트: 초음파 센서 + LED - 접근하면 Right On!💡

DEBTOLEE 2019. 9. 5. 21:08

라즈베리파이와 파이썬을 활용한 실습 프로젝트입니다. 초음파 센서로 물체가 일정 거리 안으로 접근하면 LED가 자동으로 켜지는 간단한 IoT 예제를 만들어볼게요.


📦 사용 부품

  • 라즈베리파이 (Raspberry Pi)
  • CNDI 확장보드
  • 초음파 센서 (HC-SR04)
  • LED
  • 점퍼 와이어

🛠 GPIO 라이브러리 설치

  1. 아래 사이트에서 파일 다운로드: 👉 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번
  • TRIG 핀: GPIO 24번
  • ECHO 핀: GPIO 23번

▶️ 데모 영상


🐍 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
        dist2 = round(period * 17241, 2)

        if dist2 <= 20:
            print('🔴 접근 감지됨! LED ON')
            gpio.output(LED, gpio.HIGH)
            time.sleep(1)
            gpio.output(LED, gpio.LOW)
            time.sleep(1)
        print('측정 거리:', dist2, 'cm')

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

✅ 마무리

이 프로젝트는 초음파 센서를 이용한 거리 측정과 LED 출력을 통해, 라즈베리파이 GPIO 활용을 쉽게 익힐 수 있는 실습입니다. 더 발전시키면 경보 시스템, 자동문 등에 활용할 수 있어요! 😄