#include <PubSubClient.h>
#include <WiFi.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* mqttServer = "161.132.41.13";
const int mqttPort = 1883;
const char* mqttUser = "";
const char* mqttPassword = "";
WiFiClient espClient;
PubSubClient client(espClient);
const int PotPin = 34;
const int pinLedOk = 26;
const char* sensor1Topic = "lectura/sensor1";
void setup() {
Serial.begin(115200);
setup_wifi();
client.setServer(mqttServer, mqttPort);
}
void setup_wifi() {
delay(10);
pinMode(pinLedOk, OUTPUT);
Serial.println();
Serial.print("Conectando a ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Conectado a la red WiFi");
}
void loop() {
int potValue = analogRead(PotPin);
Serial.print("Valor del sensor1: ");
Serial.println(potValue);
if (!client.connected()) {
reconnect();
}
client.loop();
sendPotValue(potValue);
delay(1000);
}
void sendPotValue(int value) {
char message[50];
snprintf(message, 50, "%d", value);
client.publish(sensor1Topic, message);
}
void reconnect() {
while (!client.connected()) {
Serial.print("Intentando conexión MQTT...");
if (client.connect("ESP32Client", mqttUser, mqttPassword)) {
digitalWrite(pinLedOk, HIGH);
Serial.println("conectado");
} else {
Serial.print("falló, rc=");
Serial.print(client.state());
Serial.println(" intentando nuevamente");
delay(5000);
}
}
}