// Connect
Serial.printf("[WIFI] Connecting to %s ", WIFI_SSID); // <== ESTO SE EJECUTO
WiFi.begin(WIFI_SSID, WIFI_PASS);
// Wait
while (WiFi.status() != WL_CONNECTED) {
Serial.print("."); // <== ESTO SE ESTA VIENDO
delay(100);
}
El ultimo comentario es el que dice que no se ha conectado, cuando lo haga, entonces no aparecerán los .....
Revisa SSID y password
Capi666:
¿Cómo puedo saber en que pata del pulsador tengo que soldar la salida del ESP?
Toma un multimetro y mide la resistencia entre las patas sin apretar botón y con apretar el botón. Así puedes encontrar las patas correctas.
Pero quita antes las pilas del mando.
Si revisas el código en grande, se puede ver que se conecta y aparece [WIFI] pero falta el resto de "Conexión realizada con éxito". Al final era un problema de los PINs, estaba usando el PIN D9 y D10; los he quitado y ya sale todo...
ElEspanol:
Toma un multimetro y mide la resistencia entre las patas sin apretar botón y con apretar el botón. Así puedes encontrar las patas correctas.
Pero quita antes las pilas del mando.
Hola,
He encontrado la pata negativa, donde se supone que debe ir la salida del ESP; ¿correcto? Pero he simulado eso haciendo un empalme con un cable conectando directamente al positivo de la pila y el botón no se enciende; ¿porque?
Hola @Capi666, yo te respondí (ver post#1) porque en tu imagen inicial solo se ven los ...... tipico cuando se busca WIFI y no se encuentra o no conecta.
El código no lo vi, porque en este foro esperamos que los códigos se posteen aquí.
Ahora bien, tu problema puede deberse a que tarda en conectarse ya que nos confirmas que si lo hace.
Cuando salga de la conexión deberías tener un
Serial.println();
para que en el monitor serie pases de ............................ a la siguiente linea.
No se si eso te resolverá el problema
Me he mirado por encima el instructable. Esta bastante mal hecho en asuntos basicos. Solo intenta conectar en el setup(). Muchas veces los ESP no quieren conectar. Por eso hay que contar el tiempo y después de tantos segundos sin exito resetear el uC. Y luego, en loop(), también hay que comprobar si esta conectado y si no, después de tantos segundos sin conexión, resetear.
Y como último, con el delay el uC bloquea y no se puede cancelar el comando y parar la persiana.
@ElEspanol
Que fue lo que yo pensé, pero resulta que el OP dice que si se conecta.
Como el titulo era "Error Monitor Serie" me pareció que la cosa venía por ahi.
Son los primeros posts del OP, se ha dado de alta en el foro hace 3 días. Por lo tanto supongo que aún no tiene mucha experiencia. Por eso siempre esta bien, explicar un poco más y que ya desde el principio haga mejor. Porque si no, terminamos con tutoriales y instructables como este.
y en el próximo paso tiene que incluir OTA en sus sketches. Porque OTA y una rutina para mantener la conexión wifi es básico si se trabaja con ESP.
Muchas gracias a los dos... Al decir que si habías mirado el código me refería a la imagen, porque era curioso, si conectaba pero no salia todo el contenido que había dentro del println, sólo la primera palabra.
Al final el problema fue que estaba usando el D9 y D10 y parece que no le gustaba.
Donde tengo ahora el problema es en donde y como soldar la salida del PIN del ESP a una de las patas del botón del mando... He probado de todo y no consigo que se simule una pulsación, se OS ocurre algo?
Para comenzar tu mando tiene una masa o GND y luego tiene el otro lado del pulsador.
Lo primero que debes hacer es identificar GND. Retira las baterias que tenga.
Usando un multimetro y con el selector en OHMS o Resistencia elije la escala mas baja, generalmente 200.0 , coloca la punta negativa en el termina (-) y busca aquel terminal del pulsador que te de lo mas proximo a 0. Tal vez no sea 0.0 y leas 0.3 lo que estará bien.
Luego revisa el resto de los otros 3 terminales del mismo pulsador. 1 será igual que el que acabas de medir y los otros daran resultados diferentes.
Los diferentes son el extremo que debes usar para accionar el ESP, pero antes hay que verificar la tensión del control remoto cuando pulses. No se si tienes 1 o 2 baterías.
Con 1 bateria no creo que sea suficiente, con dos si.
Tienes que conectar gnd del esp con el gnd del mando también.
¿Que voltaje mides entre las patas del botón si no esta apretado?
¿Que voltaje tiene la batería del mando?
Si,
Parece que el botón está conectado entre gnd y entrada, con pullup.
Entonces p.e. Cojes el GPIO2 y lo conectas al +pin del mando.
Con digitalWrite(2, LOW) “apretas” el botón, con digitalWrite(2, HIGH) desactivas el botón.
Conecta una led de control con su resistencia entre 3,3V y el GPIO2, así verás Si tu sketch trabaja bien.
Nada, al final he usado optó acopladores para hacer activar el botón, la señal directa sobre una pata era imposible
Por otra parte, arriba me comentas que el código esta bastante mal hecho en dos aspectos:
Solo intenta conectar en el setup() --> ¿si en el loop hago un if que compruebe si esta conectado o no se solucionaría? ¿constantemente ese if o por tiempo? ¿cómo reseteo el uC?
Con el delay el uC bloquea y no se puede cancelar el comando y parar la persiana --> no entiendo esto.
Mi última versión de código:
void loop() {
// Nos quedamos esperando peticiones todo el tiempo...
fauxmo.handle();
// This is a sample code to output free heap every 5 seconds
// This is a cheap way to detect memory leaks
static unsigned long last = millis();
if (millis() - last > 5000) {
last = millis();
Serial.printf("[MAIN] Free heap: %d bytes\n", ESP.getFreeHeap());
}
if (estadoDispositivos[0]==true) { // Persiana
Serial.println("ENTRO");
delay(1000);
Serial.println("DESACTIVO");
digitalWrite(PIN_1, LOW);
estadoDispositivos[0] = false;
}
...
...
}
void wifiSetup() {
// Configuramos modo de wifi (estación)
WiFi.mode(WIFI_STA);
// Realizamos la conexión
Serial.println ();
Serial.printf("[WIFI] Conectando con %s ", WIFI_SSID);
Serial.println();
WiFi.begin(WIFI_SSID, WIFI_PASS);
// Esperamos a que la conexión esté lista
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(1000);
}
// Conexión realizada
Serial.println("[WIFI] Conexión realizada con éxito");
Serial.println();
Serial.printf("[WIFI] Modo estación, SSID: %s, Dirección IP asignada: %s\n", WiFi.SSID().c_str(), WiFi.localIP().toString().c_str());
Serial.println();
}