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
Ethernet-Shield
09.03.2018, 15:54 (Dieser Beitrag wurde zuletzt bearbeitet: 09.03.2018 15:55 von Ardusil.)
Beitrag #1
Ethernet-Shield
Hallo,
ich habe mir ein Ethernet-Shield gekauft und möchte mir probehalber ein paar Daten auf einem Web-Server anzeigen lassen, später möchte ich mir dann eine Kurve aus ein paar anderen Daten machen lassen. Das Problem ist nur, das immer wenn ich die IP-Adresse eingebe die Meldung "Fehler: Netzwerk-Zeitüberschreitung" kommt. Auch der Ping-Befehl liefert nur wahlweise "Antwort von 192.168.178.23: Zielhost nicht erreichbar" (das ist nicht die IP-Adresse von meinem Shield), oder "Zeitüberschreitung der Anforderung".
Hat jemand eine Idee woran das liegen könnte?

Hier mein Sketch:
Code:
#include <SPI.h>
#include <Ethernet.h>

byte MACAddress[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte IPAddress[] = {192, 168, 178, 25};
int const HTTPPORT = 80;
String barColor[] = {"ff0000", "00ff00", "00ffff",
                     "ffff00", "ff00ff", "550055"
                    };
#define HTML_TOP    "<html>\n<head><title>Arduino Webserver</title></head>\n<body>"
#define HTML_BOTTOM "</body>\n</html>"
EthernetServer myServer(HTTPPORT);

void setup()
{
  Ethernet.begin(MACAddress, IPAddress);
  myServer.begin();
}

void loop()
{
  EthernetClient myClient = myServer.available();
  if(myClient){
    myClient.println("HTTP/1.1 200 OK");
    myClient.println("Content-Type: text/html");
    myClient.println();

    myClient.println(HTML_TOP);
    showValues(myClient);
    myClient.println(HTML_BOTTOM);
  }
  delay(1);
  myClient.stop();
}

void showValues(EthernetClient &myClient){
  for(int i = 0; i < 6; i++){
    myClient.print("Analog Pin ");
    myClient.print(i);
    myClient.print(": ");
    myClient.print(analogRead(i));
    myClient.print("<dev style=\"height: 15px; background-color: #");
    myClient.print("; width:");
    myClient.print(analogRead(i));
    myClient.println("px; border: 2px solid;\"></div>");
  }
}
Gruß Ardusil
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.03.2018, 16:14
Beitrag #2
RE: Ethernet-Shield
(09.03.2018 15:54)Ardusil schrieb:  Hallo,
ich habe mir ein Ethernet-Shield gekauft. ... Das Problem ist nur, das immer wenn ich die IP-Adresse eingebe die Meldung "Fehler: Netzwerk-Zeitüberschreitung" kommt. Auch der Ping-Befehl liefert nur wahlweise "Antwort von 192.168.178.23: Zielhost nicht erreichbar" (das ist nicht die IP-Adresse von meinem Shield), oder "Zeitüberschreitung der Anforderung".
Hat jemand eine Idee woran das liegen könnte?
Welches Shield mit welchem Ethernet-Schaltkreis (W5...)?

Wo willst Du die IP-Adresse eingeben?

Wenn Du Dein Shield auf 192, 168, 178, 25 einstellst, bringt es nichts 192, 168, 178, 23 abzufragen.

Welche Ethernet-Lib benutzt Du (Link bitte). Da sind auch Beispiele (incl. Webserver) dabei. z.B. ist IPAddress in der Regel ein eigener Datentyp.

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
09.03.2018, 16:37 (Dieser Beitrag wurde zuletzt bearbeitet: 09.03.2018 16:39 von Ardusil.)
Beitrag #3
RE: Ethernet-Shield
Ich verwende ein W5100-Shield
(09.03.2018 16:14)Tommy56 schrieb:  Wo willst Du die IP-Adresse eingeben?
In meinem Webserver (Firefox)
(09.03.2018 16:14)Tommy56 schrieb:  Wenn Du Dein Shield auf 192, 168, 178, 25 einstellst, bringt es nichts 192, 168, 178, 23 abzufragen.
Ich Frage ja nach 192.168.178.25 aber es kommt immer die Antwort für 23 (was übrigens die IPAdresse meines von meinem PC ist)
(09.03.2018 16:14)Tommy56 schrieb:  Welche Ethernet-Lib benutzt Du (Link bitte). Da sind auch Beispiele (incl. Webserver) dabei. z.B. ist IPAddress in der Regel ein eigener Datentyp.
Ich verwende diese Library, aber das Beispiel funktioniert auch nicht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.03.2018, 16:48
Beitrag #4
RE: Ethernet-Shield
(09.03.2018 16:37)Ardusil schrieb:  Ich Frage ja nach 192.168.178.25 aber es kommt immer die Antwort für 23 (was übrigens die IPAdresse meines von meinem PC ist)

Und so steht es doch auch in der Meldung, wenn du dich nicht vertippt hast.

Antwort von "23" = Dein PC.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.03.2018, 16:50 (Dieser Beitrag wurde zuletzt bearbeitet: 09.03.2018 16:50 von Tommy56.)
Beitrag #5
RE: Ethernet-Shield
Komisch. Bei mir ging das Shield damals.
Du rufst im Browser auf
Code:
http://192.168.178.25
Das Beispiel ist damals bei mir gelaufen:
Hauptunterschied: IPAddress ip(192, 168, 178, 4);
Code:
// eth_webserver1
#define DEBUG 1

#if (DEBUG == 0)
  #define debugPrint(...)
  #define debugPrintln(...)
  #define debugBegin(...)
#else
  #define debugPrint(...) if (debugAusgabe) Serial.print(__VA_ARGS__)
  #define debugPrintln(...) if (debugAusgabe) Serial.println(__VA_ARGS__)
  #define debugBegin(...) Serial.begin(__VA_ARGS__); while(!Serial)
  boolean debugAusgabe = true;
#endif

/*
  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 <Ethernet.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, 178, 4);

// 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(115200);
  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");
  }
}

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
09.03.2018, 16:58
Beitrag #6
RE: Ethernet-Shield
Auch mit deinem Sketch funktioniert es nicht Huh Huh
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.03.2018, 16:59
Beitrag #7
RE: Ethernet-Shield
(09.03.2018 16:58)Ardusil schrieb:  Auch mit deinem Sketch funktioniert es nicht Huh Huh
Dann hast du was falsch gemacht.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.03.2018, 17:07 (Dieser Beitrag wurde zuletzt bearbeitet: 09.03.2018 17:16 von Ardusil.)
Beitrag #8
RE: Ethernet-Shield
(09.03.2018 16:59)hotsystems schrieb:  Dann hast du was falsch gemacht.
Ich habe eben in den Filtern meiner FriztBox eine "Liste erlaubter IP-Adressen" gefunden über der Folgendes steht:
Zitat:Die nachfolgende Liste enthält alle direkt aufgerufenen IP-Adressen, deren Aufruf die FRITZ!Box gesperrt hat. IP-Adressen, deren Aufruf erlaubt sein soll, können Sie hier freigeben.
...aber darin ist die IP-Adresse meines Shields nicht aufgelistet, also kann es auch nicht an den Einstellungen der FritzBox liegen... Huh

Es funkioniert SmileSmileSmile
Der Fehler war, das ich in der IDE "Arduino as ISP" angegeben hatte.
Noch eine Frage:
Wie gebe ich auf dem Webbrowser Daten als Kurve aus?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Leeres Shield für ATMEGA2560 JoTa2k 17 2.556 14.02.2020 13:45
Letzter Beitrag: JoTa2k
  Gsm shield für beisspiel sketch huber5093 29 4.219 04.12.2019 18:48
Letzter Beitrag: Franz54
  Problem mit RS232-Shield bei Betrieb mit externer Spannungsversorgung riggs 3 778 15.11.2019 17:33
Letzter Beitrag: hotsystems
  3.2" 480 x 320 TFT LCD ILI9481 Shield mit MEGA: Darstellungsprobleme 4711engel 2 1.148 31.10.2019 15:52
Letzter Beitrag: 4711engel
  MCP23017 shield shrimps 12 2.619 03.05.2019 23:10
Letzter Beitrag: Bitklopfer
  Seeed 2,8 TFT-Shield Anzeige drehen Glocke 6 2.012 13.03.2019 22:13
Letzter Beitrag: Tommy56
  Arduino uno mit cnc shield Maybe 13 4.374 04.01.2019 14:28
Letzter Beitrag: Chopp
  Ethernet Shield an Arduino Micro Ardusil 3 1.969 02.12.2018 13:59
Letzter Beitrag: Ardusil
  Ethernet GET manchmal 400 Bad Request Rexima 1 1.159 30.11.2018 11:03
Letzter Beitrag: Tommy56
  Mega2560 und Mini-Ethernet Reset-pin problem sepp01 60 10.768 09.10.2018 17:25
Letzter Beitrag: sepp01

Gehe zu:


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