#include <EspMQTTClient.h>
#include <ArduinoJson.h>
#define PINO_TRIG 33
#define PINO_ECHO 32
#define PINO_LED 12
float numeroRandom = 0.0;
DynamicJsonDocument dados(1024);
String dadosJson;
EspMQTTClient client(
"Wokwi-GUEST",
"",
"mqtt.tago.io",
"Default",
"aqui-deve-estar-o-token-gerado-na-plataforma-tago.io",
"SA_IOT_2024"
);
void delayedFunction() {
Serial.println("Publicando a leitura dos sensores de qualidade da água...");
Serial.println(dadosJson);
client.publish("le_dados_qualidade_agua", dadosJson);
client.executeDelayed(5000, delayedFunction);
}
void setup() {
client.enableMQTTPersistence();
client.setMqttReconnectionAttemptDelay(2000);
client.setWifiReconnectionAttemptDelay(3000);
client.setKeepAlive(20);
client.enableDebuggingMessages(true);
client.setMaxPacketSize(256);
client.executeDelayed(5000, delayedFunction);
Serial.begin(9600);
pinMode(PINO_TRIG, OUTPUT);
pinMode(PINO_ECHO, INPUT);
pinMode(PINO_LED, OUTPUT);
}
void loop() {
digitalWrite(PINO_TRIG, LOW);
delayMicroseconds(2);
digitalWrite(PINO_TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(PINO_TRIG, LOW);
long duracao = pulseIn(PINO_ECHO, HIGH);
float distancia = (duracao * 0.0343) / 2;
Serial.print("Distância: ");
Serial.print(distancia);
Serial.println(" cm");
if (distancia <= 10) {
digitalWrite(PINO_LED, HIGH);
} else if (distancia >= 399) {
digitalWrite(PINO_LED, HIGH);
} else {
digitalWrite(PINO_LED, LOW);
}
delay(1000);
}
void onConnectionEstablished() {
Serial.println("Assinando o topico que atualiza os dados dequalidade da água....");
client.subscribe("le_dados_qualidade_agua ", [] (const String
&payload) {
});
}