#include <WiFi.h>
#include <PubSubClient.h>
#include <ArduinoJson.h>
#define LED1 25
#define LED2 26
#define LED3 27
#define SW 14
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* mqttServer = "mqtt.netpie.io";
const int mqttPort = 1883;
const char* clientID = "YOUR_DEVICE_CLIENT_ID";
const char* username = "YOUR_DEVICE_TOKEN";
const char* password_mqtt = "YOUR_DEVICE_SECRET";
WiFiClient espClient;
PubSubClient client(espClient);
// ===== Shadow topics =====
#define SHADOW_GET "@shadow/get"
#define SHADOW_UPDATE "@shadow/update"
#define SHADOW_UPDATED "@shadow/updated"
void callback(char* topic, byte* payload, unsigned int length) {
StaticJsonDocument<256> doc;
deserializeJson(doc, payload);
if (doc.containsKey("state")) {
bool led1 = doc["state"]["led1"];
bool led2 = doc["state"]["led2"];
bool led3 = doc["state"]["led3"];
String mode = doc["state"]["mode"];
digitalWrite(LED1, led1);
digitalWrite(LED2, led2);
digitalWrite(LED3, led3);
if (mode == "off") {
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
}
}
}
void connectMQTT() {
while (!client.connected()) {
if (client.con