Como enviar mensagens para WhatsApp ou Telegram do ESP32

Como enviar mensagens para WhatsApp ou Telegram do ESP32

Em muitas aplicações de Internet das Coisas (IoT), é necessário enviar alertas ao usuário na forma de mensagens. Normalmente, as mensagens de texto são enviadas via WiFi ou SMS. Mas às vezes as mensagens de texto não estão disponíveis entre dispositivos. Então, e se essas mensagens pudessem ser enviadas via IoT para a conta do WhatsApp ou Telegram de um usuário?

Neste projeto programaremos uma placa ESP32 para comunicar mensagens diretamente para um número de WhatsApp ou conta de Telegram. Usaremos a API Whatabot para ambas as tarefas. Estamos escolhendo o ESP32 porque é uma placa de desenvolvimento WiFi e não requer componentes extras para conectar-se a um ponto de acesso WiFi. Agora, vamos começar.

Componentes necessários
1. ESP32 x1
2. Cabo micro USB para ESP32 x1
3. Smartphone x1

Conexões de circuito
Não há conexões de circuito para este projeto. O que é necessário é uma placa ESP32/ESP8266 e um cabo MicroUSB. O cabo é necessário para carregar o esboço na placa a partir de um computador host. Para se comunicar, você também precisará de um smartphone com SIM ativo e o aplicativo WhatsApp ou Telegram instalado.

API Whatabot
Whatabot é um serviço de terceiros que permite que mensagens em tempo real sejam enviadas via WhatsApp ou Telegram. As mensagens são comunicadas como solicitações HTTP GET de um microcontrolador ou aplicativo.

A API foi projetada especificamente para uso com dispositivos IoT e aplicativos da web. É uma forma fácil e excelente de comunicar mensagens para um número cadastrado ou conta do Telegram. A API opera em tempo real, comunicando mensagens de um microcontrolador para o smartphone do usuário instantaneamente.

Para começar, cadastre seu número de WhatsApp ou conta de Telegram com API através do seu smartphone.

Registrando seu número do WhatsApp
Para registrar seu número do WhatsApp com a API do Whatabot, crie um contato do Whatabot no seu smartphone. O número de contato do Whatabot é +54 9 1123998026. Você também pode registrar seu número do WhatsApp em esse link.

Em seguida, envie esta mensagem para a conta do Whatabot: “Permito que o Whatabot me envie mensagens”.

A API retornará um link para o número de celular fornecido contendo uma chave de API. O link deve ser usado para enviar mensagens para o número do WhatsApp fornecido. Ele contém três variáveis ​​– uma chave de API, uma mensagem de texto e um número de celular.

Bibliotecas necessárias
Em seguida, você precisará instalar as bibliotecas necessárias no Arduino IDE. Este esboço usa as bibliotecas WiFi.h, HTTPClient.h e UrlEncode.h. O WiFi.h e o HTTPClient.h são instalados por padrão.

Para instalar o UrlEncode.h, navegue até Ferramentas->Gerenciar Bibliotecas. Procure por “URLencode”. Role para baixo até a biblioteca URLencode, escrita por Masayuki Sugahara. Instale a biblioteca clicando no botão “instalar”.

Enviando mensagens para um número do WhatsApp
Para enviar uma mensagem padrão do ESP32 para o número do WhatsApp registrado no Whatabot, carregue o seguinte esboço…

#include
#include
#include
const char*ssid = “SSID”;
const char* senha = “SENHA”;
//adiciona +código_país_internacional + número de telefone
String número_móvel = “91***-***-****”;
String api_key = “APIKEY”;
void send_whatsapp_message(String mensagem){
String API_URL = “ api_key + “&text=”+ urlEncode(message) +”&phone=”+mobile_number;
HTTPCliente http;
http.begin(API_URL);

http.addHeader(“Tipo de conteúdo”, “aplicativo/x-www-form-urlencoded”);
int http_response_code = http.GET ;
se (http_response_code == 200){
Serial.print(“Mensagem de Whatsapp enviada com sucesso”);
}
outro{
Serial.println(“Erro ao enviar a mensagem”);
Serial.print(“Código de resposta HTTP: “);
Serial.println(http_response_code);
}
http.end ;
}

