/********* Pleasedontcode.com ********** Pleasedontcode thanks you for automatic code generation! Enjoy your code! - Terms and Conditions: You have a non-exclusive, revocable, worldwide, royalty-free license for personal and commercial use. Attribution is optional; modifications are allowed, but you're responsible for code maintenance. We're not liable for any loss or damage. For full terms, please visit pleasedontcode.com/termsandconditions. - Project: "Potentiometer MQTT" - Source Code compiled for: ESP32 DevKit V1 - Source Code created on: 2024-09-14 18:15:54 ********* Pleasedontcode.com **********/ /****** SYSTEM REQUIREMENTS *****/ /****** SYSTEM REQUIREMENT 1 *****/ /* Connect the ESP32 DEv board to an Home Assistant */ /* MQTT Broker. Makte the Potentiometer available for */ /* the MQTT Server to control it from Home Assitant */ /****** END SYSTEM REQUIREMENTS *****/ /****** DEFINITION OF LIBRARIES *****/ #include // Include the WiFi library for ESP32 #include // Include the PubSubClient library for MQTT /****** FUNCTION PROTOTYPES *****/ void setup(void); void loop(void); /***** DEFINITION OF ANALOG INPUT PINS *****/ const uint8_t Potentiometer_Potentiometer_Vout_PIN_D4 = 4; // Use pin number 4 instead of D4 // WiFi credentials const char* ssid = "Your_SSID"; // Replace with your WiFi SSID const char* password = "Your_PASSWORD"; // Replace with your WiFi password // MQTT Broker details const char* mqtt_server = "broker.hivemq.com"; // Replace with your MQTT broker address const char* mqtt_topic = "home/potentiometer"; // Topic to publish the potentiometer value WiFiClient espClient; // Create a WiFi client PubSubClient client(espClient); // Create a PubSubClient object void setup(void) { // Start the Serial communication Serial.begin(115200); pinMode(Potentiometer_Potentiometer_Vout_PIN_D4, INPUT); // Set the potentiometer pin as input // Connect to WiFi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); // Print dots while connecting } Serial.println("Connected to WiFi"); // Set the MQTT server client.setServer(mqtt_server, 1883); // Set the MQTT server and port } void loop(void) { // Reconnect to MQTT if not connected if (!client.connected()) { while (!client.connected()) { Serial.print("Attempting MQTT connection..."); // Attempt to connect if (client.connect("ESP32Client")) { Serial.println("connected"); } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" try again in 5 seconds"); delay(5000); // Wait 5 seconds before retrying } } } client.loop(); // Maintain the MQTT connection // Read the potentiometer value int potValue = analogRead(Potentiometer_Potentiometer_Vout_PIN_D4); // Convert the potentiometer value to a string String potValueStr = String(potValue); // Publish the potentiometer value to the MQTT topic client.publish(mqtt_topic, potValueStr.c_str()); Serial.print("Potentiometer Value: "); Serial.println(potValueStr); // Print the value to the Serial monitor delay(2000); // Wait for 2 seconds before the next reading } /* END CODE */