#include <WiFi.h>
#include <HTTPClient.h>
//const char* ssid = "SUA_REDE_WIFI";
//const char* password = "SUA_SENHA_WIFI";
const char* serverUrl = "http://192.168.1.104:3000/atualizar-vaga";
const byte trigPins[] = {18, 19, 21, 22};
const byte echoPins[] = {5, 17, 16, 4};
const byte numSensores = 4;
byte vagaOcupada[numSensores] = {0};
void setup() {
Serial.begin(115200);
for (byte i = 0; i < numSensores; i++) {
pinMode(trigPins[i], OUTPUT);
pinMode(echoPins[i], INPUT);
}
WiFi.begin("Wokwi-GUEST", "", 6);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Conectando ao WiFi...");
}
Serial.println("Conectado ao WiFi.");
}
void loop() {
acionamento();
enviarStatusVaga();
}
void acionamento() {
for (byte i = 0; i < numSensores; i++) {
digitalWrite(trigPins[i], LOW);
delayMicroseconds(2);
digitalWrite(trigPins[i], HIGH);
delayMicroseconds(10);
digitalWrite(trigPins[i], LOW);
long duration = pulseIn(echoPins[i], HIGH);
float distance_cm = duration * 0.034 / 2;
vagaOcupada[i] = (distance_cm <= 200) ? 1 : 0;
// Remova ou ajuste a quantidade de mensagens para economizar memória
Serial.print("Sensor ");
Serial.print(i + 1);
Serial.print(" - Distância: ");
Serial.print(distance_cm);
Serial.println(" cm");
// Serial.print("Vaga Ocupada? ");
// Serial.println(vagaOcupada[i]);
delay(1000); // Ajuste conforme necessário
}
}
void enviarStatusVaga() {
HTTPClient http;
try {
http.begin(serverUrl);
http.addHeader("Content-Type", "application/json");
String jsonData = "{";
for (byte i = 0; i < numSensores; i++) {
jsonData += "\"vagaOcupada" + String(i + 1) + "\":" + String(vagaOcupada[i]);
if (i < numSensores - 1) jsonData += ",";
}
jsonData += "}";
int httpCode = http.POST(jsonData);
if (httpCode == 200) {
Serial.println("Status da vaga enviado com sucesso");
} else {
Serial.print("Falha ao enviar o status da vaga. Código de erro HTTP: ");
Serial.println(httpCode);
String payload = http.getString();
Serial.print("Resposta do servidor: ");
Serial.println(payload);
}
} catch (const std::exception& e) {
Serial.print("Exceção ao enviar o status da vaga: ");
Serial.println(e.what());
}
http.end();
delay(1000);
}