Controlando seu projeto com Telegram

Imagine uma automação ou projeto que permite você “conversar” com seu Microcontrolador (MCU) e também receber comandos, parece difícil, mas é bem simples. Aprenderemos a usar o Telegram para criar automações e projetos das mais diversas possibilidades e utilidades que estabelece uma comunicação amigável com o MCU. Para essa experiência usaremos o NodeMCU 8266, mas você pode fazer com outros ESPs, tal como os da linha ESP8266 e o ESP32.

 

O Telegram

Podemos fazer desde simples controles de LEDs, ou até uma automação residencial controlada pelo Telegram, já que os BOTs permitem controle total de informações.

 

Usaremos o Telegram pois nos permite criar “BOTs”. Estes BOT’s, são como robôs virtuais e com eles, conseguimos criar uma interface IHM (Interface Homem-Máquina). Este método, permite o fluxo de informações de ambos sentidos (Input e Output), então conseguimos controlar o sistema e também ser notificado pelo sistema.

 

Criando seu Bot no Telegram

1-) Pesquise pelo “BotFather” no menu de pesquisa do Telegram, entre nele e clique em “Começar ou Reiniciar“.

 

 

 

2-) Pelo BotFater podemos criar novos Bots, configura-los e muito mais. Para criar, faça:

  1. Digite “/newbot“.
  2. Digite o nome do seu novo Bot.
  3. Digite o usuário do Bot com a terminação “bot“.

 

3-) Logo após a criação, o BotFater enviará uma mensagem com o link do Bot e logo abaixo o Token do Bot. Você pode clicar neste link para abrir a conversa com seu Bot ou pode pesquisa-lo futuramente.

Você precisa desse Token para inserir no código!

 

Mãos a obra

Componentes necessários

Para este projeto, usaremos o ESP8266 (versão NodeMCU). Entretanto, pode ser feito igualmente com o ESP32, sendo necessário alguns pequenos ajustes.

  • 1x – ESP8266. (Usaremos o NodeMCU).
  • 1x – Telegram no Celular.
  • 1x – LED. (Usaremos o LED OnBoard da placa).

– Biblioteca utilizada

Clique AQUI para ir a pagina de download da biblioteca “UniversalTelegramBot” utilizada.

Alguns usuários relatam erro com a biblioteca “ArduinoJson“.  Caso aconteça com você, será necessário instalar a biblioteca na Arduino IDE.

Para isso vá em “Gerenciador de bibliotecas“, procure pela biblioteca “ArduinoJson“, instale-a e reinicie a Arduino IDE.

– Código do projeto

Não se esqueça de alterar as credenciais do WiFi e também o Token do seu Bot. Sem isso não irá funcionar.

 

Colocando para funcionar

Após a criação do BOT e upload do código, podemos ver funcionando. Veja o BOT respondeu como o esperado aos comandos:

 


Entendendo a fundo

Software

-Função UniversalTelegramBot::sendMessage()

Com esta função, é feito o envio da mensagem para o determinado ID (referente ao ID de quem enviou a mensagem ao Bot). Logo ao iniciar seu BOT, automaticamente é enviado uma mensagem “/START”, e nosso sistema irá responder com o seu ID do Telegram; você pode usar isso para aceitar apenas comandos de seu ID.

 

-Variável id

Toda vez que o Bot receber um novo update (mensagem), irá armazenar o ID da pessoa que enviou a mensagem na variável id.

 

-Variável text

Toda vez que o Bot receber um novo update (mensagem), irá armazenar o texto na variável text.

 

A biblioteca do Telegram permite mais opções interessantes, como por exemplo obter o horário em que a mensagem foi enviada ao Bot! Dê uma olhada na referência da biblioteca.

 

-Função UniversalTelegramBot::getUpdates()

Esta função faz a verificação de novas mensagens, sempre será lido da última (mais recente), para a primeira (mais antiga) mensagem no buffer do Bot. Isto será feito até que se tenha lido todas as mensagens disponíveis então tome cuidado para não travar ou atrasar o resto do seu código!


Desafio

Qualquer pessoa que adicionar seu Bot (basta pesquisar), pode enviar comandos e controla-lo. Você terá que criar algum tipo de “cadeado” para aceitar apenas comandos de pessoas autorizadas. Cada usuário no Telegram tem um ID, então você pode usar isso à seu favor e fazer o sistema aceitar apenas comandos de algumas pessoas.

Fechamento

Podemos facilmente incluir este controle com o Telegram em diversos projetos, permitindo que o mesmo seja controlado à distancia e até mesmo que você seja notificado, como por exemplo um alarme para sua casa que mande mensagem para seu celular ao detectar movimento. As aplicações são imensas, dependendo apenas da sua criatividade. Dúvidas? Sugestões? Críticas? Comente!

Estudante de Engenharia da Computação pela USC, pretende se aprimorar e fazer a diferença nesta imensa área da tecnologia. Apaixonado por IoT, sistemas embarcados, microcontroladores e integração da computação nos mais diversos fins práticos e didáticos.