Ethernet Shield W5500 breakout an Arduino(Elegoo) Uno verbinden

Hallo zusammen,

Ich bin gerade dabei im Internet ein paar Analog Werte anzuzeigen. Benutze den Beispielcode aus der Ethernet2 Libary von Various. Hab mir dazu die passende Anleitung für den W5500 herruntergledaen doch es funktioniert nicht. Über die IP adresse(192, 168, 1, 177) wird nichts im Internet angezeigt und wenn ich eine andere versuche ändert diese sich einfach im Seriellen Monitor zu einer ganz anderen
(server is at 192.80.3.98) . Hab die Anleitung angehangen.
Muss ich irgendwétwas am router machen oder die mac ändern. Mac Adresse steht nicht auf dem W5500 nicht drauf.

/*
  Web Server

 A simple web server that shows the value of the analog input pins.
 using an Arduino Wiznet Ethernet shield.

 Circuit:
 * Ethernet shield attached to pins 10, 11, 12, 13
 * Analog inputs attached to pins A0 through A5 (optional)

 created 18 Dec 2009
 by David A. Mellis
 modified 9 Apr 2012
 by Tom Igoe

 */

#include <SPI.h>
#include <Ethernet2.h>

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
IPAddress ip(192, 168, 1, 177);

// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());
}


void loop() {
  // listen for incoming clients
  EthernetClient client = server.available();
  if (client) {
    Serial.println("new client");
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
        // if you've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so you can send a reply
        if (c == '\n' && currentLineIsBlank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");  // the connection will be closed after completion of the response
          client.println("Refresh: 5");  // refresh the page automatically every 5 sec
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
          // output the value of each analog input pin
          for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
            int sensorReading = analogRead(analogChannel);
            client.print("analog input ");
            client.print(analogChannel);
            client.print(" is ");
            client.print(sensorReading);
            client.println("
");
          }
          client.println("</html>");
          break;
        }
        if (c == '\n') {
          // you're starting a new line
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          // you've gotten a character on the current line
          currentLineIsBlank = false;
        }
      }
    }
    // give the web browser time to receive the data
    delay(1);
    // close the connection:
    client.stop();
    Serial.println("client disconnected");
  }
}

Das ist der W5500:

Das das Arduino:
https://www.amazon.de/Entwicklungsplatine-ATmega328P-ATmega16U2-USB-Kabel-Arduino/dp/B01EWOE0UU/ref=sxts_sxwds-bia-wc-p13n1_0?cv_ct_cx=elegoo+uno&dchild=1&keywords=elegoo+uno&pd_rd_i=B01EWOE0UU&pd_rd_r=912d98c3-2372-4a84-a5b4-b4eabaa3451e&pd_rd_w=gn7Cn&pd_rd_wg=076XP&pf_rd_p=5c4c8825-c15a-42fb-8505-0b8a81aae4b7&pf_rd_r=ECNA0M2N0Z0DEKX63HCE&psc=1&qid=1603828221&quartzVehicle=35-163&replacementKeywords=elegoo&sr=1-1-fdbae751-0fa5-4c0f-900b-865654896618

W5500 Ethernet Netzwerk Internet Modul für Arduino DE (1).pdf (1.14 MB)

EDIT: Ich schrub Unsinn - das passt nicht zu einem SERVER.
(gelöscht)

Gruß Walter

Verstehe ich das richtig, möchtest du dein Projekt (was auch immer) im Internet sehen ?

Also von überall aus darauf zugreifen ?

die IP adresse(192, 168, 1, 177) ist eine Lokale IP. Die geht nur im LAN.

a) klappt der Zugriff schon innerhalb des LAN?

b) um das ding von Außen zugreifbar (und angreifbar ^^) zu machen brauchst du in deinem Router ein Port-Forwarding.
UND du musst wissen welche public IP dein Router gerade hat.
DYNDNS hilft dir dabei - diese IP Adresse rauszufinden.

HotSystems:
Verstehe ich das richtig, möchtest du dein Projekt (was auch immer) im Internet sehen ?

Also von überall aus darauf zugreifen ?

Nein nur im eigenen Netzwerk

noiasca:
die IP adresse(192, 168, 1, 177) ist eine Lokale IP. Die geht nur im LAN.

a) klappt der Zugriff schon innerhalb des LAN?

