WiFiClient no se puede conectar al punto de acceso ESP8266

0

Estoy intentando conectar dos chips ESP8266-01 utilizando uno como punto de acceso y otro en el modo de estación que se conecta al AP. Estoy usando un WiFiClient simple (de los ejemplos) para crear una conexión a un punto de acceso alojado por otro ESP01. No puede conectarse a él.

He intentado usar el WiFi de mi enrutador como punto de acceso y el cliente ESP8266 se conecta bien. Puede solicitar direcciones URL y respuestas de la misma, pero cuando simplemente cambio la configuración a un punto de acceso alojado por un ESP01, falla con un error. ¿Puede ayudarme a identificar por qué falla solo para el punto de acceso ESP8266-01?

Tenga en cuenta que puedo conectarme a este punto de acceso ESP02 utilizando mi navegador y solicitar una página. Funciona bien sin problemas, pero no con otro cliente ESP.

  #include <ESP8266WiFi.h>

  const char* ssid       = "ESP02";
  const char* password   = "pswdesp002";
  //const char* ssid     = "EAGLE_EXT";
  //const char* password = "xxxxxxxxxx";

  const char* host = "192.168.4.1";
  //const char* host = "192.168.1.1";
  const char* streamId   = "";
  const char* privateKey = "";

  void setup() {
    Serial.begin(115200);
    delay(10);
    monitorWiFi();
  }

  void monitorWiFi()
  {
    // We start by connecting to a WiFi network
    if(WiFi.status() != WL_CONNECTED){
      Serial.println();
      Serial.println();
      Serial.print("Connecting to ");
      Serial.println(ssid);

      WiFi.begin(ssid, password);

      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
      }

      Serial.println("");
      Serial.println("WiFi connected");  
      Serial.println("IP address: ");
      Serial.println(WiFi.localIP());
    }
  }

  int value = 0;

  void loop() {
    delay(5000);
    ++value;

    monitorWiFi();
    Serial.print("connecting to ");
    Serial.println(host);

    // Use WiFiClient class to create TCP connections
    WiFiClient client;
    const int httpPort = 80;
    if (!client.connect(host, httpPort)) {
      Serial.println("connection failed");
      return;
    }

    // We now create a URI for the request
    String url = "/setlevel/";
    url += "&value=";
    url += "50";

    Serial.print("Requesting URL: ");
    Serial.println(url);

    // This will send the request to the server
    client.print(String("GET ") + url + " HTTP/1.1\r\n" +
                 "Host: " + host + "\r\n" + 
                 "Connection: close\r\n\r\n");
    unsigned long timeout = millis();
    while (client.available() == 0) {
      if (millis() - timeout > 5000) {
        Serial.println(">>> Client Timeout !");
        client.stop();
        return;
      }
    }

    // Read all the lines of the reply from server and print them to Serial
    while(client.available()){
      String line = client.readStringUntil('\r');
      Serial.print(line);
    }

    Serial.println();
    Serial.println("closing connection");
  }

Mensajes de depuración:

Connecting to ESP02 ....... WiFi connected IP address: 192.168.4.2 connecting to 192.168.4.1 :err -8 connection failed connecting to 192.168.4.1 :err -8 connection failed connecting to 192.168.4.1 :err -8 connection failed connecting to 192.168.4.1 :err -8 connection failed chg_B1:-40 connecting to 192.168.4.1 :err -8 connection failed chg_B2:0 connecting to 192.168.4.1

    
pregunta Vijay Sharma

1 respuesta

2

Pude resolver este problema al incluir la línea WiFi.mode (WIFI_STA); antes de WiFi.begin (ssid, contraseña); y whola! El problema resuelto. Aunque si entras en el código de WiFi.begin (ssid, contraseña); Creo que establece el modo de estación en STA pero no estoy seguro de por qué se debe configurar explícitamente. Recibí esta sugerencia de otro sitio web donde las personas enfrentaban el mismo problema.

    
respondido por el Vijay Sharma

Lea otras preguntas en las etiquetas