#include #include int sensor; // Configuración WiFi const char* ssid = "OTTORTUGA"; // Cambia por el nombre de tu red WiFi const char* password = "cucharon"; // Cambia por la contraseña de tu red WiFi // Configuración del broker MQTT const char* mqtt_server = "yaqua.cidemec.pe"; // Cambia por la dirección de tu broker MQTT const int mqtt_port = 1883; // Puerto MQTT (default es 1883) const char* mqtt_topic = "test/topic"; // Tema donde publicarás datos // Credenciales MQTT const char* mqtt_user = "stef"; // Cambia por tu usuario MQTT const char* mqtt_password = "Sibarita15!"; // Cambia por tu contraseña MQTT const char* client_id = "XIAOESP32C3_Stef_recibir"; // Cambia por un identificador único WiFiClient espClient; PubSubClient client(espClient); // Función para conectarse a WiFi // Definición del pin que vamos a controlar const int controlPin = 2; // Función para conectarse a WiFi void setupWiFi() { delay(10); Serial.println(); Serial.print("Conectando a "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi conectado"); Serial.print("Dirección IP: "); Serial.println(WiFi.localIP()); } // Callback que se ejecuta cuando llega un mensaje al tema suscrito void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Mensaje recibido en el tema: "); Serial.println(topic); Serial.print("Mensaje: "); // Convertir el payload en un String String message; for (unsigned int i = 0; i < length; i++) { message += (char)payload[i]; } Serial.println(message); // Controlar el pin en función del mensaje recibido if (message == "1") { digitalWrite(controlPin, HIGH); Serial.println("Pin 2 en HIGH"); } else if (message == "0") { digitalWrite(controlPin, LOW); Serial.println("Pin 2 en LOW"); } else { Serial.println("Comando no reconocido"); } } // Función para conectarse al broker MQTT void reconnect() { while (!client.connected()) { Serial.print("Intentando conexión MQTT..."); if (client.connect(client_id, mqtt_user, mqtt_password)) { Serial.println("Conectado al broker MQTT"); // Suscribirse al tema if (client.subscribe(mqtt_topic)) { Serial.println("Suscripción exitosa al tema: "); Serial.println(mqtt_topic); } else { Serial.println("Error al suscribirse al tema"); } } else { Serial.print("Falló, rc="); Serial.print(client.state()); Serial.println(" Intentando de nuevo en 5 segundos..."); delay(5000); } } } void setup() { Serial.begin(115200); // Configurar el pin como salida pinMode(controlPin, OUTPUT); digitalWrite(controlPin, LOW); // Inicialmente en LOW setupWiFi(); client.setServer(mqtt_server, mqtt_port); client.setCallback(callback); // Intentamos conectar al broker reconnect(); } void loop() { if (!client.connected()) { reconnect(); } client.loop(); }