Problemas al configurar arduino (nano) y la placa de red w5100 con Ip estatica


#1

Hola, alguien me podría decir por que configuro la tarjeta de red (W5100) con ip estática y tras pasar por el método thing.handle() me pasa a dinámica y se me configura por el DHCP.
Adjunto un pantallazo mostrandolo y pego el código.
Gracias y saludos a todos.

La libreria que estoy utilizando es la 2.9.1

…y la versión del IDE de arduino es la 1.8.2

Muestro el código y los resultados:

#define THINGER_SERVER “192.168.1.100”
#include <SPI.h>
#include <Ethernet.h>
#include <ThingerEthernet.h>

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
// the dns server ip
IPAddress dnServer(194, 179, 1, 100);
// the router’s gateway address:
IPAddress gateway(192, 168, 1, 1);
// the subnet:
IPAddress subnet(255, 255, 252, 0);
//the IP address is dependent on your network
IPAddress ip(192, 168, 1, 12);
ThingerEthernet thing(“abraham”, “temperaturas1”, “123456”);

void setup() {
Ethernet.begin(mac, ip, dnServer, gateway, subnet);
Serial.begin(9600);
Serial.print ("La ip del cliente es: ");
Serial.println(Ethernet.localIP());
}

void loop() {

Serial.print ("antes de handle() la ip del cliente es: ");
Serial.println(Ethernet.localIP());
thing.handle();
Serial.print ("La ip del cliente es: ");
Serial.println(Ethernet.localIP());
delay(10000);
}


#2

Hola, he resuelto el problema de la siguiente forma, no se si será la correcta pero a mi me funciona…
Primero he comentado las siguientes líneas en la libreria ThingerEthernet.h:
while(Ethernet.begin(mac)==0){
THINGER_DEBUG(“NETWORK”, “Getting IP Address…”);
if(millis() - ethernet_timeout > 30000) {
delay(1000);
return false;
}
}

…y despues en mi código, dentro del loop he añadido algo parecido:

while(ip!=Ethernet.localIP()){
Ethernet.begin(mac, ip, dnServer, gateway, subnet);
}

Entiendo que la tarjeta de red se suele desconectar, por lo que hay que tenerlo en cuenta…