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
Arduino Nano + W5500 Server Problem
23.11.2019, 17:10
Beitrag #1
Arduino Nano + W5500 Server Problem
Hallo Liebes Forum,

ich habe momentan ein Problem meinen Arduino Nano mit meinem W5500 zu verbinden.
Die Verkabelung steht soweit. Weiterhin weiß ich dass ich mit der Ethernet2 Bibliothek arbeiten muss. Ich habe nun also den Beispiel-Sketch geladen und um es kurz zu machen: es funktioniert nicht.
Einen Kabelbruch schließe ich aus, da ich jedes Kabel mit meinem Multimeter durchgemessen habe.

Der Beispiel-Sketch sieht so aus:
Code:
/*
  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, 164, 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");
  }
}

Der Serielle Monitor gibt mir nur die Meldung: "server is at 0.0.0.0".
Ist das ein Problem der Bibliothek oder liegt es am Code, oder ist evtl. doch was an der Verkabelung falsch?

Vielen Dank im Voraus!
Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.11.2019, 17:14
Beitrag #2
RE: Arduino Nano + W5500 Server Problem
Wie hast Du ihn denn angeschlossen?

Bist Du Dir sicher, dass Dein Heimnetz ein 192.168.164.xxx ist? Wenn ja, dann nimm mal anstelle der 177 einen Wert < 127. Manche Router sind da eigen.
Welchen Router nutzt Du?

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.11.2019, 17:43
Beitrag #3
RE: Arduino Nano + W5500 Server Problem
(23.11.2019 17:14)Tommy56 schrieb:  Wie hast Du ihn denn angeschlossen?

Bist Du Dir sicher, dass Dein Heimnetz ein 192.168.164.xxx ist? Wenn ja, dann nimm mal anstelle der 177 einen Wert < 127. Manche Router sind da eigen.
Welchen Router nutzt Du?

Gruß Tommy

Hat sich erledigt, mir ist gerade irgendetwas von dem Shield abgebrochen, jetzt macht es gar nichts mehr -.-
Dann muss ich mir wohl ein neues holen, oder mir den ENC28J60 noch mal vornehmen. (Den W5500 habe ich wie den ENC angeschlossen)
Damit habe ich zwar eine Verbindung hinbekommen aber kann nur Daten an den Microcontroller versenden und nicht empfangen.

Wenn zufällig jemand weiß wie das funktioniert, bin ich auch ganz Ohr Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.11.2019, 17:50
Beitrag #4
RE: Arduino Nano + W5500 Server Problem
Das kommt darauf an, mit welchem Protokoll Du senden willst.
Http - z.B. mit client.print, UDP hat eigene Funktionen.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.11.2019, 17:51
Beitrag #5
RE: Arduino Nano + W5500 Server Problem
Deine Frage passt doch besser in den Bereich Hardware, da es keine Projektvorstellung ist. Warum postest du hier ?

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.11.2019, 17:56 (Dieser Beitrag wurde zuletzt bearbeitet: 23.11.2019 17:58 von Tommy56.)
Beitrag #6
RE: Arduino Nano + W5500 Server Problem
Zu UDP gibt es hier Beispiele. Auch wenn Die für den ESP8266 sind, das Prinzip ist das Gleiche. Die EthernetUdp2 hat die Funktionen drin, wenn das Deine Lib ist.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.11.2019, 18:39
Beitrag #7
RE: Arduino Nano + W5500 Server Problem
(23.11.2019 17:56)Tommy56 schrieb:  Zu UDP gibt es hier Beispiele. Auch wenn Die für den ESP8266 sind, das Prinzip ist das Gleiche. Die EthernetUdp2 hat die Funktionen drin, wenn das Deine Lib ist.

Gruß Tommy

Ist das jetzt die Lib für den ENC oder den W5500?
Falls es für den ENC ist, habe ich auch noch ein ESP32 im petto Tongue


Hier ist mein Code für den Nano + ENC

Code:
// Present a "Will be back soon web page", as stand-in webserver.
// 2011-01-30 <jc@wippler.nl>
//
// License: GPLv2

#include <EtherCard.h>

#define STATIC 1  // set to 1 to disable DHCP (adjust myip/gwip values below)

#if STATIC
// ethernet interface ip address
static byte myip[] = { 192,168,178,48 };
// gateway ip address
static byte gwip[] = { 192,168,1,254 };
#endif

// ethernet mac address - must be unique on your network
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };

int LedPin = 2;

byte Ethernet::buffer[700]; // tcp/ip send and receive buffer

const char page[] PROGMEM =
"HTTP/1.0 503 Service Unavailable\r\n"
"Content-Type: text/html\r\n"
"Retry-After: 600\r\n"
"\r\n"
"<html>"
  "<head><title>"
    "Arduino Nano Steuerung"
  "</title></head>"
  "<body>"
    "<h3></h3>"
    "<p><em>"
      "The Server is Online.<br />"
    "</em></p>"
  "</body>"
"</html>"
;

void setup(){
  Serial.begin(57600);
  Serial.println("\n[backSoon]");
  
  pinMode(LedPin, OUTPUT);

  // Change 'SS' to your Slave Select pin, if you arn't using the default pin
  if (ether.begin(sizeof Ethernet::buffer, mymac, SS) == 0)
    Serial.println( "Failed to access Ethernet controller");
#if STATIC
  ether.staticSetup(myip, gwip);
#else
  if (!ether.dhcpSetup())
    Serial.println("DHCP failed");
#endif

  ether.printIp("IP:  ", ether.myip);
  ether.printIp("GW:  ", ether.gwip);
  ether.printIp("DNS: ", ether.dnsip);
}

void loop () {

  word len = ether.packetReceive();
  word pos = ether.packetLoop(len);

  
  // IF LED10=ON turn it ON
  if(strstr((char *)Ethernet::buffer + pos, "GET /?LED10=ON") != 0) {
    Serial.println("Received ON command");  
    Serial.println((char *)Ethernet::buffer);
    digitalWrite(LedPin, HIGH);
  }
  
  // IF LED10=OFF turn it OFF
  if(strstr((char *)Ethernet::buffer + pos, "GET /?LED10=OFF") != 0) {
    Serial.println("Received OFF command");
    digitalWrite(LedPin, LOW);
  }
  
  // show some data to the user
  memcpy_P(ether.tcpOffset(), page, sizeof page);
  ether.httpServerReply(sizeof page - 1);
  }
  
}

Ich sende an den uC einen String über einen Webbrowser und suche in dem String nach den Schlüsselwörtern. Findet er diese, setzt er dementsprechend den Ausgang.
Diese Lösung ist sicher etwas unelegant, aber erfüllt seinen Zweck.
Nur habe ich keine Ahnung wie ich Informationen in die "andere Richtung" versende.
Auch für das senden der Daten an den uC gibt es sicherlich eine bessere Lösung ^^
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.11.2019, 18:53 (Dieser Beitrag wurde zuletzt bearbeitet: 23.11.2019 19:03 von Tommy56.)
Beitrag #8
RE: Arduino Nano + W5500 Server Problem
Ich habe nie mit EtherCard gearbeitet. Mal kurz mit dem WS5100-Shield und dann nur noch mit ESP8266 (WEMOS D1 mini). Der ESP32 ist mir noch zu instabil.

Da kann ich Dir nicht weiter helfen. Ich glaube das Ding ist für einen interaktiven Webserver ungeeignet.

Gruß Tommy

Edit: Die normale Ethernet-Lib kann mittlerweile auch WS5500.

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino Nano keine Verbindung zu nRF24L01 Modul Jonaz2 9 770 26.11.2019 21:38
Letzter Beitrag: hotsystems
  Problem mit RS232-Shield bei Betrieb mit externer Spannungsversorgung riggs 3 459 15.11.2019 17:33
Letzter Beitrag: hotsystems
Question Relaisboard resettet Arduino Nano tramspotters 44 4.761 01.11.2019 22:23
Letzter Beitrag: hotsystems
  Arduino Problem mit I2C Bus pds14 27 5.989 30.09.2019 12:44
Letzter Beitrag: Chopp
  Nano läuft nicht nach Einschalten Gritte 30 10.646 20.09.2019 10:32
Letzter Beitrag: Gritte
  TCA9548A-Problem mit gefundener Adresse 0x0 alpenpower 10 2.836 26.08.2019 12:41
Letzter Beitrag: alpenpower
  Problem mit Stromsensor-Modul INA219 Retian 1 1.187 12.07.2019 20:21
Letzter Beitrag: Retian
  Absturz Nano / com-port shrimps 5 1.258 18.05.2019 18:27
Letzter Beitrag: hotsystems
  Problem mit oder durch Dallas 18b20 wwilhelm 3 1.086 16.05.2019 21:13
Letzter Beitrag: Tommy56
  [Problem] Servo läuft im Loop ichhalt033 12 1.927 08.05.2019 19:15
Letzter Beitrag: Tommy56

Gehe zu:


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