Processor

【라즈베리파이】 wiringPi Python : 온습도 센서-임계값을 넘으면 경고

작성자 임베디드코리아 작성일26-02-20 00:41 조회135회 댓글0건
◆ 온도가 임계값을 넘으면 경고를 출력

--->>> 예제 :  dht11_control.py  <<<----------------------------------
import adafruit_dht          # DHT11 라이브러리
import board                  # GPIO 핀 이름 모듈
from gpiozero import LED      # LED 제어를 위한 gpiozero
from time import sleep        # 대기 함수

# 장치 초기화
dht = adafruit_dht.DHT11(board.D4)    # DHT11 센서 (GPIO 4)
warning_led = LED(27)                  # 경고 LED (GPIO 27)

TEMP_THRESHOLD = 28    # 경고 온도 임계값 (°C)

def read_dht11():
    """DHT11 값을 읽어 (온도, 습도) 반환합니다."""
    for _ in range(5):
        try:
            temp = dht.temperature
            hum = dht.humidity
            if temp is not None and hum is not None:
                return temp, hum
        except RuntimeError:
            pass
        sleep(1)
    return None, None

print(f"온도 모니터링 시작 (경고 임계값: {TEMP_THRESHOLD}°C)")

try:
    while True:
        temp, hum = read_dht11()

        if temp is not None:
            print(f"온도: {temp}°C  |  습도: {hum}%", end="")

            if temp >= TEMP_THRESHOLD:
                warning_led.on()    # 임계값 이상이면 경고 LED 켜기
                print(f"  [경고] 온도 높음!")
            else:
                warning_led.off()    # 정상이면 LED 끄기
                print("  [정상]")
        else:
            print("센서 읽기 실패")

        sleep(3)    # 3초 간격으로 측정

except KeyboardInterrupt:
    print("\n종료합니다.")
    warning_led.off()    # 종료 시 LED 끄기
finally:
    dht.exit()    # 센서 자원 해제