Pages: [1] 2   Go Down
Author Topic: Arduino Ethernetshield läuft nicht  (Read 2022 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 5
Posts: 193
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,
ich versuch gerade ein Ethernetshiel zum laufen zu bekommen,
aber im Browser wird angezeigt, dass der Server nicht erreichbar ist.
Ich verwende folgenden Code:
Code:
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0xB4, 0x8C }; 
byte ip[]  = { 192, 168, 178, 222 };                 
byte gateway[] = { 192, 168, 178, 1 };               
byte subnet[]  = { 255, 255, 255, 0 };

EthernetServer server(80);

void setup(){
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
}

void loop() {
EthernetClient client = server.available();
  if (client) {
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          client.print("Test123");

        }
      }
    }
 
      delay(1);
    client.stop();
  }

Addi
Logged

  / \    _|  _| o
 /--\ (_| (_| |

Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,
welche Shield hast du genau ?
Ist er Pingbar ?
Logged

Offline Offline
Full Member
***
Karma: 5
Posts: 193
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das hier.

Addi
Logged

  / \    _|  _| o
 /--\ (_| (_| |

Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Probier mal der Beispielsketch von Arduino

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 <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, 222);

// 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("Connnection: close");
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
                    // add a meta refresh tag, so the browser pulls again every 5 seconds:
          client.println("<meta http-equiv=\"refresh\" content=\"5\">");
          // 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 disonnected");
  }
}
Logged

Offline Offline
Full Member
***
Karma: 5
Posts: 193
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hab ich schon versucht. -> Auch kein Ergebniss.

Addi
Logged

  / \    _|  _| o
 /--\ (_| (_| |

Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Was steht auf den großen schwarzen Chip drauf ?
Logged

Offline Offline
Full Member
***
Karma: 5
Posts: 193
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

WizNet
Ethernet W5100
P9kl5-010
1133

Addi
Logged

  / \    _|  _| o
 /--\ (_| (_| |

Germany S-H
Offline Offline
Faraday Member
**
Karma: 174
Posts: 3274
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

byte ip[]  = { 192, 168, 178, 222 };                 
byte gateway[] = { 192, 168, 178, 1 };               
byte subnet[]  = { 255, 255, 255, 0 };

Passt Dein Netzwerk denn überhaupt zu dieser Konfiguration?

Wenn Du es nicht weißt, poste mal Deine Netzkonfiguration, z.B. wenn Du unter Windows ein Kommandofenster öffnest (cmd.exe) und mal eingibst: ipconfig

Welches sind dann die angezeigten Werte für Deine IPv4-Adresse, Subnetzmaske und Standardgateway, die Windows (oder Dein Betriebssystem) Dir für Deinen PC anzeigen?

Logged

Offline Offline
Full Member
***
Karma: 5
Posts: 193
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das kommt bei ipconfig heraus:
Code:
Windows-IP-Konfiguration
Mobiler Breitbandadapter Mobile Breitbandverbindung 2:
   Verbindungsspezifisches DNS-Suffix:
   IPv4-Adresse  . . . . . . . . . . : 10.49.165.131
   Subnetzmaske  . . . . . . . . . . : 255.255.255.248
   Standardgateway . . . . . . . . . : 10.49.165.129

Ethernet-Adapter LAN-Verbindung:

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

Tunneladapter isatap.{60595009-EACF-4173-BBFF-3CE98658601B}:

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

Tunneladapter isatap.{393DC622-6379-4DCE-8A8C-4CCDE1E329A6}:

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

Tunneladapter Teredo Tunneling Pseudo-Interface:

   Verbindungsspezifisches DNS-Suffix:
   IPv6-Adresse. . . . . . . . . . . : 2001:0:5ef5:79fb:2c36:3d:f5ce:5a7c
   Verbindungslokale IPv6-Adresse  . : fe80::2c36:3d:f5ce:5a7c%13
   Standardgateway . . . . . . . . . : ::

Addi
Logged

  / \    _|  _| o
 /--\ (_| (_| |

Germany S-H
Offline Offline
Faraday Member
**
Karma: 174
Posts: 3274
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

   IPv4-Adresse  . . . . . . . . . . : 10.49.165.131
   Subnetzmaske  . . . . . . . . . . : 255.255.255.248
   Standardgateway . . . . . . . . . : 10.49.165.129

Ach Du meine Güte, was'n das für ein Netz?
Wer hat denn das eingerichtet?


   Subnetzmaske  . . . . . . . . . . : 255.255.255.248
   Standardgateway . . . . . . . . . : 10.49.165.129

Subnetzmaske und Stardardgateway kannst Du direkt 1:1 für Deinen Arduino übernehmen.

Aber bei Deinem Strang mit Subnetzmaske  x.y.z.248 bin ich echt überfragt, was Du Dir da als IP-Adresse aussuchen kannst.

Im Zweifelsfall: Geh mit einem Gerät (z.B. ein anderer PC oder ein Smartphone) in das Netz und lasse Dir dessen IP-Adresse anzeigen, dann schalte das andere Gerät aus so dass dessen IP-Adresse nicht mehr in Verwendung ist und trage die gerade abgeschaltete IP-Adresse als Adresse für Deinen Arduino ein.

Die sauberste Lösung ist: Du läßt Dir für Deinen Arduino eine IP-Adresse vom zuständigen Netzwerk-Administrator geben.

Das dürfte nämlich ein etwas größeres Netz sein, in dem Du da hängst.
Logged

Offline Offline
Full Member
***
Karma: 5
Posts: 193
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Die sauberste Lösung ist: Du läßt Dir für Deinen Arduino eine IP-Adresse vom zuständigen Netzwerk-Administrator geben.
Gibt es nicht!
Das ist mein Internet über einen Internetstick.

Addi
Logged

  / \    _|  _| o
 /--\ (_| (_| |

Germany S-H
Offline Offline
Faraday Member
**
Karma: 174
Posts: 3274
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Gibt es nicht!
Das ist mein Internet über einen Internetstick.

Hehe, dann bist Du ja für Dein Netzwerk sogar DEIN EIGENER ADMIN!

Und dieser Admin Deines Netzwerks teilt Dir keine IP-Adresse für Deinen Arduino zu?

OK, ich rechne mal für Dich herum, mit diesem IP-Adressen Rechner und Deinen Netzdaten:
http://jodies.de/ipcalc

Damit bekomme ich für die von Dir nutzbaren IP-Adressen heraus:

HostMin:   10.49.165.129
HostMax:   10.49.165.134    

Auf .129 läuft Dein Internet-Stick und stellt die Verbindung zum Internet her, auf .131 läuft offenbar Dein eigener PC, jetzt heißt es von Deiner Seite aus scharf überlegen: Welche Internetgeräte sind über diesen Internet-Stick sonst noch online? Ein Access-Poínt? Ein Router? Ein Smartphone? Ein Mediaplayer? Eine große Spielekonsole? Ein Notebook?  Eine kleine Spielekonsole wie Nintendo DS? Und jetzt ziehst Du von diesem Adressbereich .129 bis .134 alle von anderen Geräten belegten IP-Adressen ab (mußt Du über das jeweilige Gerät abfragen, oder das Gerät ausschalten, damit es keine IP-Adresse mehr belegt), was dann vom IP-Adressenbereich übrigt bleibt, dass kannst Du als IP-Adresse für Deinen Arduino verwenden.

Mal angenommen Du kommst drauf, dass 10.49.165.132 noch frei ist. Dann sind Deine für das Ethernet des Arduino nutzbaren Daten:

IP-Adresse: 10.49.165.132
Subnetzmaske: 255.255.255.248
Standardgateway: 10.49.165.129

Übrigens: Die Arduino-Ethernetshields mit W5100 Chip können sich auch per DHCP eine IP-Adresse dynamisch zur Laufzeit zuteilen lassen, wenn Du eine passende Library mit dem dazugehörigen Code laufen läßt. Voraussetzung ist, dass in Deinem Netz ein DHCP-Server läuft, vielleicht kannst Du mal prüfen, ob Dein Stick-Netzwerk auch DHCP anbietet (so wie es normale Heim-Router machen).

In dem Fall, dass in Deinem Netz DHCP nutzbar ist, brauchst Du nämlich nur eine MAC-Adresse vorgeben, und IP-Adresse, Subnetzmaske und Standardgateway holt sich der Arduino dann jedesmal beim Starten selbst, wenn Du den entsprechenden Setup-Code verwendest. Dauert dann aber immer einige Sekunden extra, bis der Sketch sein Netz entsprechend selbst konfiguriert hat.
« Last Edit: December 19, 2012, 03:06:06 pm by jurs » Logged

Offline Offline
Full Member
***
Karma: 5
Posts: 193
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Immer noch nichts.
Ich verwende aktuell diesen Code:
Code:
#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0xB4, 0x8C }; 
byte ip[]  = { 10,49,165,133 };                 
byte gateway[] = { 10,49,165,129 };               
byte subnet[]  = { 255,255,255,248 };

EthernetServer server(80);

void setup()
{
  Ethernet.begin(mac, ip,gateway,subnet);
  server.begin();
}

void loop()
{
 
  EthernetClient client = server.available();
  if (client) {
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        if (c == '\n' && currentLineIsBlank) {
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println(); 
         
          for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
            client.print("analog input ");
            client.print(analogChannel);
            client.print(" is ");
            client.print(analogRead(analogChannel));
            client.println("<br />");
          }
          break;
        }
        if (c == '\n') {
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          currentLineIsBlank = false;
        }
      }
    }
    delay(1);
    client.stop();
  }
}
Logged

  / \    _|  _| o
 /--\ (_| (_| |

Germany S-H
Offline Offline
Faraday Member
**
Karma: 174
Posts: 3274
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Immer noch nichts.

Wo hast Du denn das Netzwerkkabel vom Arduino-Ethernetshield angeschlossen?

Arduino ==> ?

Hast Du da einen Router im Netzwerk stehen, oder wie machst Du das mit Deinem Stick-Netz, um weitere Geräte per Netzwerkkabel ins Internet zu bringen?

Logged

Offline Offline
Full Member
***
Karma: 5
Posts: 193
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Arduino ==> Computer
Der Stick kommt an eine USB-Buchse.
Einen Router gibt es nicht.

Addi
Logged

  / \    _|  _| o
 /--\ (_| (_| |

Pages: [1] 2   Go Up
Jump to: