ESP32 сервер не видит клиента - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь подключить два модуля ESP32 через Wi-Fi и отправить информацию.Тем не менее, я застрял на стороне сервера.Клиент показывает, что он подключился к Wi-Fi, но на стороне сервера не печатается «Новый клиент», следовательно, он не видит клиента.Мне интересно, что я делаю неправильно, возможно, кто-то пробовал это раньше.

Сторона сервера:

#include <WiFi.h>

const char* ssid     = "ESP32";
const char* password = "123";

 WiFiServer server(80);    

void setup() {
Serial.begin(115200);


Serial.println("Setting AP (Access Point)…");
WiFi.softAP(ssid, password);  



IPAddress IP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(IP);
Serial.print("MAC address: ");
Serial.println(WiFi.softAPmacAddress());
server.begin();
}

void loop(){

WiFiClient client = server.available();   // Listen for incoming clients

if (client) 
{ Serial.println("New Client.");          

while (client.connected()) 
{           
Serial.println(client.connected());
Serial.println("Client connected.");
Serial.println("");

}
client.stop();
Serial.println("Client disconnected.");
Serial.println("");
}
}

Сторона клиента:

#include <WiFi.h>
 #include <SPI.h>
const char* ssid = "ESP32";
const char* password =  "123";



void setup() {

  Serial.begin(115200);
    scanNetworks();
  WiFi.begin(ssid, password);

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

   Serial.println("Connected to the WiFi network");

    }

void loop() {

}
void scanNetworks() {
  // scan for nearby networks:
  Serial.println("** Scan Networks **");
  byte numSsid = WiFi.scanNetworks();

  // print the list of networks seen:
  Serial.print("SSID List:");
  Serial.println(numSsid);
  // print the network number and name for each network found:
  for (int thisNet = 0; thisNet<numSsid; thisNet++) {
    Serial.print(thisNet);
    Serial.print(") Network: ");
    Serial.println(WiFi.SSID(thisNet));
  }
}

1 Ответ

0 голосов
/ 23 мая 2019

Вам необходимо отправить данные с вашего клиента на ваш сервер.WiFiServerAvailable::available вернет что-то, когда:

Получает клиент, подключенный к серверу и имеющий данные, доступные для чтения.

И:

Возвращает объект Client;если ни у одного Клиента нет данных, доступных для чтения, этот объект оценивается как ложный в операторе if

Согласно документации .

Нет необходимости выполнять чтение на стороне сервера, но это приведет к бесконечному циклу, поскольку WifiClient::connected будет возвращать true до тех пор, пока данные не будут прочитаны и соединение не будет закрыто.Согласно документации .

...