configuração vazia {
Serial.begin(115200);

WiFi.begin(ssid, senha);
Serial.println(“Conectando ao ponto de acesso Wi-Fi”);
enquanto(WiFi.status != WL_CONNECTED) {
atraso(500);
Serial.print(“.”);
}
Serial.println(“Conectado ao endereço IP do Wi-Fi: “);
Serial.print(“Endereço IP: “);
Serial.println(WiFi.localIP );
send_whatsapp_message(“Olá, aqui é ESP32!”);
}
loop vazio {
}

Observação: para este esboço, certifique-se de substituir o “SSID” e a “SENHA” fornecidos pelo SSID e chave de rede do seu ponto de acesso WiFi pessoal. Você também deve substituir o número do celular e a chave API pelo seu número registrado do WhatsApp.

O código
O esboço começa com a importação das bibliotecas WiFi.h, HTTPClient.h e UrlEncode.h.

  • WiFi.h é necessário para conectar-se a um ponto de acesso WiFi
  • HTTPClient.h é necessário para processar a solicitação HTTP GET
  • UrlEncode.h é necessário para codificar o URL, de acordo com os padrões da web

A seguir, são declaradas as variáveis ​​para armazenar o SSID e a senha do ponto de acesso WiFi. Em seguida, declaramos as variáveis ​​para armazenar o número do WhatsApp — e a chave API recebida ao registrar o número do celular no Whatabot.

A função send_whatsapp_message é definida e recebe um argumento string. Nesta função, uma variável string é definida de acordo com o link recebido ao registrar o número do WhatsApp na API do Whatabot. A string contém três variáveis ​​de solicitação GET — a chave da API, a mensagem de texto a ser enviada e o número do celular.

A mensagem de texto é definida como o argumento da função e é codificada na URL usando a função urlEncode . Um objeto da classe HTTPClient é instanciado. É usado para iniciar a solicitação HTTP usando o método http.begin (com uma string de URL definida como argumento).

Um cabeçalho HTTP é definido usando o método http.addHeader . Uma variável http_response_code é definida para obter o código de resposta HTTP chamando o método http.GET . Se o código de resposta for 200, significa que a solicitação HTTP foi executada com sucesso e a mensagem do WhatsApp foi enviada. Caso contrário, um código de erro será impresso no console. Uma chamada para http.end encerra o cabeçalho HTTP.

O código para enviar a mensagem (do ESP32 para o número de WhatsApp cadastrado) é escrito na função setup porque deve ser executado apenas uma vez. A função loop permanece vazia.

Na função setup , a taxa de transmissão para comunicação serial é definida como 115200 bps. O WiFi é iniciado usando o método WiFi.begin . O sketch espera até que o WiFi seja conectado antes de continuar.

Assim que o WiFi estiver conectado, o endereço IP do roteador será impresso no console (ou seja, no monitor serial). Uma chamada para send_whatsapp_message é feita com a mensagem fornecida como argumento de string.

O argumento de string para este esboço é: “Olá, aqui é ESP32!” Se a mensagem for enviada com sucesso para o número do WhatsApp, uma mensagem de sucesso será impressa no console.

Resultados
Para executar o código, abra o monitor serial do Arduino IDE e reinicie o ESP32. O esboço é executado uma vez pela diretoria e a mensagem é entregue no número do WhatsApp.

Gerenciando Whatabot para Whatsapp
Se você esquecer sua chave de API, poderá reenviar a mensagem “Eu permito que o Whatabot me envie mensagens” para o número de contato do Whatabot. Você receberá outro link com a chave API.

Se quiser alterar a chave API, você pode enviar a mensagem “Quero atualizar minha apikey” para o número Whatabot e receberá um link com uma nova chave API. E se você quiser excluir sua conta do WhatsApp Whatabot, basta enviar a mensagem “Quero excluir minha conta” para o Whatabot e sua conta do WhatsApp Whatabot será excluída.

