#include <Arduino.h>
#include <WiFi.h>

#include "SLittleFS.h"
#include "ClaseArchivo.h"
//*************************************************************
// VARIABLE DE SIMULADOR
//*************************************************************
SLittleFS myFS; 
ClaseArchivo sarchivo;
WiFiClient client;


int ConexionWifi;

//*************************************************************
// CONSTANTES
//*************************************************************
int SIN_CONFIGURACION = 0;
int CONECTANDO_SERVICIOS = 1;



//*************************************************************
// VARIABLE
//**************************************************************

String nombreWifi = "";
String ClaveWIfi = "";
String Usuario = "";
String clave = "";


int pinRojo = 2;
int pinVerde = 4;
int PinAzul = 15;
int estado = 0;
int intermitenteCon=0;
bool intermitente=false;







void setup() {

  sarchivo.demo();
  Serial.begin(115200);
  ledEstados();

  // Monta el sistema de archivos LittleFS
  if (!myFS.begin()) {
    Serial.println("¡La inicialización de LittleFS falló!");
    return;
  }
  Serial.println("*****************************************************************************************");
  Serial.println("CARGANDO SISTEMA");
  Serial.println("*****************************************************************************************");
  if (!myFS.exists("/configsys.txt")) {
    Serial.println("El archivo no existe.");
    bool archivo= myFS.open("/configsys.txt", "w");
    if (archivo) {
      Serial.println("Archivo creado.");
      //archivo.close();
    } else {
      Serial.println("Error al crear el archivo.");
    }
  } else {
      //PASO 1 VERIFICAR CONEXION A WIFI
      nombreWifi = sarchivo.leer("nombreWifi");
      ClaveWIfi = sarchivo.leer("ClaveWIfi");
      if (nombreWifi=="Null" and ClaveWIfi=="Null"){
        estado = SIN_CONFIGURACION;
      } else {
        estado = CONECTANDO_SERVICIOS;
      }
      Serial.println("Estado: " + String(estado));
      conectarWIfi();
      estado=3;
      Serial.println("Estado: " + String(estado));
  }
  // Inicialización
}

void loop() {
  ledEstados();
  delay(10);
}

//************************************************************************************************
// FUNCIONES DE PRUEBAS
//************************************************************************************************

void conectarWIfi(){
  // Conéctate a la red Wi-Fi
  WiFi.begin(nombreWifi, ClaveWIfi);
  
  while (WiFi.status() != WL_CONNECTED  && ConexionWifi<10) {
    delay(300);
    ledEstados();
    Serial.println("Conectando a la red Wi-Fi...");
    ConexionWifi++;
  }
  Serial.println("Conexión Wi-Fi establecida.");
}


//************************************************************************************************
//************************************************************************************************


void ledEstados() {
  
  if (estado==0){
    //Color rojo
    analogWrite(pinRojo,255); // Morado
    analogWrite(pinVerde,0); //Azul
    analogWrite(PinAzul, 255); //Amarillo

  } else if (estado==1){
    analogWrite(pinRojo,255); // Morado
    analogWrite(pinVerde,0); //Azul
    analogWrite(PinAzul, 255); //Amarillo
    estado=2;
  }else if (estado==2){
      analogWrite(pinRojo, 0);    // Apagar completamente el rojo
      analogWrite(pinVerde, 0);  // Apagar completamente el verde
      analogWrite(PinAzul, 0);   // Apagar completamente el azul
    estado=1;
  }else if (estado==3){
      analogWrite(pinRojo, 255);    // Apagar completamente el rojo
      analogWrite(pinVerde, 255);  // Apagar completamente el verde
      analogWrite(PinAzul, 0);   // Apagar completamente el azul
  }
  
  delay(10);
}


NOCOMNCVCCGNDINLED1PWRRelay Module