#include <BluetoothSerial.h>
#include "SD.h"
#include <DHTesp.h>

#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif
int paco;
BluetoothSerial SerialBT;

DHTesp dht;
int pinDHT = 15;
int i;
//definicion de archivos sd
#define p_SD 5
File archivo;
String datos;

void setup() {
/////bt
  SerialBT.begin("pablo"); // Nombre del dispositivo Bluetooth
  Serial.println("The device started, now you can pair it with bluetooth!");
////sensor
  dht.setup(pinDHT, DHTesp:: DHT22);
  Serial.begin(115200);
  ////crear el archivo
  if(!SD.begin(p_SD)){
    Serial.println("Error modulo SD");
    ESP.restart();
  }
  Serial.println("Modulo SD inicializado");
archivo= SD.open("/dth22.txt", FILE_WRITE);

if(!archivo){
  Serial.println("Error al crear archivo");
  return;
}
archivo.println("dth22");
archivo.close();
}

void loop() {
  //////promedio de los sensores
    float sumaT=0;
    float sumaH=0;
    int nm =10;
    for(i=0; i<nm; i++){
        TempAndHumidity data = dht.getTempAndHumidity();
        sumaT +=data.temperature;
        sumaH +=data.humidity;
      delay(500);
    }
  float promedioT = sumaT / nm;
  float promedioH = sumaH / nm;
    /////escribir en el archivo
  archivo=SD.open("/dth22.txt", FILE_APPEND);
  if(archivo){
    datos=String("Promedio de Temperatura: " + String(promedioT, 2) + "°C");
    archivo.println(datos);
    datos=String("Promedio de Humedad: " + String(promedioH, 2) + "%");
    archivo.println(datos);
    archivo.close();
    delay(1000); 
  }
  delay(300);
    /////iniciador del bt
  if (SerialBT.available()){
      paco=SerialBT.read();
      Serial.print("recibido: ");
      Serial.println(paco);

      if(paco=='1'){
          ////leer el archivo
          archivo = SD.open("/dth22txt");
          if (archivo) {
            while (archivo.available()) {
               SerialBT.write(archivo.read());
            }
            archivo.close();
          } else {
            Serial.println("Error al abrir el archivo");
          }
          delay(1000); // Leer archivo cada segundo
        }
      delay(20);
      }
}