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 Mega 2560 vs Arduino DUE Batucada 24 7.355 11.07.2020 15:46
Letzter Beitrag: Tommy56
  Arduino Nano Funktioniert nicht? acca500 7 1.451 10.05.2020 10:22
Letzter Beitrag: hotsystems
  MKR FOX1200-Board und RTC - Problem Herby007 13 3.531 27.04.2020 00:04
Letzter Beitrag: GuaAck
  Nano nur mit CH340 USB ?? Franz54 23 3.975 18.04.2020 21:16
Letzter Beitrag: Franz54
  Nano und 12Volt für Weichensteuerung Jan99 2 981 13.04.2020 12:30
Letzter Beitrag: hotsystems
  Problem mit APA106 (WS2812B):flickern der letzten LEDs Holzauge 6 1.136 28.03.2020 13:15
Letzter Beitrag: Holzauge
  Problem mit itr8307 Acki1985 21 2.755 24.03.2020 11:03
Letzter Beitrag: db91595
  Stand-alone-Nano an USB leuchtet nicht AnFi 5 1.058 23.03.2020 10:08
Letzter Beitrag: SOFTHARD
Photo der NANO will nicht sensor 8 1.972 02.03.2020 17:26
Letzter Beitrag: hotsystems
  Arduino mit W5500 - maximale Übertragungsrate Plammi 5 1.114 01.03.2020 15:24
Letzter Beitrag: MicroBahner

Gehe zu:


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