Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Intenção da Aula
Criar um bot no ESP8266/ESP32 para servir
de contato no Telegram.
Modificar/verificar o estado de um relê e
verificar a temperatura e umidade de acordo
com mensagens que enviamos para ele.
Demonstração
Seu e-mail
Em www.fernandok.com
forum.fernandok.com
Instagram
fernandok_oficial
Telegram
fernandok_oficial
6
Montagem
Atualizar o core do ESP8266
Em caso de problemas com o ESP8266, na IDE do Arduino vá em:
Ferramentas->Placa->Gerenciar de Placas...
Atualize o ESP8266 (no caso utilizamos a versão 2.4.2)
Selecione este
Criando um Bot no Telegram
Clique aqui
Criando um Bot no Telegram
Digite /newbot
Criando um Bot no Telegram
//Estado do relê
int relayStatus = LOW;
void setup()
{
Serial.begin(115200);
void setupWiFi()
{
Serial.print("Connecting to SSID: ");
Serial.println(SSID);
void loop()
{
//Tempo agora desde o boot
uint32_t now = millis();
//Se o tempo passado desde a última checagem for maior que o intervalo
determinado
if (now - lastCheckTime > INTERVAL)
{
//Coloca o tempo de última checagem como agora e checa por mensagens
lastCheckTime = now;
int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
handleNewMessages(numNewMessages);
}
}
TelegramBot.ino
if (text.equalsIgnoreCase(START))
{
handleStart(chatId, bot.messages[i].from_name); //mostra as opções
}
TelegramBot.ino
else if (text.equalsIgnoreCase(LIGHT_ON))
{
handleLightOn(chatId); //liga o relê
}
else if(text.equalsIgnoreCase(LIGHT_OFF))
{
handleLightOff(chatId); //desliga o relê
}
else if(text.equalsIgnoreCase(CLIMATE))
{
handleClimate(chatId); //envia mensagem com a temperatura e umidade
}
else if (text.equalsIgnoreCase(STATS))
{
handleStatus(chatId); //envia mensagem com o estado do relê, temperatura e umidade
}
else
{
handleNotFound(chatId); //mostra mensagem que a opção não é válida e mostra as opções
}
}//for
}
TelegramBot.ino
//Se chegou aqui significa que verificou todos os ids e não encontrou no
array
return false;
}
TelegramBot.ino
String getCommands()
{
//String com a lista de mensagens que são válidas e explicação sobre o que
faz
String message = "Os comandos disponíveis são:\n\n";
message += "<b>" + LIGHT_ON + "</b>: Para ligar a luz\n";
message += "<b>" + LIGHT_OFF + "</b>: Para desligar a luz\n";
message += "<b>" + CLIMATE + "</b>: Para verificar o clima\n";
message += "<b>" + STATS + "</b>: Para verificar o estado da luz e a
temperatura";
return message;
}
TelegramBot.ino
String getClimateMessage()
{
//Faz a leitura da temperatura e da umidade
float temperature, humidity;
int status = dht.read2(DHT_PIN, &temperature, &humidity, NULL);
Clique em COMEÇAR
Clique aqui
Interagindo com o Bot no Telegram
38