import network
import urequests
from time import sleep
from machine import Pin
from dht import DHT22
sensor = DHT22(Pin(15))
led = Pin(19, Pin.OUT)
ssid = "Wokwi-GUEST"
password = ""
WRITE_API_KEY = "XO3WYDTPFLPOI4XB"
READ_API_KEY = "7COSOW3FJD53J6Z6"
CHANNEL_ID = "2952999"
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)
# Aguardar até conectar
while not wlan.isconnected():
print('Conectando ao Wi-Fi...')
sleep(1)
print('Conectado ao Wi-Fi:', ssid)
print('Endereço IP:', wlan.ifconfig()[0])
def ler_sensores():
sensor.measure()
temperatura = sensor.temperature()
umidade = sensor.humidity()
return temperatura, umidade
def enviar_thingspeak(temp, umid):
try:
url = f"https://api.thingspeak.com/update?api_key={WRITE_API_KEY}&field1={temp}&field2={umid}"
response = urequests.post(url)
print(response.text)
response.close()
except:
print("Erro ao enviar Temp e Uimd")
def pegar_thingspeak(field_number):
try:
url = f'https://api.thingspeak.com/channels/{CHANNEL_ID}/fields/{field_number}/last?api_key={READ_API_KEY}'
response = urequests.get(url)
result = response.text
response.close()
return result
except:
print("Erro ao pegar o valor")
def enviar_status_thingspeak(status):
try:
url = f"https://api.thingspeak.com/update?api_key={WRITE_API_KEY}&field5={status}"
response = urequests.post(url)
print(response.text)
response.close()
except:
print("Erro ao enviar status")
while True:
temperatura, umidade = ler_sensores()
print(f"Temperatura: {temperatura}")
print(f"Umidade: {umidade}")
#result = enviar_status_thingspeak(led.value())
#print(f"STATUS 5: {result}")
enviar_thingspeak(temperatura, umidade)
#result = pegar_thingspeak(3)
#print(f"CHAVE 3: {result}")
#led.value(int(result))
print("dados enviados")
sleep(1)
'''
HTML
<html>
<head>
%%PLUGIN_CSS%%
%%PLUGIN_JAVASCRIPT%%
</head>
<body>
<h2>Controle de Relé</h2>
<button class="button on" onclick="sendCommand(1)">Ligar</button>
<button class="button off" onclick="sendCommand(0)">Desligar</button>
</body>
</html>
CSS
<style type="text/css">
.button {
font-size: 16px;
padding: 10px 20px;
margin: 10px;
border: none;
cursor: pointer;
border-radius: 5px;
}
.on {
background-color: #4CAF50;
color: white;
}
.off {
background-color: #f44336;
color: white;
}
</style>
JAVASCRIPT
<script type="text/javascript">
const apiKey = '6MH4PDT55MLP0YQJ'; // Substitua pela sua Write API Key
const channelId = '2773688'; // Substitua pelo seu Channel ID
function sendCommand(state) {
const url = `https://api.thingspeak.com/update?api_key=${apiKey}&field3=${state}`;
fetch(url)
.then(response => {
if (response.ok) {
alert(`Comando enviado com sucesso: ${state === 1 ? 'Ligar' : 'Desligar'}`);
} else {
alert('Erro ao enviar comando!');
}
})
.catch(error => {
console.error('Erro:', error);
alert('Erro ao enviar comando!');
});
}
</script>
'''Loading
pi-pico-w
pi-pico-w