#include <PubSubClient.h>
#include <WiFi.h>
const char *WIFI_SSID = "Wokwi-GUEST";
const char *MQTT_SERVER = "mqtt.flespi.io";
const uint16_t MQTT_PORT = 1883;
int i = 0;
static char iaux[10] = {0};
WiFiClient wifiClient;
PubSubClient mqttClient(wifiClient);
void CallbackMqtt(char* topic, byte* payload, unsigned int length)
{
if (String(topic) == "/cmd/usrs/ICT-UNIFESP/IoT") {
Serial.println(payload[0]);
}
}
void SetupMqtt()
{
mqttClient.setServer(MQTT_SERVER, MQTT_PORT);
mqttClient.setCallback(CallbackMqtt);
}
void ConnectToMqtt()
{
Serial.println("Connecting to MQTT Broker...");
while (!mqttClient.connected())
{
char clientId[100] = "\0";
sprintf(clientId, "ESP32Client-%04X", random(0xffff));
Serial.println(clientId);
if (mqttClient.connect(clientId,"XXYUtAitEQ6kjDu4sfodRg51PhHmBVzmIo62OcjgQfqYGJQYO4ZvaUlO2SYrDnD9",""))
{
Serial.println("Connected to MQTT broker.");
}
}
mqttClient.subscribe("/cmd/usrs/ICT-UNIFESP/IoT");
mqttClient.publish("/cmd/usrs/ICT-UNIFESP/IoT","0");
}
void ConnectToWiFi()
{
Serial.print("Connecting to WiFi ");
Serial.println(WIFI_SSID);
WiFi.begin(WIFI_SSID, "", 6);
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(500);
}
Serial.print("\nConnected to ");
Serial.println(WIFI_SSID);
}
void setup()
{
Serial.begin(115200);
Serial.println("Setup begin");
ConnectToWiFi();
SetupMqtt();
Serial.println("Setup end");
}
void loop()
{
if (!mqttClient.connected())
{
ConnectToMqtt();
}
mqttClient.loop();
static uint64_t last_time;
uint64_t now = millis();
if (now - last_time > 500)
{
sprintf(iaux, "%i", i);
mqttClient.publish("/srs/usrs/ICT-UNIFESP/IoT", iaux);
i++;
// Serial.println(i);
last_time = now;
}
}