Registrando o Telegram na API Whatabot
Conforme mencionado, também é possível enviar mensagens para uma conta do Telegram a partir de um microcontrolador ou aplicativo web usando a API Whatabot. Para fazer isso, primeiro registre sua conta do Telegram na API Whatabot. No aplicativo Telegram, pesquise “@whatabot_bot” (e lembre-se de incluir o símbolo “@”).

Em seguida, envie a mensagem “Eu permito que o Whatabot me envie mensagens” para o número do Whatabot. Em troca, você receberá um link contendo um ID de bate-papo e uma chave de API.

Enviando mensagens para Telegram
Para enviar uma mensagem padrão do ESP32 para a conta do Telegram registrada no Whatabot, carregue o seguinte esboço…

#include
#include
#include
const char*ssid = “SSID”;
const char* senha = “SENHA”;
// adicione ID de bate-papo do Telegram + chave de API
String chat_id = “CHATID”;
String api_key = “APIKEY”;

void send_telegram_message(String mensagem){
String API_URL = “ api_key + “&text=”+ urlEncode(message) +”&chatId=”+chat_id;
HTTPCliente http;
http.begin(API_URL);
http.addHeader(“Tipo de conteúdo”, “aplicativo/x-www-form-urlencoded”);
int http_response_code = http.GET ;
if (http_código_de_resposta == 200){
Serial.print(“Mensagem de telegrama enviada com sucesso”);
}
outro{
Serial.println(“Erro ao enviar a mensagem”);
Serial.print(“Código de resposta HTTP: “);
Serial.println(http_código_de_resposta);
}
http.end ;
}

configuração vazia {
Serial.begin(115200);
WiFi.begin(ssid, senha);
Serial.println(“Conectando ao ponto de acesso Wi-Fi”);
enquanto(WiFi.status != WL_CONNECTED) {
atraso(500);
Serial.print(“.”);
}
Serial.println(“Conectado ao endereço IP Wi-Fi: “);
Serial.print(“Endereço IP: “);
Serial.println(WiFi.localIP );
send_telegram_message(“Olá, aqui é o ESP32!”);
}

loop vazio {
}

Nota: certifique-se de substituir “SSID” e “SENHA” pelo SSID e chave de rede do seu próprio ponto de acesso WiFi. Você também precisará substituir o ID do bate-papo e a chave API de sua própria conta registrada no esboço acima.

Observação: para este esboço, certifique-se de substituir o “SSID” e a “SENHA” fornecidos pelo SSID e chave de rede do seu ponto de acesso WiFi pessoal. Você também deve substituir o ID do chat e a chave API pela sua conta registrada do Telegram.

O código
O esboço para enviar uma mensagem para o Telegram é semelhante ao esboço para enviar uma mensagem para um número do WhatsApp, exceto que ele usa uma URL diferente para a solicitação HTTP.

O esboço começa com a importação das bibliotecas WiFi.h, HTTPClient.h e UrlEncode.h.

  • WiFi.h é necessário para conectar-se a um ponto de acesso WiFi
  • HTTPClient.h é necessário para processar a solicitação HTTP GET
  • UrlEncode.h é necessário para codificar o URL, de acordo com os padrões da web

A seguir, são declaradas as variáveis ​​para armazenar o SSID e a senha do ponto de acesso WiFi. Em seguida, declaramos as variáveis ​​​​para armazenar o ID do chat da conta do Telegram – e a chave de API recebida ao registrar a conta no Whatabot.

A função send_telegram_message é definida e recebe um argumento de string. Na função, uma variável string é definida de acordo com o link recebido ao cadastrar a conta do Telegram na API Whatabot. A string contém três variáveis ​​de solicitação GET — o ID do chat, a chave de API e a mensagem de texto a ser enviada.

A mensagem de texto é definida como o argumento da função e é codificada na URL usando a função urlEncode . Um objeto da classe HTTPClient é instanciado. É usado para iniciar a solicitação HTTP usando o método http.begin (com uma string de URL definida como argumento).

