¡Tu carrito está actualmente vacío!
Enviar Mensajes desde un ESP32 a Telegram

📌Madrid 2025 | ESP32
Una forma práctica de recibir notificaciones o datos de tus proyectos directamente en un móvil. Aquí la experiencia de cómo preparar tu ESP32 para conectarse a Internet y finalmente cómo escribir el código necesario para que todo funcione

1. Crear un Bot en Telegram
Para comenzar, buscar el bot @BotFather en Telegram. Crear un nuevo bot usando el comando /newbot
y seguir las instrucciones para obtener el token de API necesario.
2. Configuración del ESP32
Configurar el entorno de desarrollo para programar el ESP32, asegurándose de tener las librerías WiFi.h
y HTTPClient.h
instaladas.
3. Código para Enviar Mensajes a Telegram
Este código puede compilarse para enviar un mensaje desde el ESP32 a Telegram. Es importante reemplazar YOUR_BOT_TOKEN y YOUR_CHAT_ID con tu token y ID de chat de Telegram.
#include <WiFi.h>
#include <HTTPClient.h>
// Configuración de la red WiFi
const char* ssid = "tuSSID"; // Nombre de tu red WiFi
const char* password = "tuPassword"; // Contraseña de tu red WiFi
// Configuración del bot de Telegram
String botToken = "YOUR_BOT_TOKEN"; // Reemplaza con tu token de bot
String chatID = "YOUR_CHAT_ID"; // Reemplaza con tu ID de chat
void setup() {
Serial.begin(115200);
// Conexión a la red WiFi
conectarWiFi();
// Enviar mensaje de prueba a Telegram
enviarMensaje("ESP32 conectado a Telegram!");
}
void loop() {
// Aquí se puede agregar la lógica para enviar más mensajes según sea necesario
}
void conectarWiFi() {
Serial.print("Conectando a ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi conectado");
Serial.print("IP asignada: ");
Serial.println(WiFi.localIP());
}
void enviarMensaje(String mensaje) {
if(WiFi.status() == WL_CONNECTED) { // Verificar la conexión WiFi
HTTPClient http;
String url = "https://api.telegram.org/bot" + botToken + "/sendMessage?chat_id=" + chatID + "&text=" + mensaje;
http.begin(url); // Iniciar la conexión HTTP
int httpCode = http.GET(); // Realizar la solicitud GET
if(httpCode > 0) {
String payload = http.getString();
Serial.print("Mensaje enviado, respuesta del servidor: ");
Serial.println(payload);
} else {
Serial.print("Error en la solicitud HTTP: ");
Serial.println(http.errorToString(httpCode).c_str());
}
http.end(); // Finalizar la conexión HTTP
} else {
Serial.println("Error: No conectado a WiFi");
}
}
Comentarios
4 respuestas a «Enviar Mensajes desde un ESP32 a Telegram»
Y COMO AVERIGUO EL CHAT_ID?
Para averiguar el chat_id en Telegram, sigue estos pasos:
Abrir un chat con el bot: Primero, debes haber creado o agregado un bot en Telegram usando BotFather. Una vez lo tengas, envíale un mensaje para iniciar la conversación.
Obtener el chat_id: Puedes hacerlo de dos formas:
A través de la API de Telegram: Abre tu navegador e ingresa la siguiente URL, reemplazando YOUR_BOT_TOKEN por el token de tu bot (proporcionado por BotFather):
bash
https://api.telegram.org/botYOUR_BOT_TOKEN/getUpdates
Cuando alguien envíe un mensaje al bot, recibirás una respuesta en formato JSON que incluye el chat_id de la conversación. Busca un fragmento como este:
json
«chat»: {
«id»: 123456789,
«first_name»: «Nombre»,
«last_name»: «Apellido»,
«type»: «private»
}El valor 123456789 es el chat_id.
ALTERNATIVA: Usar bots de terceros: También puedes usar bots de terceros como IDBot. Simplemente envíales el comando /getid, y te proporcionarán tu chat_id directamente.
Me parece que esto está bastante incompleto. No tiene sentido enviar mensajes a Telegram desde un ESP32 sin usar una librería específica como UniversalTelegramBot.h, que para eso están. Usar HTTPClient directamente es reinventar la rueda y es propenso a errores. Lo correcto sería usar las herramientas que ya existen en vez de hacer todo a mano.
Gracias por el aporte Ramón , pero en realidad, usar HTTPClient directamente es una opción perfectamente válida y muchas veces más ligera que depender de una librería adicional como UniversalTelegramBot.h, que arrastra bastante más memoria y complejidad innecesaria para casos simples.
Responder a Ramón Cotillas Cancelar la respuesta