Go Down

Topic: Ethernet Shield W5500 breakout an Arduino(Elegoo) Uno verbinden  (Read 434 times) previous topic - next topic

jiggijaggajuggujesse

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.
Code: [Select]
/*
  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("<br />");
          }
          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:
https://www.amazon.de/gp/product/B07CYVRMPL/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1

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

wno158

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

Gruß Walter
Gruß Walter

HotSystems

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

Also von überall aus darauf zugreifen ?
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

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.
how to react on postings:
- post helped: provide your final sketch, say thank you & give karma.
- post not understood: Ask as long as you understand the post
- post is off topic (or you think it is): Stay to your topic. Ask again.
- else: Ask again.

jiggijaggajuggujesse

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

jiggijaggajuggujesse

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


[color= var(--edge-secondary-text-color)]ERR_CONNECTION_TIMED_OUT

[color= var(--edge-secondary-text-color)]"[/color]
[/color]

my_xy_projekt

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
Code: [Select]

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

HotSystems

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

wno158

Quote
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.
Gruß Walter

jiggijaggajuggujesse

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.

my_xy_projekt

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.

my_xy_projekt

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.

wno158

Quote
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
Gruß Walter

jiggijaggajuggujesse

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

my_xy_projekt

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...

Go Up