Uso de MQTT com ESP32. Tutorial: https://www.emqx.com/en/blog/esp32-connects-to-the-free-public-mqtt-broker Exemplo Usando a lib PubSubClient #include <WiFi.h> #include <PubSubClient.h> // WiFi const char *ssid = "wifi-ssid"; // Enter your Wi-Fi name const char *password = "mywifipassword#"; // Enter Wi-Fi password // MQTT Broker const char *mqtt_broker = "broker-host-or-ip"; const char *topic = "topicname"; const char *mqtt_username = "username"; const char *mqtt_password = "password"; const int mqtt_port = 1883; WiFiClient espClient; PubSubClient client(espClient); void setup() { // Set software serial baud to 115200; Serial.begin(115200); // Connecting to a WiFi network WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.println("Connecting to WiFi.."); } Serial.println("Connected to the Wi-Fi network"); //connecting to a mqtt broker client.setServer(mqtt_broker, mqtt_port); ensureConnection(); client.publish(topic, "Hi, I'm ESP32 ^^"); } void ensureConnection() { if (client.connected()) { return; } while (!client.connected()) { Serial.println("Not connected..."); String client_id = "esp32-client-"; client_id += String(WiFi.macAddress()); Serial.printf("The client %s connects to the public MQTT broker\n", client_id.c_str()); if (client.connect(client_id.c_str(), mqtt_username, mqtt_password)) { Serial.println("Public EMQX MQTT broker connected"); } else { Serial.print("failed with state "); Serial.print(client.state()); delay(2000); } } client.setCallback(callback); client.subscribe(topic); } void callback(char *topic, byte *payload, unsigned int length) { Serial.print("Message arrived in topic: "); Serial.println(topic); Serial.print("Message:"); for (int i = 0; i < length; i++) { Serial.print((char) payload[i]); } Serial.println(); Serial.println("-----------------------"); } void loop() { ensureConnection(); client.loop(); }