#include <Wifi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h> // Universal Telegram Bot Library written by Brian Lough: https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot
#define LED 2
const char* SSID = "Wokwi-GUEST";
const char* password = "";
#define BOTtoken "7140797400:AAFAccuuiMSUmd6sFpFoR1xbyvzxJaTeiqM" // your Bot Token (Get from Botfather)
#define CHAT_ID "660118994"
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);
int botRequestDelay = 1000;
unsigned long lastTimeBotRan;
void setup(void){
Serial.begin(115200);
Serial.println();
Serial.println("Iniciando sistema....");
pinMode(LED, OUTPUT);
WiFi.mode(WIFI_STA);
WiFi.begin(SSID, password);
client.setCACert(TELEGRAM_CERTIFICATE_ROOT);
Serial.print("Connecting to WiFi..");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println();
Serial.println("Conectado");
}
void handleNewMessages(int numNewMessages) {
Serial.println("handleNewMessages");
Serial.println(String(numNewMessages));
for (int i=0; i<numNewMessages; i++) {
String chat_id = String(bot.messages[i].chat_id);
String text = bot.messages[i].text;
Serial.println(text);
String from_name = bot.messages[i].from_name;
if (text == "/start") {
String msg_bienvenida = "Bienvenido, " + from_name + ".\n";
msg_bienvenida += "Use los siguiente comandos para ejecutar una acción.\n\n";
msg_bienvenida += "/reporte : Para solicitar los datos del Ambiente Artificial.\n";
bot.sendMessage(chat_id, msg_bienvenida, "");
}
if (text == "/reporte") {
String msg_reporte = "**REPORTE**\n\n";
msg_reporte += "Temperatura: \n";
msg_reporte += "Humedad Atmosférica: \n";
msg_reporte += "Humedad Del Suelo: \n";
msg_reporte += "Calidad Del Aire: \n";
bot.sendMessage(chat_id, msg_reporte, "");
}
if (text == "/opciones") {
String msj_opciones = "[[\"/start\", \"/opciones\"],[\"/reporte\"]]";
bot.sendMessageWithReplyKeyboard(chat_id, "Seleccione una opcion:", "", msj_opciones, true);
}
}
}
void loop() {
if (millis() - lastTimeBotRan > botRequestDelay) {
int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
Serial.println("Nuevos Mensajes : " + String(numNewMessages));
while(numNewMessages) {
Serial.println("No hay respuesta a ese comando");
handleNewMessages(numNewMessages);
numNewMessages = bot.getUpdates(bot.last_message_received + 1);
}
lastTimeBotRan = millis();
}
}