#include <WiFi.h>
#include <PubSubClient.h>
#define POT_PIN 34
#define MQTT_SERVER "broker.hivemq.com"
#define MQTT_PORT 1883
#define TOPIC "potentiometer"
const char* ssid = "Wokwi-GUEST";
const char* password = "";
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
Serial.begin(115200);
// Connect to WiFi
Serial.println("Connecting to WiFi...");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi connected!");
// Set up MQTT
client.setServer(MQTT_SERVER, MQTT_PORT);
}
void reconnect() {
// Reconnect to MQTT
while (!client.connected()) {
Serial.println("Attempting MQTT connection...");
if (client.connect("ESP32Publisher")) {
Serial.println("Connected to MQTT broker");
} else {
Serial.println("Failed to connect, retrying in 5 seconds...");
delay(5000);
}
}
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
// Read potentiometer value
int potValue = analogRead(POT_PIN);
char potStr[8];
itoa(potValue, potStr, 10);
// Publish potentiometer value
client.publish(TOPIC, potStr);
Serial.print("Published: ");
Serial.println(potStr);
delay(1000); // Delay for 1 second
}