ยกTu carrito estรก actualmente vacรญo!
Enviar Mensajes desde un ESP32 a Telegram

๐Madrid | 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
5 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.
-
-
ยฟHubo que configurar algo especial para WiFiClientSecure (como certificados) o con HTTPClient alcanza para trabajar sobre HTTPS con Telegram?
Responder a SUAREZ Cancelar la respuesta