Um cabeçalho HTTP é definido usando o método http.addHeader . Uma variável http_response_code é definida para obter o código de resposta HTTP chamando o método http.GET . Se o código de resposta for 200, isso significa que a solicitação HTTP foi executada com sucesso e a mensagem do Telegram foi enviada. Caso contrário, um código de erro será impresso no console. Uma chamada para http.end encerra o cabeçalho HTTP.

O código para enviar a mensagem (do ESP32 para a conta cadastrada no Telegram) é escrito na função setup porque deve ser executado apenas uma vez. A função loop permanece vazia.

Na função setup , a taxa de transmissão para comunicação serial é definida como 115200 bps. O WiFi é iniciado usando o método WiFi.begin . O sketch espera até que o WiFi seja conectado antes de continuar.

Assim que o WiFi estiver conectado, o endereço IP do roteador será impresso no console (ou seja, no monitor serial). Uma chamada para send_telegram_message é feita com a mensagem fornecida como argumento de string.

O argumento de string para este esboço é: “Olá, aqui é ESP32!” Se a mensagem for enviada com sucesso para a conta do Telegram, uma mensagem de sucesso será impressa no console.

Resultados
Para executar o código, abra o monitor serial do Arduino IDE e reinicie o ESP32. O esboço é executado uma vez pelo quadro e a mensagem é entregue na conta do Telegram.

Gerenciando Whatabot para Telegram
Se você esquecer sua chave de API, poderá reenviar a mensagem “Eu permito que o Whatabot me envie mensagens” para o número de contato do Whatabot. Você receberá outro link com a chave API.

Se quiser alterar a chave API, você pode enviar a mensagem “Quero atualizar minha apikey” para o número Whatabot e receberá um link com uma nova chave API. E se você quiser deletar sua conta do Telegram Whatabot, basta enviar a mensagem “Quero deletar minha conta” para o Whatabot e sua conta do WhatsApp Whatabot será deletada.

Conteúdo Relacionado

Como solucionar problemas comuns do ESP32-CAM
ESP32-CAM é um módulo de câmera compacto que combina...
Qual o papel dos sensores automotivos nos veículos modernos?
Uma rede de sensores é incorporada em todos os...
Como escolher um controlador de e-bike
O controlador do motor é um dos componentes mais...
Um guia para padrões USB de 1.0 a USB4
A evolução dos padrões USB foi fundamental para moldar...
Schurter aprimora série de seletores de tensão com revestimento prateado
A SCHURTER anuncia um aprimoramento para sua conhecida série...
A interface serial PCI fornece conectividade confiável em ambientes extremos
A Sealevel Systems anuncia o lançamento da Interface Serial...
STMicroelectronics expande portfólio de conversão de energia com diodos Trench Schottky de 100 V
A STMicroelectronics introduziu Diodos retificadores Schottky de trincheira de...
O que são Sistemas Globais de Navegação por Satélite (GNSS) e como são usados?
Determinar uma localização precisa é necessário em várias indústrias...
O conversor GaN de 50 W da STMicroelectronics permite projetos de energia de alta eficiência
O novo VIPerGaN50 da STMicroelectronics simplifica a construção de...
Samsung e Red Hat farão parceria em software de memória de próxima geração
A Samsung Electronics, fornecedora de tecnologia de memória avançada,...
Primeiro MPU single-core com interface de câmera MIPI CSI-2 e áudio
O mercado embarcado tem uma necessidade de soluções de...
Decodificação de fluência no motor de indução para melhor desempenho
Você provavelmente já se deparou com o termo 'arrastar'...
Compreendendo os isoladores de suporte em sistemas elétricos
Você provavelmente tem um Isolador de suporte Se você...
Explore Stay Insulator – segurança, instalação e manutenção
Você provavelmente já viu permanecer um isolante sente-se em...
Mais segurança e eficiência com o isolador de manilha
Você provavelmente já viu Isoladores de manilha entronizados em...
Descubra o poder dos relés de travamento para eficiência energética e muito mais
Você provavelmente já passou por situações em que o...
Вернуться к блогу

Комментировать

Обратите внимание, что комментарии проходят одобрение перед публикацией.