Estoy en un proyecto donde leo datos por serial de un microcontrolador PIC y luego los envía a una nube, el proyecto es funcional no hay ningún problema con eso, mi preocupación es que al momento de que apago el circuito y luego lo enciendo, el ESP32 parece como si estuviera dormido porque no se conecta al WiFi, tengo que apretar el botón de reset para que recién empiece a correr el programa, pienso que esta dormido porque cuando conecto el circuito a una fuente de laboratorio mide una determinada corriente de bajo valor, y luego de reiniciarlo la corriente aumenta unos 70 mA y recién empieza a funcionar el programa, ¿A qué creen que se deba ese problema?
Ya que has preguntado en la sección de software ¿Has revisado por Serial que tal el WiFi.status() que se usa con un while en el setup()? No sabemos cómo estableces la conexión, pero si al hacer reset funciona obvio no tiene nada que ver con una hibernación, la cual entendemos que no la has hecho, y solas las placas no hacen esto.
Ok, no debí preguntar en esta sección lo cambiare ahora tienes razón, gracias, pero me causa muchos problemas esto, el WiFi.status no me sirve aquí porque utilizo la función para saber el estado de la conexión y saber si continuar con el programa o no, adjuntare mi código, es super claro, por cierto, el SSID y la contraseña los recibo del PIC, el PIC recibe datos por una pantalla y el PIC envia esos datos al ESP32, el punto es que siempre que apago el circuito y lo enciendo nuevamente, tengo que darle reset para que funcione, sino, el ESP32 no ejecuta nada y eso me causa muchos problemas, si alguien puede ayudarme estaría muy agradecido, adjunto parte de mi código por si es de utilidad
if((wifiString == "won") && escribe) //Si el PIC envia un "won" (enciende wifi) y escribir = 1
{
if(WiFi.status() != WL_CONNECTED) //Si no esta conectado
{
for(int i = 0; i < 10; i++) //Intentara conectarse 10 veces
{
if(WiFi.status() != WL_CONNECTED) //Se conecto?
{
WiFi.begin(ssid, password); //Trato de conectarme al WiFi
delay(3000); //Espero 3 segundo a que se conecte
}
else //Ya se conecto
{
wifi_STATUS = true; //Coloco el STATUS del wifi como conectado
break; //Rompo el for para que no siga intentando conectarse
}
}
if(wifi_STATUS == true) //Evalua el estado del WiFi
{
Serial2.write('1'); //Le responde al PIC que ya se conecto
Serial.println("CONECTADO!!");
}
else
{
Serial2.write('2'); //Le responde al PIC que no se pudo conectar
Serial.println("FALLO CONEXION!!");
}
}
if(wifi_STATUS == true)
{
// FUNCIONES DE ENVIO DE DATOS POR WIFI
// ...
}
}
Utilizo otro wifi_status por la necesidad de responderle al PIC siempre que el solicite conectarse o no, ademas solo envia datos una vez, mejor tener otro wifi_status que me permita tener ese control, en fin, si alguine puede ayudarme estaria agradecido.
Primero lee las Normas del foro y postea todo tu código no una parte.
Tenemos que ver que ocurre en general.
Otra cosa, hablas de PIC y de un ESP32 asi que coloca un esquema de como estan comunicados y conectados electricamente.
Moderador:
Cuando hables de cualquier cosa que no sea Arduino, debes hacerlo en la sección Microcontroladores.
Y en los títulos no pongas nada de Ayuda por favor, soy novato, etc, etc. son títulos inútiles. Lee el punto 3 de las normas.
Mira amigo, honestamente no estoy para estas cosas, no quine te creas que eres pero si solo vas a colocar esas cosas, sigue tu camino y responde los foros a quine te aguante, abstente de seguir respondiendo.