#include <Arduino.h>
#include <WiFi.h>
// WiFi Configuration
const char* ssid = "Wokwi_GUEST";
const char* password = "";
// MQTT Configuration
const char* mqtt_server = "your_MQTT_broker_IP";
const char* client_id = "your_client_id";
// LED Pins
const int led1Pin = 2;
const int led2Pin = 4;
const int led3Pin = 5;
// Simulated MQTT-like variables
bool remoteLed1Status = false;
bool remoteLed2Status = false;
int analogFeedbackValue = 0;
// Simulate MQTT message handling
void handleMQTTMessage(const String& topic, const String& payload) {
if (topic.equals("led/1/control")) {
remoteLed1Status = (payload.toInt() == 1);
} else if (topic.equals("led/2/control")) {
remoteLed2Status = (payload.toInt() == 1);
} else if (topic.equals("analog/feedback/control")) {
analogFeedbackValue = payload.toInt();
}
}
// Simulate MQTT loop
void simulateMQTTLoop() {
// Simulate handling MQTT messages periodically
// Replace this with actual simulation logic
handleMQTTMessage("led/1/control", "1");
handleMQTTMessage("led/2/control", "0");
handleMQTTMessage("analog/feedback/control", "750");
delay(1000); // Simulated delay
}
void setup() {
Serial.begin(115200);
// Initialize LED pins
pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
pinMode(led3Pin, OUTPUT);
// Initialize WiFi and connect
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
}
void loop() {
// Simulate MQTT-like loop
simulateMQTTLoop();
// Update local LED status based on simulated remote control
digitalWrite(led1Pin, remoteLed1Status ? HIGH : LOW);
digitalWrite(led2Pin, remoteLed2Status ? HIGH : LOW);
digitalWrite(led3Pin, (analogFeedbackValue > 512) ? HIGH : LOW);
// Add any other logic as needed
delay(100); // Simulated delay
}