#include <WiFi.h>
#include <PubSubClient.h>
// Definições e constantes
char SSIDName[] = "Wokwi-GUEST";
char SSIDPass[] = "";
char BrokerURL[] = "broker.hivemq.com";
char MQTTClientName[] = "mqtt-turbidez-ph";
int BrokerPort = 1883;
char Topico_01[] = "TESTMACK10408854/Turbidez";
char Topico_02[] = "TESTMACK10408854/pH";
// Variáveis e objetos
WiFiClient espClient;
PubSubClient clienteMQTT(espClient);
int turbidezPin = 34; // Pino do sensor de turbidez
int phPin = 35; // Pino do sensor de pH
void mqttReconnect() {
while (!clienteMQTT.connected()) {
Serial.println("Conectando-se ao broker MQTT...");
if (clienteMQTT.connect(MQTTClientName)) {
Serial.println("Conectado!");
clienteMQTT.subscribe(Topico_02);
} else {
Serial.print("Falha, rc=");
Serial.println(clienteMQTT.state());
delay(5000);
}
}
}
void setup() {
clienteMQTT.setServer(BrokerURL, BrokerPort);
Serial.begin(115200);
WiFi.begin(SSIDName, SSIDPass);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
Serial.println("\nConectado!");
Serial.print("IP: ");
Serial.println(WiFi.localIP());
pinMode(turbidezPin, INPUT);
pinMode(phPin, INPUT);
}
void loop() {
if (!clienteMQTT.connected()) {
mqttReconnect();
}
clienteMQTT.loop();
int turbidezValor = analogRead(turbidezPin);
int phValor = analogRead(phPin);
char turbidezStr[8];
dtostrf(turbidezValor, 1, 2, turbidezStr);
clienteMQTT.publish(Topico_01, turbidezStr);
Serial.print("Turbidez publicada: ");
Serial.println(turbidezStr);
char phStr[8];
dtostrf(phValor, 1, 2, phStr);
clienteMQTT.publish(Topico_02, phStr);
Serial.print("pH publicado: ");
Serial.println(phStr);
delay(1000);
}