#include <CTBot.h>
#include <DHTesp.h>
#define ldrPin 32
CTBot bot_didactico;
String TOKEN="6173066060:AAEBmip_7DGXs_5ILm2aatokDi3ImiALDes";
String SSID="Wokwi-GUEST";
String PSWD="";
int pinDHT = 15;
DHTesp dht;
String t="";
String h="";
String l="";
float b=0;
const float GAMMA = 0.7;
const float RL10 = 50;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
bot_didactico.wifiConnect(SSID, PSWD);
bot_didactico.setTelegramToken(TOKEN);
if (bot_didactico.testConnection()){
Serial.println("Conectado exitosamente al telegram");
}
else {
Serial.println("No hay conexion con telegram");
}
dht.setup(pinDHT, DHTesp::DHT22);
pinMode(ldrPin, INPUT);
}
void loop() {
TBMessage mensaje;
if(bot_didactico.getNewMessage(mensaje)){
if(mensaje.text.equalsIgnoreCase("temperatura")){
TempAndHumidity data = dht.getTempAndHumidity();
//Mostramos los datos de la temperatura
Serial.println("Temperatura: " + String(data.temperature, 2) + "°C");
t= String (data.temperature);
b= float(data.temperature);
bot_didactico.sendMessage(mensaje.sender.id, "Mi temperatura es de " + t + "°C");
if((b>21.00) && (b<40)){
bot_didactico.sendMessage(mensaje.sender.id,"No hay de que preocuparse en cuanto a mi temperatura. ¡Es la adecuada!");
}
else{
if(b<16.00){
bot_didactico.sendMessage(mensaje.sender.id,"Es muy baja. ¡Tengo frio!");
}
if(b>40.00){
bot_didactico.sendMessage(mensaje.sender.id,"¡Auxilio!. Es muy alta. ");
}
}
}
else{
if(mensaje.text.equalsIgnoreCase("humedad")){
TempAndHumidity data = dht.getTempAndHumidity();
h= String(data.humidity);
//Mostramos los datos de la humedad
Serial.println("Humedad: " + String(data.humidity, 1) + "%");
bot_didactico.sendMessage(mensaje.sender.id, "Mi humedad es de " + h + "%");
}
else{
if(mensaje.text.equalsIgnoreCase("luz")){
int valorldr=analogRead(ldrPin);
float voltage = valorldr / 1024. * 5;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
Serial.print("Valor de lectura analogica: ");
Serial.println(valorldr);
Serial.print("Voltaje: ");
Serial.println(voltage);
Serial.print("Resistencia: ");
Serial.print(resistance);
Serial.println("Ω");
//Mostramos los datos de la iluminacion
Serial.print("Iluminacion: ");
Serial.println(lux);
l=String(lux);
bot_didactico.sendMessage(mensaje.sender.id,"La iluminacion en este momento es de " + l);
}
else{
Serial.println("Hay un nuevo mensaje en el chat!");
/*Serial.println("Enviado por: ");
Serial.println(mensaje.sender.id);*/
Serial.println("Mensaje leido: ");
Serial.println(mensaje.text);
bot_didactico.sendMessage(mensaje.sender.id,"¡Hola! Soy tu planta. Espero me cuides y estes al tanto de mí.");
}
}
}
}
delay(3000);
}