MQTT communication between PYQT5 and ESP32 | Part II

Posted by

Comunicación MQTT entre PYQT5 y ESP32 | Parte II

Comunicación MQTT entre PYQT5 y ESP32 | Parte II

En la segunda parte de esta serie de artículos, continuaremos explorando cómo establecer una comunicación MQTT entre un programa PYQT5 y un ESP32.

Configuración del ESP32

En esta parte, nos enfocaremos en la configuración del ESP32 para que pueda conectarse al servidor MQTT y recibir mensajes del programa PYQT5. Para esto, es necesario tener instalado el IDE de Arduino y las librerías necesarias para el ESP32.

#include 
#include 

const char* ssid = "tu_red_wifi";
const char* password = "tu_contraseña_wifi";

const char* mqtt_server = "tu_servidor_MQTT";
const int mqtt_port = 1883;

WiFiClient espClient;
PubSubClient client(espClient);

void setup() {
  // Conexión a la red WiFi
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }

  // Conexión al servidor MQTT
  client.setServer(mqtt_server, mqtt_port);
}

void loop() {
  if (!client.connected()) {
    reconnect();
  }
  client.loop();
}

void reconnect() {
  while (!client.connected()) {
    if (client.connect("ESP32Client")) {
      client.subscribe("topic");
    }
  }
}

Programa PYQT5

En el programa PYQT5, debemos establecer la conexión con el servidor MQTT y enviar mensajes al ESP32. Para esto, necesitaremos la librería paho-mqtt.

import paho.mqtt.client as mqtt

def on_connect(client, userdata, flags, rc):
    print("Conectado al servidor MQTT")
    client.subscribe("topic")

def on_message(client, userdata, msg):
    print(msg.topic+" "+str(msg.payload))

client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message

client.connect("tu_servidor_MQTT", 1883, 60)

client.loop_forever()

Con estas configuraciones, podrás establecer una comunicación MQTT entre PYQT5 y ESP32 de manera sencilla y eficiente. En la próxima parte de esta serie, exploraremos cómo enviar y recibir mensajes entre ambos dispositivos de forma bidireccional.