import machine
import dht
import time
import network
import urequests
# 1. Configurações
SSID = "Wokwi-GUEST"
PASSWORD = ""
# COLOQUE SUA CHAVE AQUI ENTRE AS ASPAS
API_KEY = "9J1XMOCJRMJP5ZQK"
# 2. Pinos (Ajuste conforme seu projeto no Wokwi)
led_vm = machine.Pin(9, machine.Pin.OUT)
led_vd = machine.Pin(8, machine.Pin.OUT)
led_az = machine.Pin(7, machine.Pin.OUT)
sensor = dht.DHT22(machine.Pin(15))
# 3. Conectar Wi-Fi
def conecta_wifi():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(SSID, PASSWORD)
print("Conectando ao Wi-Fi", end="")
while not wlan.isconnected():
print(".", end="")
time.sleep(0.5)
print("\nConectado! IP:", wlan.ifconfig()[0])
conecta_wifi()
while True:
try:
sensor.measure()
t = sensor.temperature()
h = sensor.humidity()
print("\n--- Leitura ---")
print("Temp: {:.1f}C | Umid: {:.1f}%".format(t, h))
# Regra de negócio dos LEDs
if t > 30:
led_vm.on(); led_vd.off(); led_az.off()
elif t >= 20:
led_vm.off(); led_vd.on(); led_az.off()
else:
led_vm.off(); led_vd.off(); led_az.on()
# Envio para o ThingSpeak
print("Enviando dados...")
# A URL precisa ser exatamente assim:
url = "http://api.thingspeak.com/update?api_key={}&field1={}&field2={}".format(API_KEY, t, h)
res = urequests.get(url)
if res.status_code == 200:
print("Sucesso! Resposta:", res.text)
else:
print("Erro no servidor. Status:", res.status_code)
res.close() # Importante fechar a conexão
except Exception as e:
print("Erro durante o loop:", e)
# O ThingSpeak GRATUITO exige 15 a 20 segundos de espera
print("Aguardando 20s para a próxima atualização...")
time.sleep(20)