//#include <ESP8266WiFi.h>
#include <WiFi.h>
#include <ArduinoJson.h>
#include <PubSubClient.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
String payload;
String channel="LEDS";
String topic_Led1="LEDS/LedR";
String topic_Led2="LEDS/LedG";
String topic_Led3="LEDS/LedB";
const char* server = "mqtt.beebotte.com";
const char* username ="token:token_FaG5sSwXkHS5WpI4";
const int port = 1883;
WiFiClient client;
PubSubClient clientmqtt(server,1883,client);
// Handle a received message
void callback(char* topic, byte* payload, unsigned int length)
{ Serial.println("MQTT callback executed");
Serial.print("topic:");
Serial.println(topic);
char message[length+1];
for(int i=0;i<length;i++)
message[i]=(char)payload[i];
Serial.print("received Json:");
Serial.println(message);
StaticJsonDocument<128> doc;
deserializeJson(doc,message);
boolean etatled=doc["data"];
if(strcmp(topic,"LEDS/LedG")==0){
digitalWrite(22,etatled);
Serial.print("Led Green Switched");
}
if(strcmp(topic,"LEDS/LedR")==0){
digitalWrite(23,etatled);
Serial.print("Led Red Switched");
}
if(strcmp(topic,"LEDS/LedB")==0){
digitalWrite(21,etatled);
Serial.print("Led Blue Switched");
}
}
void setup() {
pinMode(23,OUTPUT); pinMode(22,OUTPUT); pinMode(21,OUTPUT);
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.print("Connecting to WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
clientmqtt.setServer(server,port);
Serial.println("Server ready");
}
void loop() {
if(!clientmqtt.connected()){
Serial.println("MQTT not connected");
String ClientID="chonosus"+String(random(1000));
boolean mqttconnected = clientmqtt.connect(ClientID.c_str(),username,NULL);
delay(3000);
Serial.println("MQTT Try to connect");
if(mqttconnected){
Serial.println("MQTT Connected");
clientmqtt.subscribe("LEDS/LedR");
clientmqtt.subscribe("LEDS/LedG");
clientmqtt.subscribe("LEDS/LedB");
}
}
else // client connected
{
clientmqtt.setCallback(callback);
clientmqtt.loop();
}
}