Arduino Nano mit Ethernet

Guten Abend
ich habe folgendes Problem: Bei Ebay habe ich ein Ethernet “Shild” für den Nano gekauft (weis nicht ob man Links posten darf).
Allerdings bekomme ich kein Verbindung zum Arduino. Habe zum testen einfach mal ein Beispiel Scatch geladen:

/*
  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,179,98);

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

Er kann den Webserver nicht starten. Meldung: “IP: 0.0.0.0” .

$T2eC16h,!y0E9s2S9Jw9BRO3kEwN7g~~60_57.JPG

Interessant wären ein paar Informationen zu deinem Netzwerk-Modul. Wenn es einen ENC28J60 als Netzwerkchip hat, nutzt du wohl die falsche Bibliothek.

Hallo,
schau dir dieses Projekt mal an, vielleicht kommst du damit weiter. Benutzt den selben Chip (ENC28J60) Arduino Projekte
Hast du zu dem Modul eine Library mit Beispielen bekommen? Ohne Kenntnis der Pinbelegung wird das sehr schwierig zur Fehlersuche.
Gruß
Reinhard

Wenn es dieses Shield ist:
http://www.ebay.de/itm/Ethernet-Shield-for-Arduino-Nano-UNO-R3-work-as-ENC28J60-RJ45-Webserver-/170972854883?pt=Bauteile&hash=item27cec6ba63,
dann verwendest Du die falsche Bibliothek. Die Ethernet-Library des Arduino bezieht sich auf den WIZnet W5100 Chip. Auf Deinem Shield ist aber ein ENC28J60. Dafür gibt es aber auch eine Bibliothek.
Die aktuell wohl beste Lib dafür ist folgende:
GitHub - ntruchsess/arduino_uip: UIPEthernet: A plugin-replacement of the stock Arduino Ethernet library for ENC28J60 shields and breakout boards. Full support for persistent (streaming) TCP-connections and UDP (Client and Server each), ARP, ICMP, DHCP and DNS. Build around Adam Dunkels uIP Stack. Further developed version can be found on https://github.com/UIPEthernet/UIPEthernet
Hier gibt es auch jede Menge Beispiele.
Mario.

Guten Morgen
erstmal Danke für die vielen Antworten.
@ mkl0815 und sth77
Kann leider auf dem Chip nichts erkennen aber mkl0815 hat es ja schon herausgefunden. Hätte jetzt gedacht, dass es da irgendein Standard gebe. Na ja falsch gedacht.

Werde es jetzt mal probieren und mich dann nochmal melden, ob es funktioniert hat oder nicht.

Jut danke funktioniert nur leider habe ich jetzt das Problem, dass ich die inputs als "uint8_t*" bekomme.
Leider bekomme ich es nicht in ein String bzw. in ein Char Array umgewandelt.

das Problem, dass ich die inputs als "uint8_t*" bekomme.
Leider bekomme ich es nicht in ein String bzw. in ein Char Array umgewandelt.

Und was ist dein Problem?
ein text ( char array ) und ein byte pointer sind nicht wirklich unterschiedlich, und wenn die andere Seite Text sendet, kommt auch Text an

uint8_t msg[100];
int size = client.read(msg,100);

Serial.write(msg,size);  // das geht

// Alternativ:

msg[size] = 0; // Endekennung anfügen
char* text = (char*)msg; // Damit du siehst, dass es ein string ist ;)
Serial.println(text); // sollte auch gehen ...

ohh Okey hätte jetzt ncht gedacht, dass dies so einfach ist da google mir nichts wirklches ausgespukt hat.
Bin leider in C/C++ Dateitypen nicht so bewandert...

versuchs mal mit der UIPEthernet-library. Damit lassen sich die ganzen Ethernet-beispiele auch auf dem Nano mit enc28j60-shield nutzen. Du musst jeweils nur das include von 'Ethernet.h' gegen 'UIPEthernet.h' austauschen.

  • Norbert