BOT DE TELEGRAM
Da tu primer paso en el mundo de la programación con nuestras placas KITMAKER 1.0 y KITMAKER 2.0
En esta actividad, te enseñará a crear un bot de Telegram utilizando BotFather. Un bot de Telegram puede automatizar tareas, responder a mensajes y mucho más.
El código proporcionado es totalmente funcional para ambas placas, ofreciéndote una experiencia sencilla y accesible para comenzar a crear tus propias ideas.
¡Empecemos!
Ide Arduino
Primero, descarga el archivo explicativo que contiene la guía paso a paso para crear tu bot de Telegram.
// Proyecto: Bot de Telegram con ESP32
// Placa: Neofan y KitMaker de Faniot
//
// Descripción:
// Este ejercicio demuestra cómo conectar un ESP32 a una red WiFi y utilizarlo para interactuar con un bot de Telegram.
// El bot responde al comando "/hola" enviando un mensaje de respuesta.
//
// Instrucciones:
// 1. Reemplaza las credenciales de la red WiFi y el token del bot de Telegram con tus propios valores en las líneas 9-11.
// 2. Puedes modificar el comando que el bot reconoce y el mensaje de respuesta editando las líneas 43 y 47 respectivamente.
// - Línea 43: Comando que el bot reconocerá. Actualmente es "/hola".
// - Línea 47: Mensaje que el bot enviará en respuesta al comando. Actualmente es "¡Hola! Soy un bot de Telegram con ESP32.".
//
// Ejemplo de Ediciones:
// - Para cambiar el comando a "/adios", modifica la línea 43 a:
// if (text == "/adios") {
// - Para cambiar el mensaje de respuesta a "¡Adiós! Que tengas un buen día.", modifica la línea 47 a:
// bot.sendMessage(chat_id, "¡Adiós! Que tengas un buen día.", "");
// 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
// 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 de comando 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);
}
}
// Proyecto: Bot de Telegram con ESP32
// Placa: Neofan y KitMaker de Faniot
//
// Descripción:
// Este ejercicio demuestra cómo conectar un ESP32 a una red WiFi y utilizarlo para interactuar con un bot de Telegram.
// El bot responde al comando "/hola" enviando un mensaje de respuesta.
//
// Instrucciones:
// 1. Reemplaza las credenciales de la red WiFi y el token del bot de Telegram con tus propios valores en las líneas 9-11.
// 2. Puedes modificar el comando que el bot reconoce y el mensaje de respuesta editando las líneas 43 y 47 respectivamente.
// - Línea 43: Comando que el bot reconocerá. Actualmente es "/hola".
// - Línea 47: Mensaje que el bot enviará en respuesta al comando. Actualmente es "¡Hola! Soy un bot de Telegram con ESP32.".
//
// Ejemplo de Ediciones:
// - Para cambiar el comando a "/adios", modifica la línea 43 a:
// if (text == "/adios") {
// - Para cambiar el mensaje de respuesta a "¡Adiós! Que tengas un buen día.", modifica la línea 47 a:
// bot.sendMessage(chat_id, "¡Adiós! Que tengas un buen día.", "");
// Incluimos las bibliotecas necesarias
#include <WiFi.h> // Biblioteca para la conexión WiFi
#include <WiFiClientSecure.h> // Biblioteca para la comunicación segura a través de WiFi
#include <UniversalTelegramBot.h> // 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
// 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 de comando 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);
}
}