//#include <ESP8266WiFi.h>
#include <WiFi.h>
#include <ArduinoJson.h>
#include <PubSubClient.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
String payload;
String channel="ch1";
String topic_Led1="ch1/ledRED";
String topic_Led2="ch1/ledBlue";
String topic_Led3="ch1/ledGreen";
const char* server = "mqtt.beebotte.com";
const char* username ="token:token_cVo5xpwtnyA7Ro2e";
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);
//Votre traitement............................;
StaticJsonDocument<128> doc;
deserializeJson(doc,message);
boolean etatled=doc["data"];
if(strcmp(topic,"LCE3_24_25_G1/ledGreen")==0){
digitalWrite(22,etatled);
Serial.print("Led Green Switched");
}
if(strcmp(topic,"LCE3_24_25_G1/ledRED")==0){
digitalWrite(23,etatled);
Serial.print("Led Red Switched");
}
if(strcmp(topic,"LCE3_24_25_G1/ledBlue")==0){
digitalWrite(21,etatled);
Serial.print("Led Blue Switched");
}
}
void setup() {
// red:23 // Green :22 //Blue: 21
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="kamel"+String(random(1000));
boolean mqttconected=clientmqtt.connect(ClientID.c_str(),username,NULL);
delay(5000);
Serial.println("MQTT Try to connect");
if(mqttconected){
Serial.println("MQTT connected");
clientmqtt.subscribe("ch1/ledRED");
clientmqtt.subscribe("ch1/ledBlue");
clientmqtt.subscribe("ch1/ledGreen");}
}
else // client connected
{
clientmqtt.setCallback(callback);
clientmqtt.loop();
}
}