//Bibliotecas---------------------------------------------------------- 

#include <WiFi.h> 
#include <ThingSpeak.h> 

//Constantes e variáveis-----------------------------------------------

//Credenciais WiFi

 char ssid[] = "Wokwi-GUEST"; // Rede WiFi - SSID (nome)

 char pass[] = ""; // Senha da rede WiFi

 WiFiClient client;

 unsigned long myChannelNumber = 2632428; //ThingSpeak Channel ID

 const char * myReadAPIKey = "JXBH503RAVGYBZDO"; //ThingSpeak Channel Read API Key

 int x; //Variável para receber dados do ThingSpeak

const int LED = 4; //Constante ref. LED

 //Inicialização de entradas, saídas, WiFi e ThingSpeak----------------- 

void setup() {

 // Inicia o Serial Monitor
 Serial.begin(115200); 
// Conectar ao WiFi 
WiFi.begin(ssid, pass); 
Serial.print("Conectando-se a rede WiFi: "); 
Serial.println(ssid);
 while(WiFi.status() != WL_CONNECTED){ 
Serial.print("."); 
delay(5000); 
}

Serial.println("");
 Serial.println("WiFi conectado!"); 
Serial.print("Endereço IP: "); 
Serial.println(WiFi.localIP()); //Exibe o endereço IP 
ThingSpeak.begin(client); // Inicializa o ThingSpeak
 pinMode(LED, OUTPUT); //Config. pino LED como saída
}


//Prgrama principal---------------------------------------------------- 
void loop() {
 // Faz a leitura dos dados no ThingSpeak.
 // Há 8 fields no canal, e é possível ler 8 diferentes dados
 // em um canal. Aqui iremos ler o field 1.

 x = ThingSpeak.readLongField(myChannelNumber, 1, myReadAPIKey);

 //Repassamos a leitura 0 ou 1 para o HIGH/LOW do digitalWrite digitalWrite

(LED,x); //Repassa o valor recebido do ThingSpeak para o estado do pino 

Serial.println(x); 
delay(15000); // Aguarda 15 segundos para atualizar o canal(versão gratuita limita 15 seg) 
}