// Incluimos las bibliotecas necesarias #include // Biblioteca para la conexión WiFi #include // Biblioteca para la comunicación segura a través de WiFi #include // Biblioteca para interactuar con la API de Telegram Bot // Definimos las credenciales de nuestra red WiFi #define WIFI_SSID "TU_SSID" // Reemplaza "TU_SSID" con el nombre de tu red WiFi #define WIFI_PASSWORD "TU_CONTRASEÑA" // Reemplaza "TU_CONTRASEÑA" con la contraseña de tu red WiFi // Definimos el token de nuestro bot de Telegram #define BOT_TOKEN "TU_TOKEN_DE_BOT" // Reemplaza "TU_TOKEN_DE_BOT" con el token que obtuviste al crear tu bot de Telegram // Creamos los objetos necesarios WiFiClientSecure secured_client; // Objeto para la comunicación segura a través de WiFi UniversalTelegramBot bot(BOT_TOKEN, secured_client); // Objeto para interactuar con la API de Telegram Bot, utilizando el token y el cliente seguro // Función que se encarga de manejar los nuevos mensajes recibidos por el bot void handleNewMessages(int numNewMessages) { for (int i = 0; i < numNewMessages; i++) { // Obtenemos el texto del mensaje recibido String text = bot.messages[i].text; // Verificamos si el texto del mensaje es "/hola" if (text == "/hola") { // Obtenemos el ID del chat desde donde se envió el mensaje String chat_id = bot.messages[i].chat_id; // Enviamos un mensaje de respuesta utilizando el ID del chat bot.sendMessage(chat_id, "¡Hola! Soy un bot de Telegram con ESP32.", ""); } } } // Función que se ejecuta una sola vez al inicio void setup() { // Iniciamos la comunicación serial a 115200 baudios Serial.begin(115200); Serial.println(); // Imprimimos un mensaje indicando que nos estamos conectando a la red WiFi Serial.print("Connecting to WiFi SSID: "); Serial.println(WIFI_SSID); // Iniciamos la conexión WiFi con las credenciales definidas WiFi.begin(WIFI_SSID, WIFI_PASSWORD); // Esperamos hasta que la conexión WiFi se establezca while (WiFi.status() != WL_CONNECTED) { Serial.print("."); // Imprimimos un punto cada 500 ms para indicar que estamos esperando delay(500); } // Una vez conectados, imprimimos un mensaje de confirmación y la dirección IP asignada Serial.println("\nWiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); // Configuramos el cliente seguro para ignorar la validación del certificado SSL (solo para desarrollo) secured_client.setInsecure(); } // Función que se ejecuta de manera continua void loop() { // Verificamos si hay nuevos mensajes llamando a bot.getUpdates(bot.last_message_received + 1) int numNewMessages = bot.getUpdates(bot.last_message_received + 1); // Si hay nuevos mensajes, llamamos a la función handleNewMessages para procesarlos if (numNewMessages) { handleNewMessages(numNewMessages); } }