import machine
import time
from machine import Pin, PWM
import dht
# 設定紅色LED的引腳
led_pin = 2 # 根據你的ESP32板上的具體配置修改
led = machine.Pin(led_pin, machine.Pin.OUT)
# 設定蜂鳴器的引腳
buzzer_pin = 5 # 根據你的ESP32板上的具體配置修改
buzzer = PWM(Pin(buzzer_pin))
# 設定溫溼度感應器的引腳
dht_pin = 4 # 根據你的ESP32板上的具體配置修改
dht_sensor = dht.DHT22(Pin(dht_pin))
# 函數:閃爍紅色LED,同時觸發蜂鳴器
def flash_led_and_buzzer():
for _ in range(5):
# 亮2秒
led.on()
buzzer.freq(1000) # 控制PWM的頻率以控制蜂鳴器的音調
time.sleep(2)
# 暗2秒
led.off()
buzzer.deinit() # 關閉蜂鳴器
time.sleep(2)
# 函數:擷取溫溼度數據
def read_temperature_and_humidity():
dht_sensor.measure()
temperature = dht_sensor.temperature()
humidity = dht_sensor.humidity()
return temperature, humidity
# 主程式迴圈
while True:
# 讀取溫溼度數據
temperature, humidity = read_temperature_and_humidity()
# 檢查溫度和濕度是否超過閾值
if temperature > 30 or humidity > 90:
# 如果條件滿足,閃爍紅色LED,同時觸發蜂鳴器
flash_led_and_buzzer()
# 等待一段時間再進行下一次檢查
time.sleep(10)