Buenos días,
He creado este proyecto básico, que es el típico ejemplo sin modificar, salvo la IP.
Compilo y cargo el programa en la placa y todo funciona perfectamente, desde cualquier equipo de la red se ve la página.
El problema empieza cuando lo desconecto del PC, y sólo le dejo el cable de alimentación a 5V y el de red RJ45.
He probado a reiniciarlo, a desconectarle luz, la tarjeta de red, e incluso pulsar el RESET, pero nada ha funcionado.
Si le vuelvo a conectar el USB al PC, funciona, pero claro, la idea es que sea un servidor independiente.
No entiendo que puede estar pasando, ¿podrían ayudarme?, por favor.
Este es el código fuente:
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 140, 222);
EthernetServer server(80);
void setup()
{
Serial.begin(9600);
Ethernet.begin(mac, ip);
// start the server
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
server.begin();
}
void loop()
{
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
bool currentLineIsBlank = true;
String cadena = "";
while (client.connected())
{
if (client.available())
{
char c = client.read();
Serial.write(c);
// Al recibir linea en blanco, servir página a cliente
if (c == '\n' && currentLineIsBlank)
{
client.println(F("HTTP/1.1 200 OK\nContent-Type: text/html"));
client.println();
client.println(F("<html>\n<head>\n<meta http-equiv=\"refresh\" content=\"5\">\n<title>DEC13</title>\n</head>\n<body>"));
client.println(F("<div style='text-align:center;'>"));
client.println(F("<h2>Entradas digitales</h2>"));
for (int i = 0; i < 13; i++)
{
client.print("D");
client.print(i);
client.print(" = ");
client.print(digitalRead(i));
client.println(F("<br />"));
}
client.println("<br /><br />");
client.println(F("<h2>Entradas analogicas</h2>"));
for (int i = 0; i < 7; i++)
{
client.println("A");
client.println(i);
client.println(" = ");
client.println(analogRead(i));
client.println(F("<br />"));
}
client.println(F("<a href='http://192.168.140.222'>Refrescar</a>"));
client.println(F("</div>\n</body></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");
}
}