import machine
import dht
import utime
import network
import urequests
# --- Configurações de Rede ---
SSID = "Wokwi-GUEST" # Padrão do simulador Wokwi
PASSWORD = ""
# --- Configurações ThingSpeak ---
API_KEY = "BNT8L33Y05QQ4ZLQ"
URL = "http://api.thingspeak.com/update"
# --- Configuração dos Pinos ---
sensor = dht.DHT22(machine.Pin(15))
led_vm = machine.Pin(13, machine.Pin.OUT)
led_az = machine.Pin(12, machine.Pin.OUT)
led_vd = machine.Pin(11, machine.Pin.OUT)
# Função para conectar ao Wi-Fi
def conecta_wifi():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print('Conectando ao Wi-Fi...')
wlan.connect(SSID, PASSWORD)
while not wlan.isconnected():
pass
print('Conectado! IP:', wlan.ifconfig()[0])
conecta_wifi()
while True:
try:
utime.sleep(15) # O ThingSpeak (versão free) aceita dados a cada 15s
sensor.measure()
temp = sensor.temperature()
umid = sensor.humidity()
print("Temp: {:.1f}°C | Umid: {:.1f}%".format(temp, umid))
# --- Lógica dos LEDs (Mantida) ---
if temp > 25:
led_vm.value(1); led_vd.value(0); led_az.value(0)
elif 20 <= temp <= 25:
led_vm.value(0); led_vd.value(1); led_az.value(0)
else:
led_vm.value(0); led_vd.value(0); led_az.value(1)
# --- Envio para ThingSpeak ---
print("Enviando dados para o ThingSpeak...")
# Montamos a string de requisição: ?api_key=XXX&field1=TEMP&field2=UMID
request_url = "{}?api_key={}&field1={}&field2={}".format(URL, API_KEY, temp, umid)
resposta = urequests.get(request_url)
if resposta.status_code == 200:
print("Dados enviados com sucesso!")
else:
print("Erro no envio. Status:", resposta.status_code)
resposta.close()
except Exception as e:
print("Erro durante a execução:", e)
Loading
pi-pico-w
pi-pico-w