import machine
import utime
import dht
import BlynkLib
# Blynk Auth Token
BLYNK_AUTH = 'yScpufXyEtt2AQXL4Xcb6tGR_Mu-p5Ci'
# Initialize Blynk
blynk = BlynkLib.Blynk(BLYNK_AUTH)
# Initialize DHT22 sensor
dht_pin = machine.Pin(2) # GPIO2 (GP2) for DHT22 data line
sensor = dht.DHT22(dht_pin)
# Blynk virtual pin assignments
TEMP_VPIN = 1
HUM_VPIN = 2
def read_sensor():
try:
sensor.measure()
temperature = sensor.temperature()
humidity = sensor.humidity()
return temperature, humidity
except OSError as e:
print('Failed to read sensor.')
return None, None
def send_data_to_blynk():
temperature, humidity = read_sensor()
if temperature is not None and humidity is not None:
print(f"Temperature: {temperature:.2f} C")
print(f"Humidity: {humidity:.2f} %")
blynk.virtual_write(TEMP_VPIN, temperature)
blynk.virtual_write(HUM_VPIN, humidity)
else:
print("Failed to read from DHT22 sensor.")
# Main loop
while True:
blynk.run() # Handle Blynk communication
send_data_to_blynk()
utime.sleep(2) # Send data every 2 seconds