from machine import Pin
import dht
import time
# Setup
dht_sensor = dht.DHT22(Pin(15))
button = Pin(13, Pin.IN, Pin.PULL_DOWN)
led = Pin(14, Pin.OUT)
sensor_active = False
press_count = 0
last_press_time = 0
debounce_delay = 0.2
double_press_delay = 0.5
# Functions
def get_temperature():
dht_sensor.measure()
return dht_sensor.temperature()
def get_humidity():
dht_sensor.measure()
return dht_sensor.humidity()
def blink_led(times, delay=0.5):
for _ in range(times):
led.on()
time.sleep(delay)
led.off()
time.sleep(delay)
def toggle_sensor(pin):
global sensor_active, press_count, last_press_time
current_time = time.ticks_ms() / 1000
if (current_time - last_press_time) < debounce_delay:
return
if (current_time - last_press_time) < double_press_delay:
press_count += 1
else:
press_count = 1
last_press_time = current_time
if press_count == 1:
sensor_active = True
print("DHT22 Activated,LED ON")
led.on()
elif press_count == 2:
sensor_active = False
print("DHT22 dectivated, LED blink")
blink_led(3)
press_count = 0
button.irq(trigger=Pin.IRQ_FALLING, handler=toggle_sensor)
# Main loop
while True:
if sensor_active:
try:
temperature = get_temperature()
humidity = get_humidity()
print(f"Temperature: {temperature}°C, Humidity: {humidity}%")
except Exception as error:
print("Sensor Error:", error)
time.sleep(2)
else:
led.off()
time.sleep(0.1)