Escolar Documentos
Profissional Documentos
Cultura Documentos
º 5
CTeSP Energias Renováveis e Infraestruturas Elétricas e de Telecomunicação
UC: Tecnologias da Informação e Comunicação
1º Ano - 2º Semestre – 2021/2022
Participante:
1
Índic
e
Parte 1: Descrição do trabalho............................................................................................................. 3
1.1 Explicar o objetivo do trabalho........................................................................................................3
1.2 Explicar os componentes usados...................................................................................................3
1.3 Explicar a função Telegram neste projeto.......................................................................................4
Parte 2: Criar um Bot de Telegram.......................................................................................................4
2.1 Explicar a criação de um Bot Telegram (Mostrar evidência)...........................................................4
Parte 3: Upload do código do ESP32...................................................................................................5
3.1 Copiar e compilar o código IDE......................................................................................................5
3.2 Credenciais de rede (SSID e senha)...............................................................................................6
3.3 Adicionar Bibliotecas necessárias...................................................................................................7
Parte 4 – Controlar as saídas usando o Telegram – ESP32.................................................................7
4.1 Comentar o resultado (Mostrar evidência)......................................................................................7
Conclusão........................................................................................................................................... 14
Referências......................................................................................................................................... 15
2
Descrição do trabalho
1.1 Objetivo do trabalho
Controlar GPIOs ESP32 usando o Telegram.
Enviar uma mensagem ao seu Telegram Bot para definir a saída (Led) em ALTO ou BAIXO.
Usando o ambiente de programação Arduino IDE.
É necessário criar um Bot do Telegram para a placa ESP32. Iniciar uma conversa com o Bot.
Ao enviar a mensagem /led_on para o Bot, a placa ESP recebe a mensagem e liga o GPIO 2,
então o Led liga.
Da mesma forma, quando é enviada a mensagem /led_off então é desativado o GPIO 2 e o
Led desliga.
Também pode ser enviada a mensagem /state para solicitar o estado atual do GPIO. Quando
o ESP recebe essa mensagem, o bot responde com o estado atual do GPIO.
Por sua vez, ao enviar a mensagem /start é recebida uma mensagem de boas-vindas com os
comandos para controlar a placa ESP32.
ESP32
O ESP32 é uma série de microcontroladores de baixo custo e baixo consumo de energia. Também é
um sistema-em-um-chip com microcontrolador integrado, Wi-Fi e Bluetooth. A série ESP32 emprega
um microprocessador Tensilica Xtensa LX6 com duas variações dual-core e single-core e inclui uma
antena integrada RF tipo balun, amplificador de potência, recetor de baixo ruído amplificado, filtros,
gerenciamento de energia dos módulos. ESP32 foi criado e desenvolvido por Espressif Sistemas,
uma empresa Chinesa com sede em Xangai e é fabricado pela TSMC usando seu processo de
fabricação de 40 nm. Ele é um sucessor do microcontrolador ESP8266.
3
1.3 Função do Telegram neste projeto
O Telegram é um serviço de mensagens instantâneas e voz sobre IP baseado em nuvem. Podemos
instalá-lo facilmente no telemóvel (Android e iPhone) ou computador (PC, Mac e Linux). É gratuito e
sem anúncios. O Telegram permite que se crie bots com os quais podemos interagir. O ESP32 irá
interagir com o bot do Telegram para receber e manipular as mensagens e enviar respostas. Neste
tutorial vamos aprender como usar o Telegram para enviar mensagens para o bot para controlar as
saídas do ESP de qualquer lugar (só é preciso do Telegram e o acesso à internet).
4
Digite /newbot e siga as instruções para criar o bot. Dê-lhe um nome e um nome de usuário.
Se o bot for criado com sucesso, receberá uma mensagem com um link para acessar o bot e
o token do bot. Salve o token do bot porque vamos precisar dele para que o ESP32 possa interagir
com o bot.
5
Figura 7: IDBOT. (Fonte: propriedade)
N figura 7 podemos verificar que qualquer pessoa que conheça o nome de usuário do seu bot pode
interagir com ele. Para garantir que ignoramos mensagens que não são da nossa conta do Telegram
(ou de qualquer usuário autorizado), podemos obter o seu ID de usuário do Telegram. Então, quando
o bot do telegram recebe uma mensagem, o ESP pode verificar se o ID do remetente corresponde ao
seu ID de usuário e lidar com a mensagem ou ignorá-la.
Na conta do Telegram, procure por “IDBot” ou abra este link t.me/myidbot em um telemóvel.
Iniciando uma conversa com esse bot e digite /getid . receberemos uma resposta de volta com o ID
de usuário. Salvamos esse ID de usuário, pois precisaremos dele posteriormente neste tutorial.
6
Parte 3: Upload do código do ESP32
3.1 Copiar e compilar o código IDE
//********************************************************************
// FICHA-5
// ESP32 Web Server – Telegram
// Controlo do LED incorporado no ESP32
//******************************************************************
#ifdef ESP32
#include <WiFi.h> //Ligar ESP32 a uma rede sem fio
#else
#include <ESP8266WiFi.h> //Tambem pode ser usado no ESP8266
#endif
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h> //Biblioteca TelegramBot
#include <ArduinoJson.h>
//-------------------------------------------------------------------------
//Definir a rede sem fios
const char* ssid = "ERIT";
const char* password = "0123456789";
#ifdef ESP8266
X509List cert(TELEGRAM_CERTIFICATE_ROOT);
#endif
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);
7
// Checks for new messages every 1 second.
int botRequestDelay = 1000;
unsigned long lastTimeBotRan;
if (text == "/start") {
String welcome = "Welcome, " + from_name + ".\n";
welcome += "Use the following commands to control your outputs.\n\n";
welcome += "/led_on to turn GPIO ON \n";
welcome += "/led_off to turn GPIO OFF \n";
welcome += "/state to request current GPIO state \n";
welcome += "/temperatura to request internal temperature of esp32 \n";
bot.sendMessage(chat_id, welcome, "");
}
8
if (text == "/led_on") {
bot.sendMessage(chat_id, "LED state set to ON", "");
ledState = HIGH;
digitalWrite(ledPin, ledState);
}
if (text == "/led_off") {
bot.sendMessage(chat_id, "LED state set to OFF", "");
ledState = LOW;
digitalWrite(ledPin, ledState);
}
if (text == "/state") {
if (digitalRead(ledPin)){
bot.sendMessage(chat_id, "LED is ON", "");
}
else{
bot.sendMessage(chat_id, "LED is OFF", "");
}
}
}
}
void setup() {
Serial.begin(115200);
#ifdef ESP8266
configTime(0, 0, "pool.ntp.org"); // get UTC time via NTP
client.setTrustAnchors(&cert); // Add root certificate for api.telegram.org
#endif
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, ledState);
// Connect to Wi-Fi
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
#ifdef ESP32
9
client.setCACert(TELEGRAM_CERTIFICATE_ROOT); // Add root certificate for api.telegram.org
#endif
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi..");
}
// Print ESP32 Local IP Address
Serial.println(WiFi.localIP());
}
void loop() {
if (millis() > lastTimeBotRan + botRequestDelay) {
int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
while(numNewMessages) {
Serial.println("got response");
handleNewMessages(numNewMessages);
numNewMessages = bot.getUpdates(bot.last_message_received + 1);
}
lastTimeBotRan = millis();
}
10
Figura 10: Bibliotecas a utilizar. (Fonte: propriedade)
O LED /led_on deve ligar e /led_off deve desligar de acordo com o que for pedido.
11
Figura 12: acionamento da LED.
Figura 13: Serial Monitor a dar informação do LED do ESP32. (Fonte: propriedade)
12
Conclusão
Neste trabalho prático a experiência foi bem-sucedida, porque consegui acender o LED do ESP32,
mas também tive alguns problemas técnicos em inserir a placa ESP32 no Arduíno UNO para
acender o LED do ESP.
Aprende a configura o Arduíno para os diferentes efeitos o que na qual expandi-o meu conhecimento
no contexto do Arduíno associado ao ESP32.
13
Referencias:
randomnerdtutorials.com -
https://randomnerdtutorials.com/telegram-control-esp32-esp8266-nodemcu-outputs/ acedido a 7 de
abril de 2022
mundodaeletrica.com -
https://www.mundodaeletrica.com.br/o-que-e-um-led/ acedido 7 de abril de 2022
https://i0.wp.com/randomnerdtutorials.com/wp-content/uploads/2020/07/ESP32-ESP8266-
NodeMCU-Telegram-Control-Outputs-Overview.png?
resize=828%2C561&quality=100&strip=all&ssl=1
14