#include"WiFi.h"
#include<PubSubClient.h>
const char* ssid="Wokwi-GUEST";
const char* password="";
const char*mqttServer="broker.hivemq.com";
int port=1883;
char clientld[50];
WiFiClient espClient;
PubSubClient client(espClient);
void setup(){
Serial.begin(115200);
Serial.println("hello,ESP32");
Serial.print("connecting to:");
Serial.println(ssid);
wifiConnect();
client.setServer(mqttServer,port);
}
void loop(){
if(!client.connected())
{
mqttReconnected();
}
else
{
client.publish("esp32-pub","data received");
}
client.loop();
}
void wifiConnect(){
WiFi.mode(WIFI_STA);
WiFi.begin(ssid,password);
while(WiFi.status()!=WL_CONNECTED){
delay(500);
Serial.print(".");
}
}
void mqttReconnected(){
while(!client.connected()){
Serial.print("attempting MQTT connection...");
long r=random(1000);
sprintf(clientld,"fcs-clientld-%ld.r");
if(client.connect(clientld)){
Serial.print(clientld);
Serial.println("connected");
}else{
Serial.print("failed,rc=");
Serial.print((client.state()));
Serial.println("try again in 5 seconds");
delay(5000);
}
}
}