#include <WiFi.h>
#include <WiFiClient.h>
#include <Ultrasonic.h>
#include "ThingSpeak.h"
//Configuraões do WiFi
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""
#define WIFI_CHANNEL 6
int status = WL_IDLE_STATUS;
WiFiClient client;
//Configurações ThingSpeak
const int myChannelNumber = 2688813;
const char* myApiKey = "U4AARPMQ4NTKNKPD";
const char* server = "api.thingspeak.com";
#define TRIG_PIN 12
#define ECHO_PIN 14
long previousDistance = 0;
Ultrasonic ultrasonic(TRIG_PIN, ECHO_PIN);
void setup() {
Serial.begin(115200);
conectwifi();//chama a função para conectar-se à rede WiFi
}
void loop() {
int distance = ultrasonic.read();
// Verifica se a distância mudou
if (distance != previousDistance) {
// Atualiza o valor anterior
previousDistance = distance;
// Exibe a distância apenas se houver uma alteração
Serial.print("Distancia: ");
Serial.print(distance);
Serial.println(" cm");
// Configura o campo no ThingSpeak e envia os dados
ThingSpeak.setField(1, distance);
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 conectwifi(){
//iniciar a conexão WiFi usando ssid, senha e o canal especificados
WiFi.begin(WIFI_SSID, WIFI_PASSWORD, WIFI_CHANNEL);
Serial.print("Conectando ai WiFi ");
Serial.print(WIFI_SSID);
//aguarda até que a conexão seja estabelecida
while(WiFi.status()!=WL_CONNECTED){
delay(100);
Serial.print(".");
}
//Exibir msg de conexão bem-sucedida
Serial.println(" Conectado!");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
}