#include <WiFi.h> //biblioteca wifi
#include <ThingSpeak.h> //biblioteca Thingspeak
#include <dht.h> //Biblioteca DHT22
const char* ssid = "esp"; //Rede wifi
const char* pass = "wokwi@2022"; //senha
WiFiClient espClient; //Cria classe espClient
const long CHANNEL = "2485335"; //Channel no Thingspeak
const char *WRITE_API = "T8G8GD9CY2AMDPNO"// white API do canal
long prevMillis ThingSpeak = 0;
int intervalThingSpeak = 15000; // Intervalo minimo para escrever no ThingSpeak write é de 15 segundos
dht dhtSensor; //Cria classe dhtSensor
const int DHT_PIN = 15; //constante pino DHT
void setup(){
Serial.begin(115200);
WiFi.begin(ssid, pass); //config wifi
while (WiFi.status() != WL_CONNECTED) { //conectando...
delay(100);
Serial.println(".");
}
Serial.println("WiFi Connected!");
Serial.println (WiFi.localIP()); //informa endereço IP
ThingSpeak.begin (espClient); // Inicializa o ThingSpeak
}
void loop()
{
//Capta a temperatura e umidade e exibe no monitor serial
dhtSensor.read11 (DHT_PIN); //LÊ AS INFORMAÇÕES DO SENSOR
Serial.println("Temp: " + String (dhtSensor.temperature) + "C");
Serial.println("Umidade: "+ String (dhtSensor.humidity) + "%");
Serial.println("---");
if (millis() - prevMillisThingSpeak > intervalThingSpeak) {
// Configura os campos com os valores Field1 e Field2
ThingSpeak.setField (1, String (dhtSensor.temperature));
ThingSpeak.setField (2, String (dhtSensor.humidity));
// Escreve no canal do ThingSpeak
int x = ThingSpeak.writeFields (CHANNEL, WRITE_API);
if (x == 200) {
}
Serial.println("Update realizado com sucesso");
}
else {
Serial.println("Problema no canal erro HTTP" + String (x));
prevMillisThingSpeak = millis();
}
delay (30000);
}