Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
/********* 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: "MQTT Potentiometer" - Source Code NOT compiled for: ESP32 DevKit V1 - Source Code created on: 2024-09-14 18:21:30 ********* Pleasedontcode.com **********/ /****** SYSTEM REQUIREMENTS *****/ /****** SYSTEM REQUIREMENT 1 *****/ /* Connect the ESP32 DEv board to an Home Assistant */ /* MQTT Broker. The Broker need a username and */ /* Password for authentifikation. 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); // Define the MQTT callback function prototype void mqttCallback(char* topic, byte* payload, unsigned int length); void reconnect(void); /***** DEFINITION OF ANALOG INPUT PINS *****/ const uint8_t Potentiometer_Potentiometer_Vout_PIN_D4 = D4; // Define the pin for the potentiometer // WiFi and MQTT configuration const char* ssid = "Your_SSID"; // Your WiFi SSID const char* password = "Your_PASSWORD"; // Your WiFi Password const char* mqtt_server = "Your_MQTT_Broker"; // Your MQTT Broker address const char* mqtt_user = "Your_MQTT_Username"; // MQTT Username const char* mqtt_password = "Your_MQTT_Password"; // MQTT Password const char* mqtt_topic = "home/potentiometer"; // MQTT topic to publish potentiometer value WiFiClient espClient; // Create a WiFi client PubSubClient client(espClient); // Create a PubSubClient object void setup(void) { Serial.begin(115200); // Start the Serial communication pinMode(Potentiometer_Potentiometer_Vout_PIN_D4, INPUT); // Set the potentiometer pin as input // Connect to WiFi WiFi.begin(ssid, password); // Start WiFi connection while (WiFi.status() != WL_CONNECTED) { // Wait for connection delay(1000); // Wait 1 second Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi"); // Set up MQTT server client.setServer(mqtt_server, 1883); // Set the MQTT server and port client.setCallback(mqttCallback); // Set the callback function for incoming messages } void loop(void) { // Ensure the client is connected to the MQTT broker if (!client.connected()) { reconnect(); // Reconnect if not connected } client.loop(); // Handle MQTT communication // Read the potentiometer value int potValue = analogRead(Potentiometer_Potentiometer_Vout_PIN_D4); // Read the potentiometer value char potValueStr[4]; // Buffer to hold the potentiometer value as a string itoa(potValue, potValueStr, 10); // Convert the integer value to a string // Publish the potentiometer value to the MQTT topic client.publish(mqtt_topic, potValueStr); // Publish the value delay(2000); // Wait for 2 seconds before the next reading } // Function to handle reconnection to the MQTT broker void reconnect() { // Loop until we're reconnected while (!client.connected()) { Serial.print("Attempting MQTT connection..."); // Attempt to connect if (client.connect("ESP32Client", mqtt_user, mqtt_password)) { 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 } } } // Callback function for incoming messages void mqttCallback(char* topic, byte* payload, unsigned int length) { // Handle incoming messages if needed }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)