b) um das ding von Außen zugreifbar (und angreifbar ^^) zu machen brauchst du in deinem Router ein Port-Forwarding.
UND du musst wissen welche public IP dein Router gerade hat.
DYNDNS hilft dir dabei - diese IP Adresse rauszufinden.

Ich denke sie klappt nicht, weil in der thorie solte man doch die IP im Browser oben eintragen. Es lädt ewig und sagt dann Seite nicht gefunden. Jedoch im Seriellen Monitor sagt es "server is at 192.168.1.177"

"
Die Antwort von 192.168.1.177 hat zu lange gedauert

ERR_CONNECTION_TIMED_OUT
"

jiggijaggajuggujesse:
Die Antwort von 192.168.1.177 hat zu lange gedauert

Naja, du musst schon die IP eingeben, die Du vom seriellen Monitor geliefert bekommen hast.

Nachdem Du die Zeile

Ethernet.begin(mac,ip);
geändert hast auf:
[code]
Ethernet.begin(mac);

jiggijaggajuggujesse:
Nein nur im eigenen Netzwerk

Dann schreib das doch auch und nicht Internet.

Naja, du musst schon die IP eingeben, die Du vom seriellen Monitor geliefert bekommen hast.

Scheint tatsächlich dieselbe zu sein, die Ausgabe ist ja "server is at..."

@TO:
Ich muss mich entschuldigen; meine Beschreibung gilt für (DHCP-) CLIENTs. Du baust aber einen Server, das habe ich auf Arduino nie gemacht (wird gleich oben korrigiert).

Hast Du mal http://192.168.1.177 angegeben oder nur die Adresse? Manche Serverimplementierungen sind da wohl pingelig.

my_xy_projekt:
Naja, du musst schon die IP eingeben, die Du vom seriellen Monitor geliefert bekommen hast.

Das hab ich auch gedacht aber es funkioniert nicht. Im Scatch trag ich ja aber auch eine IP ein, warum wird mir dann trotzdem wiederum einen andere Angezeigt? Ist nicht immer der Fall aber manachmal zeigt er mir die an manchmal nicht.

wno158:
Scheint tatsächlich dieselbe zu sein, die Ausgabe ist ja "server is at..."

@TO:
Ich muss mich entschuldigen; meine Beschreibung gilt für (DHCP-) CLIENTs. Du baust aber einen Server, das habe ich auf Arduino nie gemacht (wird gleich oben korrigiert).

Hast Du mal http://192.168.1.177 angegeben oder nur die Adresse? Manche Serverimplementierungen sind da wohl pingelig.

NENE!
Der baut einen Server - mit fester IP. Das Routing zu dem Netz, in dem er den bauen will exisitiert bei ihm nur nicht.

Der Ethernetframe geht auch mit DHCP.

jiggijaggajuggujesse:
Die Antwort von 192.168.1.177 hat zu lange gedauert

Weil du den auch nicht erreichst.

Was hast Du für ein Betriebssystem? Windows?
Dann mach mal eine cmd / console / Eingabeaufforderung oder wie das auch immer heisst und gib mal ein: ipconfig.

Alle Zeilen die du dann ausgegeben bekommst, in denen was mit 192.168. - und danach irgendwelche Nummern hier rein kopieren, wenn mein Ansatz nicht geht.

Ich wette, du sitzt hinter ner Fritz!Box mit 192.168.178.(hier irgendwas von 2 bis 254)
Wenn ja, kannst auch versuchen in dem schwarzen Fenster: ping Fritz.Box
Die Nummer der Box kommt dabei zu Tage.

Der baut einen Server - mit fester IP. Das Routing zu dem Netz, in dem er den bauen will exisitiert bei ihm nur nicht.

Dann muss er doch "nur" sicherstellen, dass die feste IP sich im gleichen oder wenigstens einem erreichbaren Subnetz befindet.

Also sollte seine Router- und die Adresse des Rechners, von dem er zugreifen will, auf 192.168.1.xxx lauten (wenn er nicht eine wilde Konfiguration hat), oder?
Falls das der Fall ist, sollte der Router die 177 nicht zufällig einem anderen Gerät zugewiesen haben.

Meine Fritzbox meldet sich übrigens mit 192.168.178.xxx

Microsoft Windows [Version 10.0.18363.1139]
(c) 2019 Microsoft Corporation. Alle Rechte vorbehalten.

C:\Users\jesse>ipconfig

Windows-IP-Konfiguration

Drahtlos-LAN-Adapter LAN-Verbindung* 1:

