Mehrere Variablenwerte von Client an Server schicken

Hier mal ein Beispiel wie man es machen kann.

Client

#include <ESP8266WiFi.h>

const char* ssid = "........";          //Zugangsdaten deines Routers einfügen
const char* password = "........";
const char* host = "192.168.179.21";            // IP des Server
unsigned long previousMillis = 0;

void setup() {
  Serial.begin(250000);
  delay(10);

  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());
}
float Temp = 17.8;
byte Schaltstellung = 0;

void loop() {
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= 5000) {
    previousMillis = currentMillis;
    Schaltstellung = !Schaltstellung;
    Temp = Temp + 0.1;
    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 = "/ClientSend?Temperatur=";
    url += Temp;
    url += "&Schalter=";
    url += Schaltstellung;

    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("closing connection");
  }
}

Server

#include <ESP8266WebServer.h>

const char* ssid = "........";          //Zugangsdaten deines Routers einfügen
const char* password = "........";

String Content;

ESP8266WebServer server(80);

void handleRoot() {
  server.send(200, "text/plain", Content);
}

void handleNotFound() {
  String message = "File Not Found\n\n";
  message += "URI: ";
  message += server.uri();
  message += "\nMethod: ";
  message += (server.method() == HTTP_GET) ? "GET" : "POST";
  message += "\nArguments: ";
  message += server.args();
  message += "\n";
  for (uint8_t i = 0; i < server.args(); i++) {
    message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
  }
  server.send(404, "text/plain", message);
}

void setup(void) {
  Serial.begin(250000);
  WiFi.begin(ssid, password);
  Serial.println("");

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  server.on("/", handleRoot);
  server.on("/ClientSend", []() {
    String Temperatur = server.arg("Temperatur");
    String Schaltstellung = server.arg("Schalter");
    Serial.print("Temperatur: "); Serial.println(Temperatur);
    Serial.print("Schalter: "); Serial.println(Schaltstellung);
    Content = "Temperatur: " + Temperatur + " C - Schalter: " + Schaltstellung;
    server.send(204);
  });

  server.onNotFound(handleNotFound);
  server.begin();
  Serial.println("HTTP server started");
}

void loop(void) {
  server.handleClient();
 }

Oder doch lieber UDP?

Gruß Fips