from machine import Pin
import network
import urequests
import time
import sys
from dht import DHT22
# ------------------ DHT SENSOR SETUP ------------------
dht22 = DHT22(Pin(12))
def readDht():
dht22.measure()
return dht22.temperature(), dht22.humidity()
# ------------------ WIFI CREDENTIALS ------------------
WIFI_SSID = "Wokwi-GUEST"
WIFI_PASSWORD = ""
# ------------------ WIFI CONNECTION ------------------
def connect_wifi():
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect(WIFI_SSID, WIFI_PASSWORD)
print("Connecting to WiFi...")
timeout = 10
while not wifi.isconnected() and timeout > 0:
print("Waiting...", timeout)
timeout -= 1
time.sleep(1)
if not wifi.isconnected():
print("WiFi connection failed")
sys.exit()
print("Connected!")
print("IP:", wifi.ifconfig()[0])
connect_wifi()
# ------------------ THINGSPEAK CONFIG ------------------
THINGSPEAK_WRITE_API_KEY = "SNIPI34MTSGD6OQF"
THINGSPEAK_URL = "http://api.thingspeak.com/update"
# ------------------ MAIN LOOP ------------------
while True:
try:
temp, hum = readDht()
print("Temperature:", temp)
print("Humidity:", hum)
# Build URL with query params
url = "{}?api_key={}&field1={}&field2={}".format(
THINGSPEAK_URL,
THINGSPEAK_WRITE_API_KEY,
temp,
hum
)
response = urequests.get(url)
response.close()
print("Data sent to ThingSpeak")
print("---------------------------")
except Exception as e:
print("Error:", e)
time.sleep(15) # ThingSpeak minimum interval = 15 sec