Medienstatus. . . . . . . . . . . : Medium getrennt
Verbindungsspezifisches DNS-Suffix:

Drahtlos-LAN-Adapter LAN-Verbindung* 2:

Medienstatus. . . . . . . . . . . : Medium getrennt
Verbindungsspezifisches DNS-Suffix:

Ethernet-Adapter Netzwerkbrücke:

Verbindungsspezifisches DNS-Suffix: speedport.ip
IPv6-Adresse. . . . . . . . . . . : 2003:e0:6f07:e07d:fd67:a815:2b34:d77b
Temporäre IPv6-Adresse. . . . . . : 2003:e0:6f07:e07d:d194:3dd3:c4ee:de3b
Verbindungslokale IPv6-Adresse . : fe80::fd67:a815:2b34:d77b%22
IPv4-Adresse . . . . . . . . . . : 192.168.2.123
Subnetzmaske . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . : fe80::1%22
192.168.2.1

C:\Users\jesse>

Keine Fritzbox. Telekom Magenta

wno158:
Meine Fritzbox meldet sich übrigens mit 192.168.178.xxx

Ja stimmt - ich hab seit Ewigkeiten die Boxen NICHT im Originalzustand, da VPN mit Netzwerk Verbindungen über lokale Grenzen hinweg...

Ich korrigier es...

jiggijaggajuggujesse:
IPv4-Adresse . . . . . . . . . . : 192.168.2.123
Subnetzmaske . . . . . . . . . . : 255.255.255.0
192.168.2.1
Keine Fritzbox. Telekom Magenta

Na ist doch was!

OK, Dein Server muss im Netz von 192.168.2.x(xx) stehen.

Wenn Du meine Automatik von oben nicht willst, dann wirds schwierig, wenn Du sicherstellen willst, das die Adresse nicht schon genutzt wird.

Du könntest - wenn Du die Automatik nicht willst - mit IP-Adresse 192.168.2.201 anfangen.

Tut mir leid egal welche IP ich ausprobiere mit 192.168.2.xxx baut der W5500 keine Verbindung auf.

my_xy_projekt:
Na ist doch was!

OK, Dein Server muss im Netz von 192.168.2.x(xx) stehen.

Wenn Du meine Automatik von oben nicht willst, dann wirds schwierig, wenn Du sicherstellen willst, das die Adresse nicht schon genutzt wird.

Du könntest - wenn Du die Automatik nicht willst - mit IP-Adresse 192.168.2.201 anfangen.

Tut mir leid egal welche IP ich ausprobiere mit 192.168.2.xxx baut der W5500 keine Verbindung auf.

jiggijaggajuggujesse:
Tut mir leid egal welche IP ich ausprobiere mit 192.168.2.xxx baut der W5500 keine Verbindung auf.

Hast Du das aus #6 gemacht?
Was bekommst Du dann(!) für eine IP am sereillen Monitor?

punkt 1:
du brauchst für den W5500 keine Ethernet 2.
Das muss die aktuelle Ethernet können.

dann ladest du aus der IDE das Beispiel

Repeating Web client

der versucht nämlich auch eine IP über DHCP (korr) zu holen.

Poste den ganzen Serial Output den du bekommst.

Punkt 2:
Verkabelung: Zeige uns deutliche Bilder wie du was verkabelt hast. Jedes einzelne Kabel muss eindeutig sichtbar sein wo es im Uno steckt, wo es am Modul steckt.

Dann machst du noch eine Liste wo du schreibst

Uno W5500 Verwendung Farbe vom Kabel
10 xy CS gelb

usw

noiasca:
du brauchst für den W5500 keine Ethernet 2.
Das muss die aktuelle Ethernet können.

Je nach Stand nicht. Die E2 ist schon ok und die sichere Variante.

Repeating Web client
der versucht nämlich auch eine IP über DNS zu holen.

Nö. :wink:

IP fest vergeben. Und es wäre DHCP.
Hatte ich schon ersucht...

Poste den ganzen Serial Output den du bekommst.

Punkt 2:
Verkabelung: Zeige uns deutliche Bilder wie du was verkabelt hast. Jedes einzelne Kabel muss eindeutig sichtbar sein.

JA JA JA JA

Wenn das mit dem DHCP nicht klappt, dann möglicherweise gehts nur so; aber wenn da tatsächlich 192.80.3.98 drin stand, hängt das Teil evtl. in der DMZ.