/********* 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: "WiFi MQTT Setup" - Source Code compiled for: ESP32 DevKit V1 - Source Code created on: 2024-03-06 15:45:13 ********* Pleasedontcode.com **********/ /****** SYSTEM REQUIREMENTS *****/ /****** SYSTEM REQUIREMENT 1 *****/ /* code for esp32 to control relay using manual */ /* switch and cloud usding mqtt */ /****** END SYSTEM REQUIREMENTS *****/ /****** DEFINITION OF LIBRARIES *****/ // Include the required libraries #include #include /****** FUNCTION PROTOTYPES *****/ void setup(void); void loop(void); void initializeWiFi(void); void connectToMQTTBroker(void); void mqttCallback(char* topic, byte* payload, unsigned int length); /***** DEFINITION OF DIGITAL INPUT PINS *****/ const uint8_t relay_PIN_D4 = 4; /***** WIFI CREDENTIALS *****/ const char* ssid = "Your SSID"; const char* password = "Your Password"; /***** MQTT BROKER DETAILS *****/ const char* mqttBroker = "your-mqtt-broker"; const char* mqttUsername = "mqtt-username"; const char* mqttPassword = "mqtt-password"; const int mqttPort = 1883; // Create an instance of the WiFiClient class WiFiClient wifiClient; // Create an instance of the PubSubClient class PubSubClient client(wifiClient); void setup(void) { // put your setup code here, to run once: // Initialize serial communication Serial.begin(115200); // Initialize WiFi connection initializeWiFi(); // Connect to the MQTT broker connectToMQTTBroker(); // Set the relay pin as input pinMode(relay_PIN_D4, INPUT); } void loop(void) { // put your main code here, to run repeatedly: // Check for any incoming messages client.loop(); // TODO: Add your relay control logic using manual switch here // TODO: Add your relay control logic using cloud (MQTT) here } void initializeWiFi(void) { // Connect to WiFi network Serial.print("Connecting to WiFi..."); WiFi.begin(ssid, password); // Wait until connected to the WiFi network while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.print("."); } Serial.println(); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } void connectToMQTTBroker(void) { // Set the MQTT broker and port client.setServer(mqttBroker, mqttPort); // Set the MQTT callback function client.setCallback(mqttCallback); // Connect to the MQTT broker while (!client.connected()) { Serial.print("Connecting to MQTT broker..."); // Connect to the MQTT broker with username and password if (client.connect("ESP32Client", mqttUsername, mqttPassword)) { Serial.println("Connected to MQTT broker"); } else { // Failed to connect to the MQTT broker, retry after 5 seconds Serial.print("Failed to connect to MQTT broker, retrying in 5 seconds..."); delay(5000); } } } void mqttCallback(char* topic, byte* payload, unsigned int length) { // TODO: Add your MQTT callback logic here }