[실습] 조도 센서를 이용한 조도 측정
필기자
2025-04-02 10:09
485
0
본문
조도 센서를 이용한 조도 측정
목 적
- 라즈베리파이에 조도 센서 사용법을 이해한다.
1. 조도 센서 모듈 설치
2. 조도 디지털 모드 센서 모듈 구동
1. 조도 센서(SSBH-011) 모듈 설치
- 조도 센서
- 조도 센서는 빛의 강도를 측정할 수 있는 센서
- 아날로그 및 디지털 출력을 제공하여 라즈베리파이와 같은 마이크로컨트롤러와 쉽게 통합할 수 있음.
- 환경 모니터링, 스마트 홈 시스템, 자동화 시스템 등 다양한 분야에서 사용됨.
- 기본 사양
- 전원 공급: 3.3V ~ 5.5V DC
- 출력 방식: 아날로그 출력(AO), 디지털 출력(DO)
- 감도 조절: 내장된 가변 저항을 통해 감도 조절 가능
- 빛의 강도 측정 범위: 보통 0 ~ 2000 루멘 (lm) (센서에 따라 다를 수 있음)
- 아날로그(AO) 출력
- 빛의 강도에 따라 연속적으로 변하는 전압 신호를 출력함.
- 라즈베리파이에는 아날로그 입력 불가능.
- MCP3208 모듈 등의 아날로그-디지털 변환기(ADC)를 활용 함.
- 디지털(DO) 출력
- 디지털 출력(DO)은 센서가 감지한 특정 조건에 따라 디지털 신호(HIGH 또는 LOW)를 출력하는 방식
- 조도가 설정된 임계값을 초과할 때 LOW 신호, 반대는 HIGH 신호를 출력함.
- 어두워졌을 때 자동으로 동작하는 장치(예: 가로등, 야간 조명)에 특히 유용.
- 어두워지면 HIGH 신호가 바로 릴레이나 다른 제어 장치를 활성화시킬 수 있음.
- 센서 모듈에 있는 파란색 가변 저항(트리머)을 사용하여 임계값을 설정할 수 있음.
- 시계 방향: 임계값을 높임 (더 높은 조도에서 LOW 출력)
- 반시계 방향: 임계값을 낮춤 (더 낮은 조도에서 LOW 출력)
- 디지털(DO) 출력 GPIO 연결
- GND : Ground 접지(핀 14)
- VCC : 5V Power(핀 2)
- DO : GPIO 17(핀 11)
- AO : 사용하지 않음


2. 조도 디지털 모드 센서 모듈 구동
- 라즈베리파이 가상환경에서 파이썬 코딩
- VSCode에서 light_sensor_digital.py 파일 생성
- 조도 센서에서 빛의 강도 데이터를 읽어 주기적으로 출력하는 코드 실습

import RPi.GPIO as GPIO
import time
# GPIO 핀 번호 설정 (조도 센서의 DO 핀 연결)
SENSOR_PIN = 17 # GPIO 17 (핀 번호 11)
# GPIO 설정
GPIO.setmode(GPIO.BCM) # GPIO 번호 모드를 BCM 모드로 설정
GPIO.setup(SENSOR_PIN, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) # 내부 풀다운 저항 사용
print('조도 센서 값 읽기 시작...')
try:
while True:
sensor_value = GPIO.input(SENSOR_PIN)
if sensor_value == GPIO.HIGH:
print('조도가 낮습니다.')
else:
print('조도가 높습니다.')
time.sleep(1)
'''
센서는 현재 조도 증가 → LOW, 조도 감소 → HIGH 출력
조도가 없을 때, 즉 어두워 졌을 때 감지를 목표
'''
except KeyboardInterrupt:
print("프로그램 종료")
finally:
GPIO.cleanup()
- GPIO.setmode(GPIO.BCM)
- 라즈베리파이의 GPIO 핀 번호 모드를 BCM(Broadcom SOC channel) 모드로 설정함.
- BCM 모드는 핀 번호가 아닌 GPIO 번호를 사용함.
- GPIO.setup(SENSOR_PIN, GPIO.IN)
- SENSOR_PIN(여기서는 GPIO 17)을 입력 모드로 설정함.
- 이는 조도 센서의 디지털 출력(DO) 핀이 이 핀에 연결되어 있음을 의미함.
- GPIO.input(SENSOR_PIN)
- 지정된 GPIO 핀의 현재 값을 읽음.
- 값이 HIGH(1)이면 조도가 임계값을 미만인 것이고, LOW(0)이면 임계값 이상임을 나타냄.
- GPIO.cleanup()
- GPIO 설정을 정리함.
- 이를 통해 GPIO 핀이 다른 프로그램에서 재사용될 때 문제가 발생하지 않도록 함

댓글목록0