Go Down

Topic: Trouble with connecting Ethernet shield to internet! (Read 297 times) previous topic - next topic

Thetobe

Hi!

Me and my friends are trying to connect the out Arduino Uno + Ethernet Shield.
We have tried the example programs "Chatserver" and "Webclient". None of these work.
Below is the we have tried, the ip address is one that i have been given and is free, but i cant even reach is when pinging.

When i use the serial monitor i says "Chat server address: 0.0.0.0", Why is it like this? Have anyone of you seen this problem before, and solved it?

The code i've for chat server is the one below.

Thanks for any help!

/*
 Chat  Server

 A simple server that distributes any incoming messages to all
 connected clients.  To use telnet to  your device's IP address and type.
 You can see the client's input in the serial monitor as well.
 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.
// gateway and subnet are optional:
byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEE, 0xFF, 0xDD
};
IPAddress ip(193, 10, 39, 160);
IPAddress gateway(193, 10, 39, 1);
IPAddress subnet(255, 255, 255, 0);


// telnet defaults to port 23
EthernetServer server(23);
boolean alreadyConnected = false; // whether or not the client was connected previously

void setup() {
  // initialize the ethernet device
  Ethernet.begin(mac, ip, gateway, subnet);
  // start listening for clients
  server.begin();
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


  Serial.print("Chat server address:");
  Serial.println(Ethernet.localIP());
}

void loop() {
  // wait for a new client:
  EthernetClient client = server.available();

  // when the client sends the first byte, say hello:
  if (client) {
    if (!alreadyConnected) {
      // clead out the input buffer:
      client.flush();
      Serial.println("We have a new client");
      client.println("Hello, client!");
      alreadyConnected = true;
    }

    if (client.available() > 0) {
      // read the bytes incoming from the client:
      char thisChar = client.read();
      // echo the bytes back to the client:
      server.write(thisChar);
      // echo the bytes to the server as well:
      Serial.write(thisChar);
    }
  }
}



johnwasser

Try changing "Ethernet.begin(mac, ip, gateway, subnet);" to "Ethernet.begin(mac);".

This will allow the chat server to get an IP address through DHCP.  To use a fixed address you have to add a DNS Server address and include that in Ethernet.begin():

Code: [Select]
// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network.
// gateway and subnet are optional:
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
IPAddress ip(192, 168, 1, 177);
IPAddress gateway(192, 168, 1, 1);
IPAddress dnsserver(192, 168, 1, 1);   //  If you leave this out the subnet mask gets used as the gateway address and fails
IPAddress subnet(255, 255, 0, 0);

void setup() {
  // initialize the ethernet device
  Ethernet.begin(mac, ip, dnsserver, gateway, subnet);  // Needs FIVE arguments if you want to specify subnet.
  // start listening for clients
  server.begin();
Send Bitcoin tips to: 1G2qoGwMRXx8az71DVP1E81jShxtbSh5Hp

SurferTim

Quote
When i use the serial monitor i says "Chat server address: 0.0.0.0", Why is it like this? Have anyone of you seen this problem before, and solved it?
This is not a good sign. It means the Arduino is not communicating with the shield on the SPI bus. Insure the shield is seated correctly and completely into the Arduino, especially the ICSP pins.

Go Up