#include <DHTesp.h>
#include <CTBot.h>
#include "frases.h"
#define LDR_PIN 32
#define LED 2
#define FOTOCELDA 36
#define POTENCIOMETRO 39
CTBot bot_planta;
DHTesp dhtSensor;
String TOKEN = "6226909466:AAFwaYnBCiQKhyCkTVyGyZ4lEmqifr3YbR0";
String SSID = "Wokwi-GUEST";
String PSWD = "";
String Mensaje ="";
int menu ;
const int DHT_PIN = 15;
long tiempo;
void setup() {
Serial.begin(115200);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
bot_planta.wifiConnect(SSID, PSWD);
bot_planta.setTelegramToken(TOKEN);
pinMode(LDR_PIN, INPUT);
pinMode(FOTOCELDA, INPUT);
pinMode(POTENCIOMETRO, INPUT);
if (bot_planta.testConnection()){
Serial.println (" Conectado correctamente con Telegram ");
Serial.println ("---");
pinMode(LED,HIGH);
}else{
Serial.println ( "No Conecto Correctamente con Telegram");
Serial.println ("---");
}
}
void loop() {
TBMessage mensaje;
// Manejo recibido de Mensajes con el Both //
if(bot_planta.getNewMessage(mensaje)){
Serial.println( "Hay un nuevo mensaje en el chat de Telegram ");
Serial.println("Enviado por:" + String (mensaje.sender.id));
Serial.println("Contenido Mensaje:" + String (mensaje.text));
Serial.println("---");
}
/* int cont1 = cont1+1;
Serial.println(cont1);
while (cont1<=1){
Mensaje = "Hola soy flofy";
bot_planta.sendMessage(mensaje.sender.id,Mensaje);
Mensaje = "Menu \n1. Resume tu estado actual \n2. opcion 2 \n3. Opcion 3 ";
bot_planta.sendMessage(mensaje.sender.id,Mensaje);
bot_planta.getNewMessage(mensaje);
menu = mensaje.text.toInt();
Serial.println(menu);
switch (menu){
case 1:
Mensaje = "Toy bien";
bot_planta.sendMessage(mensaje.sender.id,Mensaje);
break;
case 2:
Mensaje = "opcion 2";
bot_planta.sendMessage(mensaje.sender.id,Mensaje);
break;
case 3:
Mensaje = "Opcion 3";
bot_planta.sendMessage(mensaje.sender.id,Mensaje);
break;
}
}
*/
// Sensor de Luz //
int Fotocelda = analogRead(FOTOCELDA)/4;
Serial.println ("El valor analogico de la Fotocelda es:"+ String (Fotocelda));
Serial.println("---");
//Condiciones de sensor de Luz //
if (Fotocelda >= 39 && Fotocelda <= 180){
Mensaje = "Esta luz mejora mi estado de animo";
bot_planta.sendMessage(mensaje.sender.id,Mensaje);
} else {
if (Fotocelda < 39){
Mensaje = (escogerMensaje(FrasesPocaLuz));
bot_planta.sendMessage(mensaje.sender.id,Mensaje);
} else {
if (Fotocelda > 180){
Mensaje = (escogerMensaje(FrasesMuchaLuz));
bot_planta.sendMessage(mensaje.sender.id,Mensaje);
}
}
}
// Sensor de Humedad de la tierra//
int valorHumedad = analogRead(POTENCIOMETRO)/4;
int Humedad = map (valorHumedad, 0, 1023, 100, 0);
Serial.println ("la humedad a tierra es de:" + String (Humedad)+ "%");
Serial.println ("---");
// Condiciones de sensor de humedad de la tierra //
if (Humedad >= 60 && Humedad <= 80){
Mensaje = "";
bot_planta.sendMessage(mensaje.sender.id,Mensaje);
} else {
if (Humedad < 60){
Mensaje = (escogerMensaje(FrasesPocaHumedad));
bot_planta.sendMessage(mensaje.sender.id,Mensaje);
} else {
if (Humedad > 80){
Mensaje = (escogerMensaje(FrasesMuchaHumedad));
bot_planta.sendMessage(mensaje.sender.id,Mensaje);
}
}
}
// Sensor de Temperatura y Humedad Ambiente //
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("La temperatura es de: " + String(data.temperature, 2) + "°C");
Serial.println("---");
Serial.println("La humedad ambiente es de: " + String(data.humidity, 1) + "%");
Serial.println("---");
// Condiciones Sensor de Temperatura Ambiente //
if(data.temperature >=15 && data.temperature <=20){
Mensaje = "";
bot_planta.sendMessage(mensaje.sender.id,Mensaje);
}else {
if (data.temperature < 15) {
Mensaje = (escogerMensaje(FrasesDeFrio)) ;
bot_planta.sendMessage(mensaje.sender.id,Mensaje);
} else {
if (data.temperature > 20){
Mensaje = (escogerMensaje(FrasesDeCalor)) ;
bot_planta.sendMessage(mensaje.sender.id,Mensaje);
}
}
}
// Condiciones Sensor de humedad Ambiente //
if(data.humidity >= 40 && data.humidity <= 60){
Mensaje = "";
bot_planta.sendMessage(mensaje.sender.id,Mensaje);
}else{
if (data.humidity< 40 ){
Mensaje = (escogerMensaje(FrasesPocaHumedadAM)) ;
bot_planta.sendMessage(mensaje.sender.id,Mensaje);
} else {
if (data.humidity >60){
Mensaje = (escogerMensaje(FrasesMuchaHumedadAM));
bot_planta.sendMessage(mensaje.sender.id,Mensaje);
}
}
}
delay(1500);
}
String escogerMensaje(String *arreglo){
int indice = random(0, 6);
return arreglo[indice];
}