from machine import Pin
from dht import DHT11
import time
# GPIO 설정
button_pin = Pin(4, Pin.IN, Pin.PULL_UP) # Pushbutton
led1_pin = Pin(10, Pin.OUT) # LED1
led2_pin = Pin(13, Pin.OUT) # LED2
dht_pin = Pin(18) # DHT-11 또는 DHT-22
# DHT 센서 설정
sensor = DHT11(dht_pin)
# LED 깜박임 주기 설정
def set_led_blink_frequency(temperature):
if temperature < 20:
return 1 # 주기 1초
elif 20 <= temperature < 30:
return 0.5 # 주기 0.5초
else:
return 0.25 # 주기 0.25초
# LED 깜박임 함수
def blink_led(pin, frequency):
pin.value(0)
time.sleep(frequency)
pin.value(1)
time.sleep(frequency)
try:
while True:
if not button_pin.value(): # Pushbutton 눌림
try:
sensor.measure()
temperature = sensor.temperature()
humidity = sensor.humidity()
print(f'Temperature: {temperature}°C, Humidity: {humidity}%')
led1_frequency = set_led_blink_frequency(temperature)
led2_frequency = set_led_blink_frequency(temperature) * 2 # led2_pin의 주파수를 led1_pin의 주파수의 2배로 설정
for _ in range(3): # 3번 반복
blink_led(led1_pin, led1_frequency)
blink_led(led2_pin, led2_frequency)
while not button_pin.value(): # 기다림, 버튼이 떼질 때까지
pass
except Exception as e:
print(f'Error: {e}')
except KeyboardInterrupt:
pass