ESP32 to ESP32 WiFi Сервер / Клиент Проблема - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть один ESP32, действующий в качестве клиента, и другой ESP32, выступающий в качестве точки доступа для прямой связи и использования вне помещений.Я установил сервер на стороне AP и хотел бы, чтобы клиент связывался с ним, но я не могу заставить эту работу работать.

Я хотел бы знать две вещи:

  1. Как отправлять или записывать данные на сервер с клиента?
  2. Как читать и отображатьданные, которые были отправлены на сервер с клиента?

Я приложил следующий код:

Код для AP / Server

//SERVER
//Load Wi-Fi library
#include <WiFi.h>

// Replace with your network credentials
const char* ssid     = "ESP32-Access-Point";
const char* password = "SyedAhmedAli";
 //Set web server port number to 80

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) 
  {                                          //If a new client connects,
    Serial.println("New Client.");           //print a message out in the serial port





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

     if (client.available() > 0) 
     {
      // read the bytes incoming from the client:
      char thisChar = client.read();
      // echo the bytes back to the client:
      server.write(thisChar);
      // echo the bytes to the server as well:
      Serial.write(thisChar);
     }


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

Код для клиента

//Client
#include <WiFi.h>

const char* ssid = "ESP32-Access-Point";
const char* password =  "SyedAhmedAli";


WiFiClient client;

IPAddress server(192, 168, 4, 1);    

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

  Serial.printf("Connecting to %s ", ssid);
  WiFi.begin(ssid, password);
   while (WiFi.status() != WL_CONNECTED)
   {
    delay(500);
    Serial.print(".");
   }
    Serial.println(" connected");
     if(client.connect(server, 80))
      {
        Serial.println("connected to server");
        client.write("Data");
      }
     else
     {
        Serial.println("failed to connect to server");
     }

}


void loop()
{

}

1 Ответ

0 голосов
/ 17 апреля 2019

Вы должны реализовать какой-то протокол, например, TCP, UDP для обмена данными.

Пример проекта с использованием TCP https://www.instructables.com/id/WiFi-Communication-Between-Two-ESP8266-Based-MCU-T/

Пример проекта с использованием UDP https://circuits4you.com/2018/01/01/esp-to-esp-communication/

...