INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Mit static ip bekomme ich meine eigenen Nachrichten.
10.07.2019, 16:01
Beitrag #1
Mit static ip bekomme ich meine eigenen Nachrichten.
Hallöchen,

ich habe folgendes Problem wenn ich 2 esp32 habe und die ips nicht fest zuweise funktioniert das senden von Nachrichten in beide Richtungen… Wenn ich aber feste ips eingebe (und zwar die selben die vorher automatisch vergeben wurden) dann, Empfängt mein ESP der die Nachricht gesendet hat die Nachricht, Und der Esp der die Nachricht bekommen soll bekommt nichts wo ist mein Denkfehler warum das nicht mit festen ips funktioniert?.. Zum Thema drumherum: Ich versuche mit Esps einen Linien Netzwerk aufzubauen wo jeder Teilnehmer ein AP+STA ist und alle Nachrichten entweder zum Master geleitet werden oder in die andere Richtung bis der bestimmte Node erreicht wird. Die Geschwindigkeit spielt keine wirkliche Rolle nur sollten es ca. 500 Teilnehmer sein, und das auch noch über eine größere Fläche also Anfang und Ende im Netz haben keinen Kontakt. Deswegen fällt eine Sterntopologie aus.


Hier mal der Code zum Testen Counter=1 ist ips automatisch Counter= Statisch.
Code:
#include <Arduino.h>


#include <WiFi.h>
#include <WiFiMulti.h>

WiFiMulti WiFiMulti;
const char* ssidap     = "node2";
const char* passwordap = "12345678";
int counter = 2;
WiFiServer server(80);



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



    delay(10);
  
   //}
if (counter==2){

    IPAddress local_IP(192, 168, 4, 2);
// Set your Gateway IP address
IPAddress gateway(192, 168, 4, 1);

IPAddress subnet(255, 255, 255, 0);
IPAddress primaryDNS(192, 168, 4, 1);   //optional
IPAddress secondaryDNS(4, 4, 4, 4); //optional
primaryDNS=IPAddress(8, 8, 8, 8);
secondaryDNS=IPAddress(4, 4, 4, 4);
//WiFi.softAPConfig(local_IP,local_IP, IPAddress(255, 255, 255, 0));
if (!WiFi.config(local_IP, gateway , subnet, primaryDNS, secondaryDNS)) {
Serial.println("STA Failed to configure");
}

   }
    WiFi.softAP("node2", "12345678");
    WiFiMulti.addAP("node1", "12345678");
  


    Serial.println();
    Serial.println();
    Serial.print("Waiting for WiFi... ");

    while(WiFiMulti.run() != WL_CONNECTED) {
        Serial.print(".");
        delay(500);
    }
    

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

    delay(500);
    server.begin();
}

int value = 0;

void loop()
{
   IPAddress IP = WiFi.softAPIP();
  Serial.print("AP IP address: ");
  Serial.println(IP);
  Serial.println("");
  Serial.println("WiFi connected!");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
  Serial.print("ESP Mac Address: ");
  Serial.println(WiFi.macAddress());
  Serial.print("Subnet Mask: ");
  Serial.println(WiFi.subnetMask());
  Serial.print("Gateway IP: ");
  Serial.println(WiFi.gatewayIP());
  Serial.print("DNS: ");
Serial.println(WiFi.dnsIP());
    //server code!
WiFiClient client = server.available();   // listen for incoming clients

  if (client) {                             // if you get a client,
    Serial.println("New Client.");           // print a message out the serial port
    String currentLine = "";                // make a String to hold incoming data from the client
    while (client.connected()) {            // loop while the client's connected
      if (client.available()) {             // if there's bytes to read from the client,
        String c = client.readStringUntil('\r');             // read a byte, then
        Serial.println(c);                    // print it out the serial monitor
        

       // client.printf(counter);
         client.stop();
    Serial.println("Client Disconnected.");
  }
}
  }

    // client code!!
    const uint16_t port = 80;
    const char * host = "192.168.4.1"; // ip or dns

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

    // Use WiFiClient class to create TCP connections
   // WiFiClient client;

    if (!client.connect(host, port)) {
        Serial.println("Connection failed.");
        Serial.println("Waiting 5 seconds before retrying...");
        delay(5000);
        return;
    }

    // This will send a request to the server
    client.print("Send this data to the server n");
  
    //read back one line from the server
    String line = client.readStringUntil('\r');
    client.println(line);

    Serial.println("Closing connection.");
    client.stop();



    

}


Hier die Gegenseite

Code:
#include <WiFi.h>

const char* ssid     = "ihressid";
const char* password = "vielenliebendankfürihremüheundzeit";

WiFiServer server(80);

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

    delay(10);

    // We start by connecting to a WiFi network

    
    
    Serial.print("Connecting to ");
    Serial.println(ssid);
WiFi.softAP("node1", "12345678");
   // 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());
    
    server.begin();

}

int value = 0;

void loop(){


  //server code!
WiFiClient client = server.available();   // listen for incoming clients

  if (client) {                             // if you get a client,
    Serial.println("New Client.");           // print a message out the serial port
    String currentLine = "";                // make a String to hold incoming data from the client
    while (client.connected()) {            // loop while the client's connected
      if (client.available()) {             // if there's bytes to read from the client,
        String c = client.readStringUntil('\r');             // read a byte, then
        Serial.println(c);                    // print it out the serial monitor
        client.printf("hallo vom client");
         client.stop();
    Serial.println("Client Disconnected.");
  }
}
  }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  ESP8266 D1 mini sendet keine Pushover-Nachrichten sima 27 892 14.07.2019 16:04
Letzter Beitrag: Tommy56

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste