#include<WiFi.h>
#include<PubSubClient.h>
//WiFi declaration
const char* ssid = "Wokwi-GUEST";
const char* pass = "";
WiFiClient espClient;
//PubSub declaration
const char* mqtt_Server = "broker.hivemq.com";
int value = 0;
PubSubClient client(espClient);
void setup() {
Serial.begin(115200);
//Wifi setup
WiFi.mode(WIFI_STA);
wifiSetup();
//pubsub setup
client.setServer(mqtt_Server,1883);
client.setCallback(callback);
}
void callback(char* topic,byte* payload,unsigned long int length)
{
Serial.print("Message Received:["+String(topic)+"]:");
for(int i=0;i<length;i++)
{
Serial.print((char)payload[i]);
}
Serial.println();
}
void wifiSetup(){
Serial.print("Attempting Wifi connection");
while(WiFi.status()!=WL_CONNECTED){
WiFi.begin(ssid,pass);
Serial.print(".");
delay(5000);
}
Serial.println();
Serial.println("Wifi Connected");
}
void loop() {
if(!client.connected())
{
reconnect();
}
client.loop();
delay(2000);
++value;
Serial.println("Publish message:"+String("Training"));
client.publish("Fdp","Training");
}
void reconnect()
{
while(!client.connected())
{
Serial.println("Attempting to MQTT connection");
String clientId = "Esp8266Client-";
clientId+=String(random(0xffff),HEX);
if(client.connect(clientId.c_str()))
{
Serial.println("Connected");
client.publish("Fdp","Connected");
client.subscribe("Fdp1");
}
else{
Serial.println("Not connected");
delay(5000);
}
}
}