#include <WiFi.h>
#include <WiFiClient.h>

const char* ssid = "NOME_REDE_WIFI";
const char* password = "SENHA_REDE_WIFI";
const char* mqtt_server = "mqtt.eclipseprojects.io";
const int mqtt_port = 1883;

WiFiClient mqtt;



void setup() {
  Serial.begin(115200);
  Serial.println("Initializing WiFi...");
  WiFi.begin("Wokwi-GUEST", "", 6);
  Serial.println("Setup done!");

  //connectToMQTT();

}

void connectToMQTT() {
  while (!mqtt.connected()) {
  //   Serial.print("Conectando ao servidor MQTT...");
  //   if (mqtt.connect("ESP32Client")) {
  //     Serial.println("conectado");
  //     // Subscreve a um tópico
  //     mqtt.write(0x82); // Subscribe header
  //     mqtt.write(0x07); // Remaining length
  //     mqtt.write(0x00); // MSB packet ID
  //     mqtt.write(0x01); // LSB packet ID
  //     mqtt.write(0x00); // MSB topic length
  //     mqtt.write(0x05); // LSB topic length
  //     mqtt.print("teste/esp32/nolibrary/sub"); // Topic
  //     mqtt.write(0x00); // QoS level 0
  //   } else {
  //     Serial.print("falha, rc=");
  //     Serial.print(mqtt.state());
  //     Serial.println(" tentando novamente em 5 segundos");
  //     delay(5000);
  //   }
  }
}

void publishMessage(const char* topic, const char* message) {
  // Serial.println("Publicando mensagem...");
  // mqtt.write(0x30); // Publish header with QoS level 0
  // mqtt.write(0x0C); // Remaining length
  // mqtt.write(0x00); // MSB topic length
  // mqtt.write(strlen(topic)); // LSB topic length
  // mqtt.print(topic); // Topic
  // mqtt.print(message); // Payload
}

void processIncomingMessage() {
  // Serial.println("Mensagem recebida:");
  // while (mqtt.available()) {
  //   char c = mqtt.read();
  //   Serial.print(c);
  // }
  // Serial.println();
  // delay(10);
}

void loop() {
  // if (!mqtt.connected()) {
  //   connectToMQTT();
  // }

  // // Publisher
  // publishMessage("teste/esp32/nolibrary/pub", "Hello, MQTT from ESP32!");
  
  // // Subscriber
  // if (mqtt.available()) {
  //   processIncomingMessage();
  // }
}