Go Down

Topic: Problema con "Ethernet Shield" (Read 1 time) previous topic - next topic

JosepEscobar

Dec 20, 2011, 09:08 am Last Edit: Dec 20, 2011, 09:45 am by JosepEscobar Reason: 1
Buenos dias,
Ayer llegó mi arduino, acompañado de el "Ethernet Shield", estuve haciendo los Hello World! y variaciones y tal y me fui a la cama muy ilusionado
La sorpresa llegó esta mañana, que he madrugado para probar el "Ethernet Shield"...

Mi sorpresa ha sido que despues de cargar el ejemplo del "servidor web" que viene con el compilador arduino 1.0, responde a ping, pero no carga la pagina, se queda como esperando.

He estado leyendo un par de horas por los foros, y no he sacado nada en claro.
He visto que en algun sitio se hablava de una libreria "ethernet2.h" pero no la he provado.

Supongo que con el ejemplo, sin nada conectado, deveria mostrar algo en el navegador web no?


AlexRodriguez

http://www.youtube.com/watch?v=r7E3uq_nMBg

JosepEscobar

#2
Dec 20, 2011, 08:36 pm Last Edit: Dec 20, 2011, 08:38 pm by JosepEscobar Reason: 1
Este es el tutorial que he usado esta mañana, y es con el que me da el error.
De hecho simplemente le cambio la IP y deveria funcionar, mostrandome el estado de las 6 entradas analogas. Pero no lo muestra.

He estado toqueteando el codigo de ejemplo, y he conseguido que me muestre algo, pero tambien muestra un monton de caracteres raros..

Luego he modificado una linia: (linea 51 del ejemplo)
Code: [Select]


       if (currentLineIsBlank) {  //antes esto era:   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();


Y me descarga un archivo...


Codigo entero del ejemplo:
Code: [Select]

/*
  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 4 Sep 2010
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, 1, 87);

// 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()
{
  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip);
  server.begin();
}

void loop()
{
  // listen for incoming clients
  EthernetClient client = server.available();
  if (client) {
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        // 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();

          // output the value of each analog input pin
          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') {
          // 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();
  }
}


JosepEscobar

#3
Dec 20, 2011, 09:02 pm Last Edit: Dec 20, 2011, 09:09 pm by JosepEscobar Reason: 1
Estava compilado con linux Mint, he provado en el mac y va perfecto

Tambien estava usando firefox, y con firefox no me va.
he provado con safari i chrome y va perfecto...
La tira de horas perdidas en esto, voy a buscar un buen canto pa darle con la cabeza!

Lo que no entiendo es por que si compilo con uno me va y con el otro no.

Gracias por la ayuda!

chiva

Suele ser por la versión de avr-gcc, hay veces que es demasiado nueva
Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

acv85zgz

Buenos días compañeros:

Me está pasando lo mismo que a JosepEscobar, que salen caracteres raros a la hora de recibir los datos con client.read().

La cuestión está en que estoy trabajando sobre una ubuntu pero no tengo mac para trabajar y ya no se que debo hacer para poder compilar correctamente y que no salgan los malditos caracteres raros.

Agradecería cualquier tipo de ayuda.

Un saludo.

samaro

Hola.

Mi problema es similar. Estoy trabajando con Ubuntu 12.04 y Arduino 0022 y el ejemplo WebServer se carga sin problemas, pero en el firefox no se muestra nada, también he corrido otros ejemplos y lo que se muestra son caracteres extraños. Pero cuando utilizo Windows 7 y Arduino 0022 para cargar WebServer todo marcha bien y el firefox muestra las lecturas de las entradas analógicas.

Para mi es extremadamente importante utilizar Ubuntu, y hasta ahora no tengo alguna pista de como superar este problema. Mucho agradeceré cualquier tipo de ayuda.

Atentamente,

Samaro.

Go Up