ESP8266 Client & Access Point

Guten Tag liebes Forum.
Ich habe mich schon ein wenig in Sachen Arduino eingearbeitet, habe jedoch mit den ganzen WiFi Sachen Probleme.
Habe einen ESP01 und einen NodeMCU, möchte das beide miteinander kommunizieren aber das alles ohne Webserver. Für den Anfang genügt es, wenn ich mir Daten im seriellen Monitor Anzeigen lasse.

NodeMCU läuft alles Access Point, funktioniert soweit, der ESP01 als Client und er verbindet sich auch mit dem Acces Point. Habe beides es dem Beispiel Sktech.

Access Point

#include <ESP8266WiFi.h>
void setup(){
  Serial.begin(115200);
  Serial.println();
  Serial.println("Konfiguriere soft-AP ... ");
  boolean result = WiFi.softAP("ESP8266NodeMCU", "123456");
  
  Serial.print("Verbindung wurde ");
  if(result == false){
    Serial.println("NICHT ");
  }
  Serial.println("erfolgreich aufgebaut!");
  IPAddress myIP = WiFi.softAPIP();
  Serial.print("AP IP address: ");
  Serial.println(myIP);
  
}
void loop(){
  Serial.printf("Anzahl der Verbundenen Geräte= %d\n", WiFi.softAPgetStationNum());
  delay(3000);
}

Client

#include <ESP8266WiFi.h>

#ifndef STASSID
#define STASSID "ESP8266NodeMCU"
#define STAPSK  "123456"
#endif

const char* ssid     = STASSID;
const char* password = STAPSK;

const char ip[] = { 192, 168, 4, 1 };
const uint16_t port = 80;

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

  // We start by connecting to a WiFi network

  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  /* Explicitly set the ESP8266 to be a WiFi-client, otherwise, it by default,
     would try to act as both a client and an access-point and could cause
     network-issues with your other WiFi-devices on your WiFi-network. */
  WiFi.mode(WIFI_STA);
  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());
}

void loop() {
  Serial.print("connecting to ");
  Serial.print(ip);
  Serial.print(':');
  Serial.println(port);

  // Use WiFiClient class to create TCP connections
  WiFiClient client;
  if (!client.connect(ip, port)) {
    Serial.println("connection failed");
    delay(5000);
    return;
  }

  // This will send a string to the server
  Serial.println("sending data to server");
  if (client.connected()) {
    client.println("hello from ESP8266");
  }
client.stop();

  delay(300000); // execute once every 5 minutes, don't flood remote service
}

Wie genau muss ich vorgehen? Nehme an beim Client in const char ip kommt die IP des AP rein, stimmt das?
Und wie genau kann ich mir im seriellen Monitor vom NodeMCU das “hello from ESP8266” anzeigen lassen?

Habe einiges gelesen aber blicke da nicht richtig durch.
Über Anregungen und Tipps wäre ich sehr dankbar.

Schönen Abend.

Wenn Du ohne Webserver arbeiten willst, musst Du Dich erst mal für ein anderes Protokoll, mit dem die beiden "reden" können, entscheiden. z.B. UDP.

Dafür gibt es Beispiele in den ESP8266 Dateien, die bei Dir installiert sind. Diese siehst Du in der IDE.

Gruß Tommy

TCP oder UDP.
Diese Frage haben wir gefühlt alle paar Wochen.

Hier: https://forum.arduino.cc/index.php?topic=676411.17 findest du einen Sende / Empfänger Sketch für UDP.

antony91:
... aber das alles ohne Webserver.

Bist Du sicher? Verwechselst Du das möglicherweise mit der Wahl eines Protokolls? Warum ohne Webserver?

Mal solopp: Kein Client ohne Server!