//Quarto Sketch Ultra com biblioteca+WiFi+ThingSpeak
#include <WiFi.h>
#include <WiFiClient.h>
#include <Ultrasonic.h>
#include "ThingSpeak.h"
//Configurações WiFI
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""
//Definir o canal do WIfi - aumentar a velocidade de conexão
#define WIFI_CHANNEL 6
int status = WL_IDLE_STATUS;
const int myChannelNumber = 2680244;
const char* myApiKey = "ET979B8HQASA2GT5";
const char* server = "api.thingspeak.com";
WiFiClient client;
#define TRIG_PIN 12
#define ECHO_PIN 14
long previousDistance = 0;
Ultrasonic ultrasonic(TRIG_PIN, ECHO_PIN);
//vaiaveis globais
int ultimoValor = 0;
unsigned long ultimaAtualizacao = 0;
const unsigned long intervaloEnvio = 15000;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
conectawifi();
}
void loop() {
delay(10);
int distancia = ultrasonic.read();
//verifica se o intervalo de 15 segundos desde a última atualização foi atingido
if(millis() - ultimaAtualizacao >= intervaloEnvio){
Serial.println(distancia);
ultimaAtualizacao = millis();
ThingSpeak.setField(1, distancia);
int x = ThingSpeak.writeFields(myChannelNumber, myApiKey);
if(x == 200){
Serial.println("Dado enviado com sucesso");
}else{
Serial.println("Erro de envio: "+ String(x));
}
}
delay(100);
}
void conectawifi(){
WiFi.begin(WIFI_SSID, WIFI_PASSWORD, WIFI_CHANNEL);
Serial.print("Conectando ao WiFi");
Serial.print(WIFI_SSID);
//Esperar até conectar
while (WiFi.status() != WL_CONNECTED){
delay(100);
Serial.print(".");
}
Serial.println(" Conectado!");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
}