from machine import Pin
import network
import time
import dht
import BlynkLib
BLYNK_TEMPLATE_ID = "TMPL2QVfkK29a"
BLYNK_TEMPLATE_NAME = "test"
BLYNK_AUTH_TOKEN = "Slo-2FD_i5Chd2U3HNjOvME4lI0DoRix"
led = Pin(2, Pin.OUT)
# DHT22 data pin on GPIO15
sensor = dht.DHT22(Pin(15))
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect("Wokwi-GUEST", "")
print("Connecting WiFi...")
while not wifi.isconnected():
time.sleep(0.1)
print("WiFi Connected!")
blynk = BlynkLib.Blynk(
BLYNK_AUTH_TOKEN,
tmpl_id=BLYNK_TEMPLATE_ID,
insecure=True
)
@blynk.on("connected")
def blynk_connected():
print("Blynk Connected!")
blynk.sync_virtual(0)
@blynk.on("V0")
def v0_write(value):
print("V0 =", value)
if int(value[0]) == 1:
led.on()
print("LED ON")
else:
led.off()
print("LED OFF")
last_sensor_time = 0
while True:
blynk.run()
now = time.ticks_ms()
# Send DHT22 values every 500 ms
if time.ticks_diff(now, last_sensor_time) > 250:
last_sensor_time = now
try:
sensor.measure()
temp = sensor.temperature()
hum = sensor.humidity()
print("Temperature:", temp, "C")
print("Humidity:", hum, "%")
blynk.virtual_write(1, temp) # V1 temperature
blynk.virtual_write(2, hum) # V2 humidity
except Exception as e:
print("DHT22 Error:", e)