#include <WiFi.h>
#include <PubSubClient.h>
#include <UniversalTelegramBot.h>
#include <WiFiClientSecure.h>
// Informações de conexão WiFi e MQTT
#define WIFI_SSID "Bancadas_01"
#define WIFI_PASSWORD "Kits@801"
const char* mqttServer = "broker.app.wnology.io";
const int mqttPort = 1883;
const char* mqttUser = "373b7fff-8264-4683-b311-d7a2083f8954";
const char* mqttPassword = "43b5b00e5f595b59c5caa9e1a831e4ef0dd4f1aac9ac6cde1fadc41b9bed8515";
const char* mqttID = "66e9829eec1f59bf1798e4d7";
// Configuração do Telegram
const char* botToken = "7061326486:AAGu4jrqbl-hfPOgl__ucaaJHXWfsDtjQpc";
const char* chatID = "-1002493561972";
// Inicialização dos clientes WiFi e MQTT
WiFiClient espClient;
PubSubClient client(espClient);
WiFiClientSecure telegramClient;
UniversalTelegramBot bot(botToken, telegramClient);
// Função para conectar ao WiFi
void setupWiFi() {
delay(10);
Serial.println("Conectando ao WiFi...");
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nConectado ao WiFi!");
}
// Função para conectar ao broker MQTT
void reconnectMQTT() {
while (!client.connected()) {
Serial.println("Conectando ao broker MQTT...");
if (client.connect(mqttID, mqttUser, mqttPassword)) {
Serial.println("Conectado ao broker MQTT!");
client.subscribe("Temperatura"); // Subscrição no tópico "Temperatura"
} else {
Serial.print("Falha na conexão. Tentando novamente em 5 segundos...");
delay(5000);
}
}
}
// Callback para processar mensagens recebidas no MQTT
void callback(char* topic, byte* payload, unsigned int length) {
Serial.print("Mensagem recebida no tópico: ");
Serial.println(topic);
String message;
for (int i = 0; i < length; i++) {
message += (char)payload[i];
}
Serial.print("Temperatura recebida: ");
Serial.println(message);
// Enviar mensagem ao Telegram
bot.sendMessage(chatID, "Temperatura recebida: " + message, "");
}
// Configuração inicial
void setup() {
Serial.begin(115200);
setupWiFi();
client.setServer(mqttServer, mqttPort);
client.setCallback(callback);
// Conectar ao Telegram
telegramClient.setInsecure();
Serial.println("Bot do Telegram configurado.");
}
// Loop principal
void loop() {
if (!client.connected()) {
reconnectMQTT();
}
client.loop();
}