Seleccionar página

Arduino Ethernet Shield – Controla Tu Casa Por Internet

por | Nov 16, 2014 | Tutoriales de Arduino

Domótica con Arduino Ethernet Shield

… ¿Y si te dijera que con Arduino Ethernet Shield puedes crearte tu propio web server y utilizarlo para domotizar tu casa? Ya sea para controlar tu vivienda o cualquier otro elemento a través de Internet, este shield de Arduino es una gran elección.

En este post te voy a enseñar todos los pasos que debes seguir para configurar tu Arduino Ethernet Shield y crear tu propia página web con la que podrás controlar tu casa desde cualquier parte del mundo. Además incluiré un código pensado para que puedas pegarlo fácilmente a tu sketch de Arduino y adaptarlo a tu proyecto con unos pocos cambios.

Tutorial Arduino Ethernet

Como te puedes imaginar, para este proyecto van a ser necesarios algunos conocimientos de HTML y configuración de redes, así como la librería Ethernet de Arduino. No te preocupes por eso porque te lo voy a explicar todo paso a paso para que te resulte lo más simple posible.

El Problema de las IP

Cuando conectas tu Arduino Ethernet Shield con tu Router, éste le asigna una dirección IP, es decir, una identificación que le permite diferenciar a tu Arduino del resto de ordenadores y demás elementos que tengas conectados a la red local de tu casa, así que esa dirección que va a utilizar tu Arduino tienes que introducirla en tu sketch. El problema es que esa IP es cambiante y cada vez que su valor cambie, tu sistema dejará de funcionar.

Del mismo modo, la dirección de tu Router cambia salvo que tengas contratado un sistema con IP estática. Esto no es lo más habitual ya que estos sistemas son más caros y a la compañía que “te proporciona el Internet” le interesa que tú tengas una IP dinámica.

Como lo que tú quieres es implementar tu sistema sobre tu Arduino Ethernet Shield, poder controlarlo desde cualquier parte del mundo (y no solo desde tu red de área local) y que este siga funcionando sin tener que modificar tu código (sketch) con independencia de lo que pase en tu red. Tienes que amenazar de muerte a tu proveedor de Internet solucionar varios problemas:

  1. Conseguir que conexión IP entre tu Arduino Ethernet Shield y tu Router (área local) no cambie.
  2. Abrir los puertos de tu Router para permitir que entre y salga información.
  3. Conseguir que la conexión entre tu Router e Internet no cambie (para que puedas acceder siempre desde la misma dirección).

Si te ha entrado el miedo en el cuerpo por aquello de “romper Internet”, tranquilo. Lo primero que debes saber es que desde la era de Internet todos los que somos un poco curiosos y hemos encontrado algo en Google que hemos intentado probar, hemos causado (ya sea por desconocimiento o intención) tantos problemas que ya todos los sistemas están hechos “anti-cafres”. Lo segundo es que, como siempre te digo, Arduino está pensado para ser fácil (y esto no iba a ser menos). Y lo tercero es que desde EducaChip estamos para ayudarte. Vamos a ello.

Conexión Arduino Ethernet Shield – Router

Te voy a decir algo que no te va a gustar: Cada Router se configura de una manera distinta. Como supongo te estarás imaginando, eso quiere decir que en este apartado no puedo ayudarte mucho. No desesperes, aunque todos son distintos, todos son similares y con un poco de paciencia no te costará realizar este paso.

Acceder a tu Router

Lo primero que debes hacer es acceder a tu Router desde tu navegador favorito. Para ello necesitas saber cuál es su puerta de enlace (o gateway en inglés). Te voy a poner cómo se haría desde Windows. Si estás utilizando un sistema operativo diferente, el funcionamiento es similar. En caso de que tengas dudas puedes dejar un comentario al final de este post o buscarlo en Google (no te costará encontrarlo).

  1. Pulsa el botón de inicio.
  2. En la barra de búsquedas, escribe ejecutar y pulsa la tecla intro.
  3. En la ventana que te acaba de aparecer escribe “cmd” y vuelve a pulsar intro.
  4. Te habrá salido otra ventana de fondo negro. Escribe en ella “ipconfig”.
  5. Dentro del texto que se acaba de escribir en la ventana hay una sección llamada Adaptador de Ethernet (o similar). Busca en ella la “puerta de enlace predeterminada” o “gateway” y apunta la dirección asociada (suele ser algo del tipo 192.168.1.1).

 

Puerta de Enlace con Arduino Ethernet

Ahora que ya tienes la dirección con la que acceder a tu Router, basta con que la escribas en tu navegador (en la zona donde normalmente escribes las URL). Seguramente te pedirá una contraseña. Si es la primera vez que accedes a tu Router será la contraseña por defecto. Suele ser algo tipo:

  • usuario: admin
  • contraseña: 1234

Si tienes no eres capaz de encontrar tu contraseña, aquí te dejo un enlace con contraseñas por defecto de Routers.

Configurar Área Local

Ahora que estás dentro de tu Router, debes decirle que siempre le de la misma IP a tu Arduino Ethernet Shield.

Por defecto, la mayor parte de los Routers utilizan un sistema denominado DHCP según el cuál van asignando IP locales a todos los elementos que se conectan a la red. Cada cierto tiempo esas IP cambian (también pueden cambiar si conectas y desconectas algún elemento) por lo que si inicias el programa Arduino Ethernet Shield sin modificar esto, funcionará al principio, pero cuando esa dirección cambie se perderá la comunicación y tendrás que modificar tu sketch. Para que esto no suceda tienes que decirle al protocolo DHCP que te parece fantástico que juguetee con las IP pero que no toque la de tu Arduino.

Todas las máquinas que conectas a tu red tienen un número identificativo denominado MAC que, de cara a la red, es como un DNI o pasaporte. El MAC de tu Arduino puedes fijarlo tú (basta con que no haya varias máquinas con el mismo MAC) y por defecto es:
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

Salvo que tengas especial interés por utilizar un MAC concreto puedes utilizar este.

Una vez tienes tu MAC, debes decirle a tu Router que a ese MAC le de siempre la misma IP. Los pasos son los siguientes:

Configurar Protocolo DHCP Arduino Ethernet Shield
  • Accede a las propiedades de tu DHCP a través de los menús de tu Router, es decir, busca por los menús la palabra DHCP o DHCP Settings (suele estar en: Configuración >> LAN >> DHCP).
  • En este menú podrás ver cosas interesantes como el rango de IP que asigna tu DHCP (puede que te venga como “IP Pool Range” o como direcciones IP inicial y final). Lo que debes buscar es algo tipo “Reserva de direcciones IP” o “MAC-Base Assignment” que es donde vas a enlazar la MAC de tu Arduino Ethernet Shield con una IP concreta.
Asignar MAC IP Arduino Ethernet
  • Abre el menú de para asignar la IP. Seguramente te aparecerá un recuadro para enlazar un MAC a una IP. Rellena los datos utilizando el MAC de tu Arduino Ethernet Shield y la IP que desees (por ejemplo 192.168.1.177) y asegúrate de guardar los cambios.

Si has conseguido llegar a este punto, mi más sincera enhorabuena. Entiendo que todos estos datos son realmente abstractos y puede resultar complicado para alguien sin experiencia. En caso de que estés teniendo algún tipo de problema, aquí estamos para ayudarte, así que relájate, toma aire y deja tu comentario. Intentaremos ayudarte.

Puertos del Router

Si has completado los pasos anteriores no deberías tener ningún problema en crear tu propia red de área local, es decir, si el proyecto que vas a implementar con tu Arduino Ethernet Shield únicamente necesita conexión entre los elementos de tu casa (del Router hacia dentro) no necesitas tocar nada más. Ahora bien, si tu idea es utilizar tu sistema desde cualquier parte del mundo debes permitir el acceso a tu sistema.

Gracias a que en el paso anterior conseguiste darle una IP fija a tu Arduino Ethernet Shield, ahora será muy fácil abrir únicamente el puerto que va a utilizar tu shield de Arduino.

De nuevo todo esto lo tienes que hacer desde tu Router. Los pasos a seguir son los siguientes (todo esto te sonará si, en su día, ya abriste los puertos del eMule):

  • Debes buscar en los menús de tu Router algo tipo NAT, Virtual Servers o Port Forwarding. El nombre varía en función del Router pero vas buscando modificar los puertos así que puedes guiarte por la palabra “Port”. Si no terminas de encontrar la manera de llegar a ese menú, no te costará mucho dar con él con una rápida búsqueda en Google (poniendo el modelo de tu Router).
Abrir Puertos Arduino Ethernet
  • Una vez estés en menú de puertos de tu Router, activa la opción de Port Forwarding y, para la IP local que le diste a tu Arduino Ethernet Shield, abre un puerto (típicamente el puerto 80 aunque puedes abrir otros como el puerto 5400). De nuevo no te olvides de guardar los cambios.

Conexión Router – Internet

Hasta ahora has conseguido que tu Router siempre le de la misma IP a tu Arduino Ethernet Shield y que este tenga acceso a Internet. En realidad ya está todo hecho. El único problema es que a la hora de acceder desde fuera de tu red local a tu shield de Arduino desconoces qué dirección tiene, es decir, no sabes qué IP tiene tu Router. Para solucionar este problema tienes varias opciones:

Contratar Una IP Estática

Como ya te he dicho antes, si contratas una IP estática no tendrías que preocuparte por saber en cada momento cuál es la dirección de tu Arduino Ethernet Shield. Puedes hablar con tu proveedor de Internet y, por un poco más de dinero al mes (depende del proveedor pero no suele ser excesivamente caro, entorno a 1€), bastaría con que recordases esa dirección para acceder en cualquier momento y desde cualquier sitio a tu sistema domótico.

Dejar Tu IP Dinámica

Si acostumbras a mantener tu Router siempre encendido debes saber que tu IP no cambia cada cinco minutos. De nuevo, depende del proveedor. Normalmente cambiará una vez por semana por lo que si estás frecuentemente en casa y consultas tu IP con regularidad (puedes ver cuál es tu IP pública en este link), puedes ahorrarte dinero y esfuerzo y utilizar este método. Ten en cuenta, eso sí, que si tu IP cambia y no estás en casa para consultarla, no podrás acceder al sistema.

Utilizar Un Servicio de DDNS

Este es mi método favorito. El sistema de las DDNS consiste básicamente en un dominio (como lo es en esta página www.educachip.com) que está asociado en cada momento a tu IP actual, es decir, un nombre fijo elegido por ti (y por lo tanto más fácil de recordar que una dirección IP) que esté siempre actualizado y dirija la conexión hacia tu Arduino Ethernet Shield.

 

Utilizar DDNS con Arduino Ethernet Shield

El problema de este método es que depende de tu Router. Existen muchos servicios tanto de pago como gratuitos de DDNS y cada Router soporta unos u otros. Que tu Router no soporte uno en concreto no implica que no puedas utilizarlo pero deberás descargarte la aplicación correspondiente de ese servicio DDNS y actualizar la IP desde el ordenador, es decir, tendrás que tener un ordenador siempre encendido, por lo que lo mejor es que utilices uno de los que tu Router soporta para que la actualización de la IP se haga desde el Router, sin necesidad de aplicaciones.

Los servicios de DDNS de pago rondan los 20€ (25$) al año. No es muy caro (cuesta más o menos lo que tener una IP estática) pero en mi opinión es mejor que realices un único pago y te compres un buen Router que soporte DDNS gratuitas (lo que además, dependiendo del Router que tengas ahora, puede incluso mejorar la velocidad de tu red). Sea cual sea tu elección aquí te dejo unos cuantos servicios de DDNS para que elijas el que más te convenga:

  • DynDNS: Servicio de pago (desde hace poco tiempo) pero líder en el sector y uno de los más soportados por los Routers.
  • Donweb: Gratuito y en Español pero relativamente nuevo y poco habitual en los Routers. Es el que yo utilizo y actualmente estoy intentando conseguir que funcione desde un Router que no soporte este sistema (ya te iré contando mis avances).
  • No-IP: La alternativa típica a DynDNS. Es gratuito pero requiere que reactives la cuenta una vez al mes y lo utilices desde un PC.
  • Namecheap: A parte de dominios a muy buen precio, esta web ofrece servicio de DNS dinámico gratuito.
  • TZO: Pertenece a la misma empresa que DynDNS y, como te puedes imaginar, tanto su precio como su disponibilidad en Routers es similar.

Como a pesar de que cada página tiene sus peculiaridades todas funcionan de forma similar, no voy a entrar a explicarte como conseguir tu servicio de DDNS. Basta con que entres en la página que prefieras (lo ideal es que sea una soportada por tu Router), te hagas una cuenta como harías en cualquier otra web y accedas a la sección de DDNS. Si tienes algún problema realizando este proceso puedes dejar tu comentario al final del post.

Una vez tengas tu DDNS entra de nuevo en la configuración de tu Router (aprendiste cómo hacerlo al principio de este artículo), accede a la sección de DNS dinámicas y escribe en las zonas correspondientes tanto el nombre de dominio como tus datos de usuario.

Actualizar DDNS Con Arduino

En el paso anterior te dije que si tu Router no soporta un determinado sistema de DDNS, tienes que descargarte una aplicación y tener tu PC encendido siempre. Esto no es del todo así ya que puedes implementar un código que haga que tu Arduino Ethernet Shield actualice automáticamente la IP.

No es el tema de este post así que dejaré la explicación en profundidad de este método para otra ocasión. Aun así, está bien que sepas que se puede hacer (por si quieres investigarlo). Ten en cuenta que este método te aporta versatilidad (porque no dependes del Router y puedes implementar el sistema en distintos sitios sin necesidad de realizar tantos cambios) pero añade carga de trabajo y espacio al microcontrolador cuando puedes dejar que eso lo haga el Router.

Código

Ahora que ya eres un experto en redes, programar tu Arduino Ethernet Shield debería ser pan comido. Aun así te voy a dejar dos códigos para tu Arduino:

  • El primer código es el proporcionado por el propio equipo de Arduino, al que le he modificado los comentarios para que te resulte más fácil entenderlo, modificarlo y lo adaptes a tu propio proyecto sin problemas.

#include <SPI.h>
#include <Ethernet.h>

//Se introducen los valores correspondientes a MAC, IP local, Puerta de Enlace y Máscara de Red
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

IPAddress ip(192,168,1,177);

IPAddress gateway(192, 168, 1, 1);

IPAddress subnet(255, 255, 255, 0);

//Se inicializa la librería Ethernet con el Puerto que se va utilizar en la transmisión
EthernetServer server(80);

void setup() {
// Se establece comunicación con el monitor serial (para ver si el sistema está funcionando correctamente)
Serial.begin(9600);

//   while (!Serial) {
//    ; // Se espera a que se conecte el puerto serie (solo para Arduino Leonardo)
//  }

// Comienzo de la conexión
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
//Se muestra por el monitor serial que la conexión está establecida
Serial.print(“server is at “);
Serial.println(Ethernet.localIP());
}

void loop() {
// Se espera a que alguien acceda a la página web
EthernetClient client = server.available();
if (client) {
Serial.println(“new client”);
// una petición http termina con una línea en blanco
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
//Si se llega al final de la línea se recive un nuevo carácter de
//línea y si se trata de una línea en blanco la petición http ha terminado
//así que se envía la respuesta
if (c == ‘\n’ && currentLineIsBlank) {
// cabezera típica http
client.println(“HTTP/1.1 200 OK”);
client.println(“Content-Type: text/html”);
client.println(“Connection: close”); // se cierra la conexión una vez se ha respondido a la petición
client.println(“Refresh: 5”); // se refresca la página automáticamente cada 5 segundos
client.println();
client.println(“<!DOCTYPE HTML>”);
client.println(“<html>”);

// se muestran en la web los valores de las entradas analógicas
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(“<br />”);
}
client.println(“</html>”);
break;
}
if (c == ‘\n’) {
// se comienza una nueva línea
currentLineIsBlank = true;
}
else if (c != ‘\r’) {
// se ha obtenido un carácter en la línea actual
currentLineIsBlank = false;
}
}
}
// se le da tiempo al navegador para recibir los datos
delay(1);
// se cierra la conexión
client.stop();
Serial.println(“client disonnected”);
}
}

  • Este segundo código te va a encantar. Es una muestra de que la pequeña capacidad de un Arduino no está reñida con la calidad y se puede crear una web funcional y a la vez estética. No es creación mía. El código HTML lo ha realizado un webmaster y diseñador web de categoría. Calidad, eficacia, eficiencia y estilo son su seña de identidad. Si este tema te interesa, te recomiendo que le eches un vistazo a sus perfiles en las redes sociales. Actualmente está empezando un nuevo proyecto, un startup que sin duda nos dejará boquiabiertos. Los comienzos nunca son fáciles pero él lleva la clave del éxito en el ADN.

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,177);

IPAddress gateway(192, 168, 1, 1);

IPAddress subnet(255, 255, 255, 0);

EthernetServer server(80);

void setup() {

//  Serial.begin(9600);
//   while (!Serial) {
//    ;
//  }

Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
Serial.print(“server is at “);
Serial.println(Ethernet.localIP());
}

void loop() {

EthernetClient client = server.available();
if (client) {
Serial.println(“new client”);

boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);

if (c == ‘\n’ && currentLineIsBlank) {

client.println(“HTTP/1.1 200 OK”);
client.println(“Content-Type: text/html”);
client.println(“Connection: close”);
client.println(“Refresh: 5”);
client.println();
client.println(“<!DOCTYPE HTML>”);
client.println(“<html lang=’es’>”);
client.println(“<head>”);
client.println(“<meta charset=’UTF-8’>”);
client.println(“<title>”);
client.println(“Casa domótica con EducaChip”);
client.println(“</title>”);
client.println(“<link”);
client.println(“href=’http://fonts.googleapis.com/css?family=Roboto:300|Playfair+Display:400′”);
client.println(“rel=’stylesheet'”);
client.println(“type=’text/css’/>”);
client.println(“<link rel=’stylesheet'”);
client.println(“href=’http://static.tumblr.com/pjglohe/2qinf00ga/estilos.min.css’>”);
client.println(“</head>”);
client.println(“<body>”);
client.println(“<div class=’page-wrap’>”);
client.println(“<header class=’header’>”);
client.println(“<h1>”);
client.println(“La casa domótica de EducaChip”);
client.println(“</h1>”);
client.println(“<div class=’educachip’>”);
client.println(“<span>Realizado por </span>”);
client.println(“<a href=’http://www.educachip.com’ target=’_blank’>”);
client.println(“www.educachip.com”);
client.println(“</a>”);
client.println(“</div>”);
client.println(“</header>”);
client.println(“<section class=’content-wrap’>”);
client.println(“<div class=’device’>”);
client.println(“<div class=’device-name’>”);
client.println(“<h2>”);
client.println(“Dispositivo #1”);
client.println(“</h2>”);
client.println(“</div>”);
client.println(“<div class=’forms’>”);
client.println(“<form class=’transition button on’>”);
client.println(“<input type=’button’ value=’ON’/>”);
client.println(“</form></div><div class=’forms’>”);
client.println(“<form class=’transition button off’>”);
client.println(“<input type=’button’ value=’OFF’/>”);
client.println(“</form>”);
client.println(“</div>”);
client.println(“</div>”);
client.println(“<div class=’device’>”);
client.println(“<div class=’device-name’>”);
client.println(“<h2>”);
client.println(“Dispositivo #2”);
client.println(“</h2>”);
client.println(“</div>”);
client.println(“<div class=’forms’>”);
client.println(“<form class=’transition button on’>”);
client.println(“<input type=’button’ value=’ON’/>”);
client.println(“</form>”);
client.println(“</div>”);
client.println(“<div class=’forms’>”);
client.println(“<form class=’transition button off’>”);
client.println(“<input type=’button’ value=’OFF’/>”);
client.println(“</form>”);
client.println(“</div>”);
client.println(“</div>”);
client.println(“</section>”);
client.println(“</div>”);
client.println(“</body>”);
client.println(“</html>”);

break;
}
if (c == ‘\n’) {

currentLineIsBlank = true;
}
else if (c != ‘\r’) {

currentLineIsBlank = false;
}
}
}

delay(1);

client.stop();
Serial.println(“client disonnected”);
}
}

Aquí te dejo una muestra de cómo luce el resultado.

Web Educachip con Arduino Ethernet Shield

Material Necesario

Para construir tu sistema domótico necesitas una Placa Arduino y un Shield de Ethernet. Puedes hacerte con ellos a muy buen precio aquí:

Información Adicional

Ya dispones de todos los conocimientos necesarios para crear tu propio sistema domótico (o cualquier otra aplicación similar) con Arduino Ethernet Shield. Sin embargo, este tipo de proyecto suele dar bastantes problemas (conexión de redes, problemas de firewall, etc.). Aquí te muestro una lista con conceptos que te serán útiles:

  • Recuerda que para acceder a tu sistema tienes que escribir en el navegador (en la zona donde habitualmente escribes las URLs) tanto la IP (pública si estás fuera de tu red de área local y la asignada a tu Arduino si estás dentro) como el puerto. Debería quedar algo tipo: 12.34.567.890:80 donde los :80 son el puerto que le has asignado a tu Arduino Ethernet Shield. En caso de que utilizases DDNS tendrás que poner el nombre de tu sistema DDNS (el mismo que añadiste al Router) seguido de :80 (o el puerto que hayas utilizado).
Tutorial Arduino Ethernet Shield
  • A parte de con el Arduino Ethernet Shield y tu placa de Arduino habitual, puedes implementar este sistema en un Arduino Ethernet, una placa que ya incorpora los elementos necesarios para la conexión a la red.
  • Muchos de los proyectos con conexión a Internet ocupan más kb de los que puede proporcionarte una placa de Arduino UNO, así que si quieres hacer algún sistema relativamente te recomiendo que utilices una placa Mega.
  • A la hora de configurar el MAC de tu Arduino y asignarle una IP puedes probar a cambiar el rango de direcciones IP que asigna tu protocolo DHCP. Asignándole a tu Arduino Ethernet Shield una IP fuera de ese rango, ésta no debería cambiar.
  • Cuando has implementado el código de tu conexión Ethernet has iniciado el sistema con:
    Ethernet.begin(mac, ip, gateway, subnet);

    Puedes iniciar la conexión simplemente con:

    Ethernet.begin(mac);

    El propio Arduino se adaptará al protocolo DHCP y buscará su IP. Debes tener en cuenta que dicha IP puede cambiar (si no seguiste los pasos correspondientes de configuración del Router) y tendrías que reiniciar tu sistema para que la IP de tu Arduino Ethernet Shield se volviese a actualizar. Además el tamaño de tu sketch incrementará considerablemente.

  • Aunque hayas abierto los puertos e insertado todos los datos correctamente, es posible que tanto el Firewall de tu ordenador como el de tu Router bloqueen la señal. Comprueba que tu firewall esté funcionando de acuerdo a lo que quieres.
  • Si a pesar de todos tus intentos el Firewall sigue dándote problemas, puedes acceder a la configuración de tu Router y buscar el término DMZ. Insertando la IP de tu Arduino Ethernet Shield en la sección DMZ consigues que a esa IP no le afecten los cortafuegos.
  • Si utilizas un Proxy, asegúrate de configurarlo (de la misma forma que hiciste con tu Firewall).
  • Es posible que por un puerto concreto en tu conexión (por ejemplo el puerto 80) haya más de un sistema en tu red de área local enviando y recibiendo información. Si esto ocurre la conexión no se realizará correctamente y tu sistema fallará. En ese caso puedes probar con otros puertos como: 5400, 5500, 5600, 5700, 5800 u 8080.
  • Algunos cables de Ethernet tienen los pines permutados. Para que lo entiendas es como si el pin 2 en un extremo fuese el receptor y en el otro el transmisor. Esto no sucede con todos los cables y en general no suele ser un problema con los ordenadores actuales (que están preparados para realizar la permutación internamente si es necesario) pero sí a la hora de conectar tu Arduino Ethernet Shield. Si has seguido bien todos los pasos y ves que no funciona, puede ser simplemente porque el cable no sea el adecuado.
  • Cuando creas una página web como la que has visto antes, necesitas utilizar hojas de estilo (CSS). CSS añade muchas líneas de código a tu sistema (y en mi experiencia da bastantes problemas). Puedes optar por una solución alternativa como la que se ha seguido en este post, donde las hojas de estilo están alojadas en Tumblr.

Una vez más esto ha sido todo. Como ves, no hay excusa para que te pongas manos a la obra y controles tu casa desde Internet. Puede que no sea el proyecto más simple pero con un poco de paciencia te harás con él enseguida, estoy seguro.

Mucho ánimo y acuérdate de compartir este post en tus redes sociales favoritas. Además, puedes suscribirte al blog para no perderte ninguna entrada.

Actualmente me dedico, entre otras cosas, a crear contenidos sobre Arduino y otros dispositivos eléctricos. Me encanta todo lo relacionado con el “Universo Maker”.

Siempre estoy activo en los comentarios. Si tienes cualquier pregunta, no dudes en dejármela en los comentarios. Intentaré responderte lo antes posible… Un abrazo smile

Enrique Romero,

Autor del post.

¿No quieres perderte nada? ¡Suscríbete!

327 Comentarios

  1. Buenas noches.
    El código me envía una serie de errores, soy principiante en el tema de arduino y no entiendo de qué se tratan.

    El error me lo muestra en ésta línea: if (c == ‘\n’ && currentLineIsBlank){

    Gracias por su atención.

    Responder
    • Buenas Daniel,

      Con esos datos es muy complicado saber dónde está el error. Te diría que copiases el código del error y lo pegases en Google. Seguro que te sale a qué se debe. smile

      Éstas cosas suelen ser tonterías.

      Un saludo, Enrique.

      Responder
  2. Hola, me encato tu post. Lamentablemente tengo un router para fibra óptica marca Zhone y no pude asignar una ip fija a la mac del Arduino, en ningún lugar aparecía para modificarla, puede ser tal vez porque de la unica forma que pude entrar a la configuración del router es como user, y no como admin. Ya voy a probar conectando otro router que tengo.
    Mi pregunta es se podría hacer algo así pero en vez de usar html hacerlo a través de una app en android? Hiciste algún tutorial sobre eso? Y también puede ser mas cómodo usando el wifi shield en vez del ethernet? seria lo mismo?

    Muchas gracias.

    Responder
    • Buenas Agustín,

      Con el de wifi debería ser bastante parecido a lo que ves en el post. No creo que tengas muchos problemas.

      No tengo ningún tutorial sobre Android (sí, se que va tocando tongue ).

      Lo que dices de asignarle la IP me parece bastante raro, la verdad. Puede ser que tengas que hacerlo con upnp en lugar de con dhcp, pero deberías poder hacerlo. Te daría más datos, pero cada router es distinto.

      Un saludo, Enrique.

      Responder
  3. Hola una pregunta a partir de los ejemplos que muestras hay como manejar modulos de relay, o modulos bluethoot, cuales serian los comandos para poder realizar el control de ese tipo de modulos.
    Saludos

    Responder
    • Buenas Danilo,

      No me haces precisamente una pregunta de sí o no. tongue Verás, primero tendrías que ver las instrucciones del módulo que quieras manejar, ver cómo se activan (por ejemplo poniendo un voltaje alto en un pin) y después configurar el Arduino con el Shield de Ethernet para que proporcionase ese voltaje.

      Un saludo, Enrique.

      Responder
  4. Saludos! Realmente he sacado buen provecho de estos aportes, tengo la placa ethernet y demás cosas para hacer un proyecto de domótica en casa. Quiero colocar unos sensores PIR, con unos reles octoacoplados, un arduino mega y esta maravilla de placa ethernet.
    La pregunta tal vez les sea un poco tonta pero ahí va:

    “Cómo afectará al funcionamiento del sistema si coloco estos sensores y/o demás placas conectadas por cable a distancias un poco largas?
    es decir, quiero conectar un sensor PIR (por cable) al arduino con una distancia de 2-3 metros, por ejemplo. funcionará bien igual? digo por la caida de tensión del cable y eso…”

    Desde ya muchas gracias.

    Responder
    • Buenas Lucas,

      No es ninguna tontería lo que comentas. tongue En cualquier caso, con esas distancias tampoco creo que notes demasiado los efectos. Ya me contarás.

      Un saludo, Enrique.

      Responder
    • hola perdona la pregunta de novato me gustaria saber mas de la comunicacion entre el arduino y el shield por que pines se efectua y si el codigo se descarga en el arduino o en el shield
      gracias por tu ayuda

      Responder
      • Buenas Marvin,

        El código se carga en el Arduino. para ver las patillas que están actuando puedes recurrir al datasheet del Ethernet Shield.

        Un saludo, Enrique.

  5. Hola Enrique
    me podrías ayudar a como cambiar de color un botón al momento de presionarlo y como mostrar una notificación de encendido o apagado si es posible realizarlo

    Responder
    • Buenas Misrain,

      Eso puedes hacerlo con HTML/CSS, no recuerdo exactamente cuáles eran las etiquetas, pero no te será difícil encontrarlo por ahí.

      Un saludo, Enrique.

      Responder
  6. Hola, me gustaría sabe como programar para poner una foto de fondo en estas paginas web y en que parte situarlas porque no se si tiene algún tipo de programación diferente o si hay que hacerlo desde otro programa. Muchas gracias;)

    Responder
    • Buenas Inma,

      Ése tipo de cosas están relacionadas con parámetros HTML tipo SRC. Te recomiendo que busques por ahí cómo poner una foto con HTML. Seguro que viene mejor explicado de como podría contártelo yo.

      Un saludo, Enrique.

      Responder
  7. Hola, voy comprar lo necesario y empiezo con el proyecto.

    Responder
    • Me parece estupendo, Roger.

      Responder
  8. el sketch tiene una codificación rara no puedo probar pueden arreglarlo por favor

    #include <SPI.h>
    #include <Ethernet.h>

    y así todo el código lo veo súper raro

    Responder
    • Lamento que te parezca un poco raro :S.

      Cada uno tiene sus costumbre al programar. tongue

      Un saludo, Enrique.

      Responder
    • Los codigos que no responden tras el include son los “&lt” que equivalen a “<" yo he conseguido que no me de errores al compilar, `pero luego no soy capaz de que haga nada.

      Responder
  9. Hola: me parece muy bueno el aporte, soy nuevo en el manejo de arduino, es compatible el shield con el arduino Mega2560?
    por favor.

    Responder
    • Buenas Guido,

      Es compatible. No deberías tener ningún problema utilizándolo. smile

      Un saludo, Enrique.

      Responder
  10. Hola Enrique, cuando quiero que el router le de la IP a mi arduino (tengo wifi shield en lugar de ethernet shield) me dice que la dirección mac no es válida, ¿Alguna sugerencia?
    gracias

    Responder
    • Buenas Juanjo,

      Es difícil decir dónde está el problema. ¿Has comprobado que la MAC coincida, que sea la misma y esté bien escrita?

      Un saludo, Enrique.

      Responder
  11. Hola Enrique, estudio Ingenieria en Sistemas, uno del Ingenieros de Electricidad que me dan me vio trabajando con Arduino y poes le gusto mucho y me dijo que le ayude haciendo algo parecido a tu post. El problema es que el quiere prender focos de una fabrica y sirenas. Esto desde su casa, osea usando una red movil para acceder al Ethernet! Me quedan muchas dudas en el asunto de configurar el router y la ip, es nuevo para mi redes, pero me ayudarias bastante si me recomiendas otro post donde explique mas sobre eso.
    En cuanto a este Post! Esta demadiado bueno, muy bin explicado! Saludos desde Ecuador y espero tu pronta respuesta!

    Responder
    • Buenas Bryan,

      Puedes ver más en este post. Espero que te sirva de ayuda.

      Un saludo, Enrique.

      Responder
  12. Hice paso por paso lo que escribiste en tu entrada y hasta ahi todo bien.
    El problema esque mi router solo acepta dyndns. Estoy obligado a tener que pagar por eso o tengo otras alternativas? Gracias!

    Responder
    • Buenas Fernando,

      A la larga, la alternativa más rentable es hacerte de otro Router.

      Un saludo, Enrique.

      Responder
  13. hola Enrique, soy victor hugo de nuevo, he podido realizar un servidor local en el cual alojar el archivo php que enviara mi correo, y funciona bien en la red domestica de mi casa, mi problema es que cuando lo hago en la red de la compañia la cual tiene proxy no se puede acceder al servidor, el proxy en el codigo de arduino ya lo tengo configurado pero al ingresar la ip de mi servidor local (la cual es una ip de la misma red de la compañia) me dice que la pagina se encuentra bloqueada, lo que quiero hacer es autorizar en el codigo a que esa ip se pueda ver, por decir cuando yo configuro el proxy en mi navegador de mozilla le ingrese la ip de mi lapop que es la misma de mi servidor para que asi pudiera acceder a traves del navegador y asi evitar la pagina de bloqueo, eso mismo tengo que hacer en el codigo de arduino ya que me aparece el bloqueo de la ip por el proxy pero no se bien donde configurarlo, espero y puedas ayudarme y me haya dado a entender

    Responder
    • Buenas Víctor,

      Me alegra ver que sigues dándole caña al proyecto. smile

      La verdad es que no he entendido del todo en qué caso tienes problemas de acceso. En cualquier caso, más parece un problema de la configuración de la red que del Arduino. ¿Puede ser que estés intentando acceder simplemente a una IP cuando lo que tengas que decirle a tu sistema es IP+Puerto?.

      Un saludo, Enrique.

      Responder
  14. Hola buenas, antes de nada darte las gracias por los tutoriales que tanta falta nos hace a gente que esta empezando como yo…jeje, al lío.
    Tengo arduino UNO con una sonda temperatura ds18d20 y shield sd midiendo la temperatura de la caldera, los datos quedan grabados en la sd, pero cada vez que quiero verlos tengo que meter la sd en el pc y sacar las graficas con excel.
    Quiero ir un paso más, y poder ver esa temperatura a traves de una web. Me llama bastante la atención la web, emoncms, Si le acoplo la shield ethernet a arduino, y hago todo lo relacionado al ajuste de la red, podre conectarme a través de esta página y verlo?
    Buscando en tiendas e visto que ha salido la shield ethernet 2, la original vale 25 pavos, aunque no me importa ya que me gusta tenerlo todo original. Imagino que sera lo mismo para conectarla no?
    Me estoy empapando de teoria, a ver si me pillo la shield y arduino mega para que pueda con todo, y ya vamos viendo!!

    Un abrazo y gracias otra vez.

    Responder
    • Buenas Juan,

      No deberías tener ningún problema para verlo. smile

      A ver si saco algo de tiempo y le hecho un vistazo a esta nueva shield y os pongo las novedades.

      Un saludo, Enrique.

      Responder
  15. Felicidades sus artículos son muy educativos y Uds. explican en una forma muy clara poner en funcionamiento la Ethernet Shield ya que son necesarios los conocimientos de varias materias, estoy estudiando este articulo, mi problema es la de abrir puertos en mi router y tener control de la Web.

    Responder
    • Buenas Arturo,

      Es la parte en la que más me cuesta ayudar (porque cada Router es diferente) pero si me concretas un poco más el problema te intentaré echar una mano.

      Un saludo, Enrique.

      Responder
      • Enrique a estas fechas he encontrado otras alternativas que facilitan mas el poder trabajar con esto. Pero a la fecha estoy intentandolo por aqui. Reconozco que es problema de la cia de mi internet, ademas los routers son de caracteristicas muy pobres y es imposible configurar por ej. las DDNS. Pero algun dia mejoraremos todos los servicios que nos ofrecen. Saludos nuevamente y Gracis por tu dedicafion y empeño.

      • Gracias a ti, Arturo, por tu comentario. smile

        Un saludo, Enrique.

  16. Hola Enrique te felicito por tu post, yo tambien utilizo ethernet shied pero mi problema es que cuando conecto el ethernet shield al modem lo reconoce y asi no puedo darlo de alta para abrir el puerto en el modem. ¿hay alguna forma de que el arduino le mande información al modem para que lo reconozca y se muestre la mac en el modem cuando se conecta a él? Mi modem es un Echolife HG520b. Hojalá me pudieras ayudas en esto. gracias.

    Responder
    • Buenas Polo,

      La verdad es que me he leído tu comentario varias veces y no acabo de entender del todo cuál es el problema. ¿Podrías concretármelo un poco más? XD.

      Un saludo, Enrique.

      Responder
  17. Hola tengo una duda, el segundo codigo en realidad levanta una salida del arduino? que salida seria y en que parte del codigo lo especifica ,
    Muchas gracias muy bueno el tutorial-

    Saludos

    Responder
    • Buenas Zarco,

      Para eso puedes ayudarte de este otro post, espero que no tengas mucho problema.

      Un saludo, Enrique.

      Responder
  18. Hola, estoy haciendo un trabajo de la universidad, justamente necesito lo que usted hace, pero yo en vez de tener la placa Ethernet, mi profesor me ha dado el modulo Wifly rn-xv 171 para conectarme a internet a traves de wifi. y claro, entonces la libreria que tu utilizas “Ethernet.h” no me vale. ¿cual tendría que utilizar yo? El resto del código supongo que será el mismo no?.

    Muchas gracias de antemano y muy buen post.

    Responder
    • Buenas Ivan,

      Si te digo la verdad, no me he puesto mucho con ese módulo y no me sé el nombre de la librería que utiliza. Respecto al código, seguramente no sea el mismo (aunque será muy similar).

      Un saludo, Enrique.

      Responder
  19. buenas tardes , Enrique he seguido los pasos como usted indico en el tutorial y al grabar la libreria me sale la leyenda “avrdude: ser_drain(): read error: Controlador no válido.” mi pregunta es: hay que habilitar primero la tarjeta ethernet shiels 5100. lo estoy haciendo en un arduino mega 2560 y la tarjeta ethernet shield dice mega compatible. podría ayudarme?

    Responder
    • Buenas Sergio,

      Ese problema suele deberse a que estás intentando cargar el programa teniendo especificado modelo de chip en la IDE o bien a que otro programa está utilizando el mismo “COM” por el que intentas cargar el programa.

      Un saludo, Enrique.

      Responder
  20. Buenos días Enrique, te quería preguntar si con este método se podría conectar varias arduinos en paralelo, es decir que trabajen todas a la vez.

    Responder
    • Buenas Celia,

      Aunque se puede hacer, tendrías que adaptar el código (y no me parece trivial).

      Un saludo, Enrique.

      Responder
  21. hola de nuevo Enrique ya funciona el ejemplo de webserver. el error era mi tarjeta creo que la decompuse porque al principio le cargue un programa donde tenia en el pin 13 un push y no me fije que ahi no se conectaba nada hasta despues, adquiri una nueva tarjeta y al conectarla el monitor serial me arrojo la ip y al cargar la ip en el navegador este cargo las entradas analogicas. gracias por tu ayuda que me brindaste. ahora continuare con lo que quiero que es enviar un email al activarse unas alarmas de unos bancos de baterias de contactos secos, pero claro primero empezare con un push. te ire informando de mis avances. nuevamente gracias (y si me funciona con mi cable de red pero con otro que me prestaron no me funciona)

    Responder
    • Buenas Víctor,

      Me alegro de que al final pudieras dar con la solución. Ya me contarás cómo te va. smile

      Un abrazo.

      Responder
  22. Hola!! Estoy haciendo el proyecto final de carrera, y tengo que conectar el modulo wifi (RN XV-171) usando la placa de arduino UNO pero no lo consigo. Tengo pocos conocimientos sobre esto así que si alguien me puede ayudar, estaría muy agradecida!.
    set ip dhcp 1
    set ip protocol 2
    set wlan join 0
    set wlan phrase ….
    join ….
    set ip host 0
    set dns name wwwuma.es
    set ip remote 80
    set comm remote GET$/…
    set opt format 1

    Si intento comunicarme al router de mi casa, poniendo el nombre de la red y la contraseña, no consigo que me aprezca el wifi en las conexiones.
    Sin embargo, cuando lo conecto a mi movil, si que me aparece en la lista el modulo wifi.

    Alguna idea? Qué puedo hacer?
    Graciass

    Responder
    • Buenas María,

      El problema podría estar en el Router. ¿Has seguido los pasos para configurarlo?

      Un saludo, Enrique.

      Responder
  23. Hola Enrique, hice el cambio de cable pero el problema persiste me sigue apareciendo en el ejemplo de webserver “server is at 0.0.0.0” no me imprime la ip que le asigno en el programa. te anexo el codigo

    #include
    #include

    // Enter a MAC address and IP address for your controller below.
    // The IP address will be dependent on your local network:
    byte mac[] = {0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02};
    byte ip[] = {192, 168, 1, 69};
    // 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(“”);
    client.println(“”);
    // 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(“”);
    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”);
    }
    }

    Responder
  24. Gracias por responder no importa que sea tarde, he probado en dos distinto lugares en mi casa y en la empresa donde hago mis practicas (aunque ahi tienen su propia red y no se si haya problemas con ello) el ejemplo de web server para empezar por ahi, pero en el monitor serial solo me aparece “server is at 0.0.0.0” y al cargar la ip que le pongo al programa me aparece pagina no disponible y time out, y pues en donde hago mis practicas no use mi cable use uno que ya estaba con un ip puesta.

    Responder
    • Buenas de nuevo,

      El problema de los cables es que algunos tienen los hilos permutados y otros no. Esto en un ordenador es irrelevante porque pueden hacer el cambio internamente sin problema, pero Arduino no tiene esa capacidad.

      Por lo que me cuentas, tiene pinta de que el programa en Arduino esté corriendo bien y sea un problema o de mala conexión o de configuración del Router. Estas cosas pasan más de lo que te imaginas y dar con la solución a veces te causa bastantes problemas de cabeza. Persevera y ve probando pequeños cambios uno a uno y darás con el fallo.

      Un abrazo y mucho ánimo Víctor. Ya verás que así es como más se aprende. smile

      Responder
      • Gracias Enrique por responderme de nuevo, mañana probare con un cable que me prestaran ya que yo solo cuento con el que venia con mi modem. No se si tenga algo que ver el que yo me conecte directo de mi modem ya que no cuento con un router, he seguido probando ejemplos y sigo con el mismo problema mas sin embargo al hacerle un ping a la ip que ingreso en el codigo si recibo respuesta. te informo cualquier resultado y gracias nuevamente por tu ayuda.

        Saludos desde México

  25. Hola Enrique veo que eres un experto en el tema,
    Adquiri un programa para el ipad y trae un Arduino uno + un BLE Shield al cual se le conecta un sensor de movimiento, todo funcionaba bien hasta que al conectar un nuevo sensor dejo de detectar el dispositivo en el ipad, crees que sea algo de programacion o que algo este dañado?.
    De donde eres, para en todo caso ver si lo puedes revisar?.
    Saludos y de antemano GRACIAS !!

    Responder
    • Buenas Arturo,

      Puede que el problema sea incluso más simple, que al conectar el nuevo dispositivo tu placa tenga problemas para alimentarlo todo.

      Vivo en Cáceres, España. smile

      Un saludo, Enrique.

      Responder
      • Gracias Enrique,
        Contacte al proveedor del programa y me lo cambiara como garantía.
        Saludos y buen año.

      • A ver si así se soluciona, Arturo. Ya me contarás. smile

        Un saludo y feliz año a ti también.

  26. Hola una pregunta tonta tengo arduino uno + ethernet shield mientras lo conecto con usb puedo correr el sistema y acceder al web server, pero necesito conoctarlo sin el usb, he probado alimentandolo por el conector pero no me funciona. que tendria que hacer?

    Responder
    • Buenas Pablo,

      En principio no deberías tener ese problema. Puede que la alimentación no sea lo suficientemente grande o que el programa no se haya cargado bien en tu placa.

      Un saludo, Enrique.

      Responder
  27. Hola de nuevo Enrique buen dia, aqui volviendo a molestar, sigo batallando con la ethernet, he probado varios ejemplos que he encontrado en la red donde dicen que si les funciono, pero al hacer los cambios de mi IP adecuandola a la de mi red, sigue sin conectarme la arduino, la verdad no se a que se deba y tengo poco tiempo para acabar el proyecto. Por otro lado cuando conecto la arduino a mi modem (un Thomson TG585 V8) y al entrar a la configuracion de mi moden en la seccion de red lan por ethernet no me aparece la arduino, en cambio cuando conecto la laptop con cable ethernet y meterme a la misma seccion si aparece que se encuentra conectada, no se a que se deba que no aparesca la arduino. Tambien observe que cuando conecto la arduino a ethernet en la seccion donde se configura la IP estatica dentro del modem me aparece una IP automatica pero no es del rango de mi puerta de enlace. otro punto es que el chip que trae la shield ethernet se calienta y temo que se haya quemado.

    Responder
    • Vaya mala suerte estás teniendo conmigo, de verdad lamento tardar tanto en contestar. sad

      Por supuesto no me molestas. smile Siempre me gusta saber cómo os va y si conseguís solucionar los problemillas.

      La verdad es que a lo mejor el problema está simplemente en el cable de ethernet, no tiene por qué haberse quemado el chip. Si que es verdad que se calienta bastante, pero eso lo puedes solucionar con un disipador.

      Parece una tontería lo que te digo del cable, pero cuando me pasó a mí tardé bastante en dar con el problema. Si tienes otro, intenta utilizarlo a ver si vamos descartando posible problemas.

      Un saludo y ánimo Víctor.

      Responder
  28. Buenos dias Enrique me gustaria saber si con la arduino y el etehrnet shield se podra enviar un correo electronico junto con un codigo en php.

    Responder
    • Buenas de nuevo,

      Creo que te respondí al mensaje anterior, disculpa la tardanza de nuevo uneasy

      Un saludo, Enrique.

      Responder
  29. Hola Enrique.
    El ejemplo de WebClient de arduino me podrá servir para enviar correo electronico con un arduino y PHP?

    Responder
    • Buenas Víctor (tienes nombre de artista smile ),

      Creo que tienes en la IDE un sketch pensado para eso (no recuerdo el nombre uneasy ), yo empezaría buscando por ahí.

      Un saludo y disculpa la tardanza en contestar.

      Responder
      • Muchas gracias lo buscare bien y feliz año.

      • He encontrado en los foros de arduino que algunos usuarios usaron el sketch de webclient junto con php para el envio del correo.

      • he encontrado en algunos foro de arduino que se puede conectar php con arduino usando el webclient y creando un servidor online,me gustaria saber si igual es necesario realizarle un ip fija al ethernet de arduino. porque ya lo he estado haciendo como explicas aqui solo que en mi router no encontre la opcion de ponerle mac al asignar un ip estatica sino que me pidio la mascara, le asigne la /24. al poner la ip que asigne en mi url me aparecio la configuracion de mi router, y pues no se si ya este asignada a mi arduino porque al checar los equipos conectados por medio de ethernet no aparece la de arduino.

  30. Enrique, te felicito por el post, muy bueno y de mucha ayuda.
    Quiero agregar un nombre de usuario y password al programa que desarrolle. Si agrego dos campos de texto, uno para el Usuario y otro para el Password, luego un boton con el campo submit, como leo estos datos en arduino?. Gracias

    Responder
    • Buenas Ruben,

      Discúlpame por haber tardado tanto en contestar, me has pillado en un pequeño parón navideño :P.

      Puedes hacerlo como lo harías normalmente con HTML… Si no recuerdo mal ya hubo un lector que dejó un ejemplo de cómo lo había hecho él (por si te interesa).

      Un saludo, Enrique.

      Responder
  31. Hola de nuevo Enrique,

    tengo una duda que no me acaba de quedar clara en tu post. Quiero instalar redes inalámbricas de sensores a varios clientes diferentes. Quiero que los datos de cada cliente se vuelquen en una plataforma cloud subcontratada (en mi caso Carriot) que ya se encarga de almacenar los datos en la nube, representarlos y volcarlos en la web que elija (mía o de mi cliente, si lo prefiere). Mi duda es, ¿tengo que contratar un servicio DDNS para cada cliente al que le instale una red de sensores inalámbricos y configurarla en su router, o una sóla “licencia DDNS” puede valerme para todas las instalaciones que lleve a cabo? No tengo claro el alcance y la funcionalidad de este tipo de servicio, ¿te importaría aclararme al respecto?

    Gracias,

    Un saludo!

    Responder
    • Buenas Rafa,

      La DDNS es como un dominio asociado a una IP. Si necesitas gestionar varias IP dinámicas necesitarías una DDNS para cada una de ellas. Sin embargo, creo que podrías comunicar todas estas redes a un nodo central y enlazar este a tu servicio en la nube.

      Un saludo, Enrique.

      Responder
      • Entendido Enrique,

        sin embargo pienso que para comunicar cada cliente a un servidor central igualmente tendría que contratar un servicio DDNS para cada cliente y aparte sería una pérdida de recursos ya que desde mi arduino ethernet puedo subir los datos directamente a mi servidor en la nube. ¿Estoy en lo cierto?

        Otra pregunta, las mismas empresas proveedoras de internet no ofrecen servicios de DDNS??

        Un saludo!

      • Buenas de nuevo Rafa,

        Supongo que las empresas con las que contrates Internet tendrán servicios de ese tipo pero yo lo suelo mirar en empresas de hosting (hay incluso empresas que lo ofertan de forma gratuita).

        Respecto a lo del servidor central, lo que te quería decir es crear una red de área local (donde las IP locales las puedes establecer y dejar fijas tú) para necesitar únicamente una IP externa.

        Un saludo, Enrique.

  32. buenas
    como conecto un rduino Ethernet para poder subirle el sketch (no es shield) solo lleva el puerto rj45 , la conecto al router con alimentacion externa y no aparece nada en la red

    Responder
    • Buenas Francisco,

      Puede que tu sketch no esté estableciendo conexión con el Router o que éste no esté configurado para detectar al Arduino.

      Un saludo, Enrique.

      Responder
  33. Hola Enrique, al fin encontré la guía que necesitaba!

    Tengo una duda: yo tengo contratado un dominio y un host para este. Entonces aquí va mi pregunta, es posible controlar el Arduino entrando desde la dirección IP de este dominio y un puerto?
    Espero haberme expresado bien.

    Un saludo y felicitaciones por tu trabajo

    Responder
    • Buenas Manuel,

      Me alegro de que te haya sido de utilidad la guía.

      Asociando el nombre de dominio a la IP de Arduino no deberías tener problemas para acceder.

      Un saludo, Enrique.

      Responder
      • Muchas gracias por la rápida respuesta Enrique.
        Te agradecería si pudieras decirme como tengo que hacer para lograrlo.

        Muchas gracias nuevamente.
        Saludos

      • Buenas Manuel,

        Disculpa la tardanza en contestar.

        La empresa que te haya proporcionado el dominio debería darte información para hacerlo.

        Un saludo, Enrique.

  34. Hola Enrique, gracias por toda la guía!

    Tengo todo lo que mencionas, pero el servidor me trabaja solo en la red local… He hecho todo, desactive el Firewall, agrega nuevas reglas de entradas y de salida para el puerto 80 con TCP y UDP, agregue la IP al DMZ, quite la protección SPI Firewall que trae el router y nada… No se que mas hacer porque me interesa que el servidor lo pueda chequear desde afuera. Estoy trabajando con IP dinámica e hice lo mismo que tu, mi IP es la 192.168.1.199, he probado con varias y nada. El router es un TL-WR741ND TPLink… Por favor si puedes me ayudas, y de ante mano muchas gracias!

    Responder
    • Listo Enrique, es que en Venezuela la empresa de redes principal es CANTV y por defecto el servicio viene con un protocolo de seguridad que bloquea el puerto 80, se desbloquea llamando a los operadores o en mi caso simplemente cambie el puerto por 8080. Excelente blog, sigue adelante, me fue de mucha ayuda para mi proyecto de grado. Saludos!

      Responder
      • Buenas Pedro,

        Me alegro de que al final lo solucionases. La verdad es que hay tantos factores a tener en cuenta que muchas veces son pequeñas tonterías las que impiden que funcione el proyecto.

        Un saludo, Enrique.

  35. Buenos días Enrique,

    Primero que todo felicitarte por el enorme trabajo que realizas y lo fácil que explicas las cosas. Con gente como tu la sociedad avanza. Sigue así!
    ¿Podrías explicar un poco más porque el proyecto de Mertuan con la puerta automática es complejo?
    Mi idea es conectar todas las persianas de casa a arduinos. Primero voy a empezar controlando una y luego ya extenderé el proyecto. Ahora mismo las persianas están motorizadas y son controladas por dos interruptores conmutados. Mi idea es que prevalezca esto sobre el arduino ya que si se colgara/muriera podría continuar usando los interruptores. He leído que usan dos relés para manejar desde arduino y intercalados entre los interruptores y el motor pero no dicen que pasa si se mandan ordenes opuestas desde el interruptor y el arduino. También me gustaría hacerlo con un shield wifi ya que no tengo cable ethernet en los cajones de las persianas. ¿Que material me recomiendas?

    Un saludo y perdona el toston

    Responder
    • Buenas Cgomis,

      Antes que nada, disculpa la tardanza en contestar.

      Lo que suceda si mandas órdenes opuestas desde el interruptor y el Arduino depende de cómo se haya realizado exactamente el montaje, así que no te podría decir.

      Respecto al material, para ese tipo de proyectos te puede valer con un Arduino UNO y el shield. Si estás trabajando con muchas persianas y están alejadas entre sí, otra opción es tener un Arduino funcione como nodo en la comunicación wifi y comunicar este con otras placas que gestionen los relés.

      Un saludo, Enrique.

      Responder
  36. Hola,

    Me queda una duda, aparece aquí todo lo necesario para poner una ip estática al arduino, pero en la pagina oficial de arduino dice que el shield de ethernet puede funcionar en modo DHCP O.o, alguien lo ha intentado??

    “Returns

    The DHCP version of this function, Ethernet.begin(mac), returns an int: 1 on a successful DHCP connection, 0 on failure. The other versions don’t return anything.”

    https://www.arduino.cc/en/Reference/EthernetBegin

    Gracias por el post, esta muy bueno smile

    Responder
    • Buenas Andrés,

      Es una alternativa. En mi caso, pienso que siendo el protocolo DHCP algo de “puertas para dentro”, es decir, dentro de tu área local donde conoces la IP que tiene tu placa y se la puedes asociar fácilmente desde el Router, no necesitas utilizarlo (aunque como todo, depende del proyecto que quieras realizar).

      Un saludo, Enrique.

      Responder
  37. Hola Enrique, ante todo felicitarte por el blog que me esta aclarando muchas cosas acerca de arduino esta genial! Tienes un nuevo seguidor.

    Como no quiero comprar a lo loco, te voy a comentar mi primer proyecto con arduino:
    Tengo una puerta de garaje que carece de mando, solo se abre desde dentro con un pulsador para subir y otro pulsador para bajar, la puerta para al final en cada extremo automáticamente.

    Mi idea era colocarle un arduino y mediante internet poder abrirla y cerrarla, donde esta el enchufe no hay cable ethernet por lo que habría que conectarlo mediante wifi, no se si seria muy difícil que cada vez que se abra la puerta mande un email o algo y si se pudiera pues ponerle un mando de radio frecuencia también y quedaría de lujo.
    ¿como ves el proyecto para alguien que nunca ha trasteado con arduino?¿seria muy inseguro hacer esto?

    Un saludo y muchas gracias por tu tiempo.

    Responder
    • Buenas Mertuan,

      Con un shield de wifi y relés podrías hacer un proyecto como el que indicas, pero sí que creo que es un pelín complejo si no has visto nada de Arduino aun. Además, necesitarás algunos conocimientos de HTML, electrónica, etc.

      Yo intentaría realizar un proyecto provisional, abriendo la puerta (por ejemplo) con un sensor táctil, un detector de distancias o algo por el estilo y, una vez comprendido eso, intentaría dar el paso al sistema que quieres.

      Un saludo, Enrique.

      Responder
  38. Hola Enrique,

    enhorabuena por el post, sin duda ayudas a mucha gente!! No he podido leerme en profundidad todos los comentarios enviados en relación a este post por falta de tiempo, quizás en alguno de ellos esté la respuesta a mi pregunta pero, me gustaría hacértela directamente:

    Tengo un proyecto en el que he instalado una WSN (3 nodos) al aire libre completamente autónomos, alimentación por placa solar + batería y comunicación inalámbrica Xbee Pro. La historia es que quiero subir todos los datos recogidos por cada nodo a un web server sin tener que conectar el nodo central a un ordenador/servidor conectado a internet sino que me gustaría directamente conectar el nodo central (receptor) al router y de ahí subir la información a la web directamente. ¿Es posible esto usando Arduino UNO + Ethernet Shield+ Xbee shield utilizando el código que has facilitado en este post?

    Agradecería enormemente tu respuesta.

    PD: En el futuro interectuaré con automatismos conectados a los nodos, pero de momento sólo quiero acceso a los datos.

    Responder
    • Buenas Rafa,

      He leído el comentario un par de veces pero no me termina de quedar claro del todo lo que quieres exactamente. ¿Podrías especificarlo un poco más?

      Un saludo, Enrique.

      Responder
      • Básicamente pregunto que si con el tutorial que has escrito y el código que has desarrollado puedo conectar a mi router un arduino con Ethernet shield, tal y como explicas, y también conectado a ese arduino un Xbee (para recibir los datos locales del resto de nodos/sensores) y enviarlos a través del router a internet.

      • Buenas Rafa,

        Tendrías que ver si los pines que utiliza tu Xbee no están siendo usados por el módulo de Ethernet. Si es así, con algunas modificaciones en el código no deberías tener problemas.

        Un saludo, Enrique.

  39. Hola, esta bueno tu post, sin embargo en el segundo ejemplo de la web con los botones muy interesante no indicas que pines de arduino se va a usar y lo mas importante tampoco en el codigo se especifica eso, entonces si uno desea probar el sketch obviamente se va a ver la pagina web que indicas pero si lo deseamos enviar a la vida real no sabemos como conectar a que pines de Arduino van conectados los reles o lo que deseamos manejar.. eso esta incompleto, por favor podrias especificar esa informacion, por lo demas todo esta ok, seria bueno que se modifique el codigo o nos indiques que pines usar para ese codigo y que modificaciones hay que hacer, muchas gracias y espero que puedas responderme.

    Responder
    • Buenas Humberto,

      Dediqué otro post en su momento para aclarar un poco más eso. Te dejo el link por si le quieres echar un vistazo.

      Un saludo, Enrique.

      Responder
  40. Buenas tardes Enrique, muy bueno el proyecto, de hecho excelentes los codigos de arduino, pero me queda una sola duda, bueno la verdad es que son 2 jajaja
    La primera: No logro entender muy bien a lo q se refiere en temas de programacion ese CurrentLineIsBlank
    si me pudieses orientar con esa sentencia lo agradeceria mucho
    La segunda: en que parte, Arduino, leeria lo que se envia atravez del input? osea de los botones ON – OFF? pasa que al momento de abrir puerto serial, solo muestra que recibe del Cliente ( client.read() ) muchos datos como tipo de navegador, etc. De ante mano muchas gracias.
    Atento a tu respuesta nos vemos, cuidate gran Pagina wink

    Responder
    • Buenas Pablo,

      Disculpa la tardanza en contestar. Creo que tu respuesta queda clara con el comentario que ha dejado Patuko. smile

      Un saludo y gracias por pasarte por el blog, Enrique.

      Responder
  41. Saludos¡. Muy interesante el tema, tengo una pregunta. Crees se pueda generar una red ethernet con un PLC s7 1200 y 16 arduinos Mega conectados en red. Con cada arduino pienso controlar un PWM para motores de CD. Me gustaría tu opinión.

    Responder
    • Buenas Víctor,

      No soy ningún experto en el dispositivo que comentas pero creo que te valdría con el PLC 1200 para gestionarlo todo.

      Un saludo, Enrique.

      Responder
  42. Hola Enrique, te felicito por tan buen material y sobre todo por tan buena dedicación al responder todas las dudas de nosotros tus lectores. Te escribo porque tengo ya casi un mes buscando información en internet acerca de un problema que tengo. Y es que cuando conecto la shield ethernet directamente a mi laptop por RJ45 funciona de maravilla sin ningún tipo de problema, pero cuando hago la conexion a mi router sencillamente no funciona. Esto lo he probado con todos los ejemplo que trae el IDE de arduino para ethernet, no uso cables cruzados, Si conecto cualquiera de los pc’s que tengo al router por LAN, puedo ver los equipos en la tabla de clientes del router, consultar sus respectivas ip’s y cuando hago pings entre ellos hay respuesta, cuando conecto la shield ethernet directamente al pc puedo hacer ping y tengo respuesta, pero cuando conecto la shield ethernet al router no puedo ver que esté en la tabla de clientes del router, si hago ping a la ip asignada a la shield no obtengo respuesta. No se que se te ocurre para encontrar la solución a este problema.

    De ante mano muchas gracias por compartir sus conocimientos y por ayudarnos a solucionar todos estos inconvenientes.

    Responder
    • Buenas Camilo,

      Aunque tendría que verlo tranquilamente, tiene pinta de ser algún problema con el cable uneasy

      Un saludo, Enrique.

      Responder
  43. Hola Enrique, haré un proyecto en el cual se enviara un correo electrónico cuando un banco de baterías active algunas alarmas, pienso hacer el código con el arduino uno, pero me dijeron que debo dejarla conectada a la red local, si agrego el modulo de ethernet shield debo de realizar lo de la ip estática que explicaste aquí? Disculpa no estoy muy familiarizado con esto pero me interesa aprender. Saludos

    Responder
    • Buenas Víctor,

      Si lo que vas a hacer es en área local, con asignarle la IP a tu Arduino y decirle al Router cuál va a ser la IP de tu placa sería suficiente.

      Un saludo, Enrique.

      Responder
      • Gracias por tu respuesta

  44. muchas gracias

    Responder
  45. buenos dias Enrique, antes que nada muy bueno tu tutorial, y gracias por la ayuda que nos das, pero tengo una duda, quiero crear una aplicacion en mi movil y que esta se pueda conectar a mi ethernet shield dentro de una red local, es esto posible, y me podrias decir un poco de lo que nesecito hacer, de antemano muchas gracias.
    saludos

    Responder
    • Buenas Marcelo,

      Necesitas crear una aplicación que se conecte que le envíe datos al Arduino a través del Router. En cuanto a Arduino, el programa sería parecido al de recibir datos a través de una web, solo que Arduino “escucharía” al telefono móvil.

      Un saludo, Enrique.

      Responder
  46. te agradeceria mucho si me dijeras como puedo mandarle al ethernet shield numeros mediante una aplicacion android mas bien que reciba numeros ya que las letras no las ocupo?

    Responder
    • Buenas Alexis,

      No podría darte una respuesta trivial ya que necesitas implementar software tanto para Arduino como para el dispositivo android, pero me lo apunto para un post. smile

      Un saludo, Enrique.

      Responder
  47. buenos días enrique estoy tratando de medir distancia con un arduino uno ,un arduino shild ethernet con un sensor ultrasonico mediante un ejercicio que aparece en Internet pero no me compila estoy utilizando las siguientes expresiones:
    float cmMsec
    long microsec=ultasoni.timing
    cmMsec=ultrasoni.convert(microsec.ultrasonic::CM));

    Responder
    • Buenas Fabio,

      Es difícil saber dónde está el problema con esos datos, pero veo que te faltan “;” al terminar las líneas de código.

      Un saludo, Enrique.

      Responder
  48. Hola, he intentado algo tan simple como cargar el ejemplo WebServer de la IDE de Arduino. Cuando trato de acceder a la direccion que le he asignado a arduino me dice que la pagina no esta disponible. ¿Que hago por favor?

    Responder
    • Buenas Jaime,

      Es posible que el problema venga de la configuración del Router, el cable de Ethernet que estés utilizando, que estés intentando acceder desde área local con una IP externa, etc. Te recomiendo que le eches un vistazo a los tips que aparecen al final de post y vayas probando a ver si das con el problema.

      Un saludo, Enrique.

      Responder
  49. Hola, olle tengo una duda muy poco comun, se puede hacer una Enthernet Shield manualmente ?, Si supongo que no tiene mucho sentido y que es mil veces más práctico cómprala ya hecha, pero aquí la idea es aprender desde lo más profundo y para ello construir mi propia placa sin librería, tienes idea de cómo usar el enc28j60 ?

    Responder
    • Buenas,

      Puedes hacerlo. El problema es que es algo lo suficientemente complejo como para que no entiendas lo que estás haciendo si no tienes una base de conocimientos sólida.

      Estoy completamente a favor de hacer lo máximo posible desde cero cuando se trata de aprender pero, sinceramente, no empezaría por aquí.

      Un saludo, Enrique.

      Responder
  50. Hola, implemente un sistema de adquisición de datos con arduino y shiel ethernet conectado a mi red local. Tengo conectado arduino con mi computadora con el cable usb. Puedo acceder al programa inalambricamente desde la pc o un celurar. El programa empieza a trabajar cuando veo el monitor serial. Si desconecto el cable usb de la pc el programa se detiene. Seguí un ejemplo para lograr la comunicación. ¿Que debo hacer para que una vez cargado el programa en la arduino pueda desconectar la PC y el programa siga trabajando?
    Espero comentarios.
    Gracias.

    Responder
    • Buenas Luis,

      Puedes alimentar tu placa mediante el conector de Jack (por ejemplo a la red eléctrica de tu casa).

      Un saludo, Enrique.

      Responder
  51. gracias por la informacion , tengo un router zyxel p-660hw-t1 v2 y mi inconveniente es que no se como agregarle la mac del shield ethernet y la ip , ubique DHCP pero la verdad no se como configurarlo , gracias .

    Responder
    • Buenas Cristian,

      Cada Router tiene su propia configuración y, en ocasiones, los nombres cambian. Si tienes el manual del Router a mano échale un vistazo y verás como se cambian lo parámetros.

      Un saludo, Enrique.

      Responder
  52. Enrique primero q nada muchas gracias y felicidades por el excelente trabajo y publicación.
    Hice las pruebas a la Ethernet Shield y logré con tu Sketch conectarla a una BD MySql volviendo el codigo en un servicio y almacenar los datos probé el DDNS y funcionó, adicionalmente probe con codigo JavaScript y PHP y despues de muchas mejoras funcionó correctamente . Es todo gracias a ti bro un saludo y exitos smile

    Responder
    • Enhorabuena Marcelo, me alegro de que funcionara. smile

      Un saludo.

      Responder
      • Gracias bigsmile

    • Hola Marcelo una pregunta como hiciste la conexión a la BD? lo que necesito es un pequeño login, en el cual si son los datos correctos, aparezca una pequeña interfaz caso contrario que no haga nada.

      Responder
  53. Hola muy buen post
    tengo un problema, estoy utilizando un mini tablero ethernet parecido al ENC28J60, de las mismas medidas pero con un chip w5100 y no logro hacer la conexion, copie tu sketch y en el monitor serial aparece “server is at 0.0.0.0”.

    conecte mi shield a los siguientes puertos MOSI=51,MISO=50,SCK=52,SS=53 (Doy por hecho que conectandolos a esos puertos los reconoce la libreria de spi.h)

    configure la mac de la arduino con la ip 192.168.1.177, y no logro que el sketch funcione sad

    PD: La shiel tiene otros pines Poe+, poe-, otro gnd y reset que deje sin conectar)

    Gracias por su ayuda.

    Responder
    • Buenas Daniel,

      La verdad es que no he hecho las pruebas con ese módulo. Intenta encontrar la documentación del dispositivo y ver si alguno de los pines está mal conectado, etc.

      Un saludo, Enrique.

      Responder
  54. Hola Enrique , como estas?
    Muy bueno el tutorial!!!

    El motivo del comentario es para pedirte una gran ayuda!!!

    Segun veo, en este tutorial hay una vinculacion medianto un cable ethernet con la pc.
    Ahora…..Se puede conectar un ESP8266 (Modulo wifi Arduino) con una PC WebServer de forma inalambrica?

    La idea seria la siguiente:

    Medir distancia recorrida de un jugador dentro de un polideportivo . El jugador llevaria un modulo GPS + ESP8266 (Modulo Wifii Arduino).
    A medida que se vaya tomando mediciones del GPS, el ESP8266 se encargaria de transmitir por Wifi a una PC que se encontraria en el mismo sector de entrenamiento.

    Hay alguna forma de Comunicar el ESP8266 que ´posee el jugador con la PC sin poseer un HW receptor??
    Algo como una red ad hoc??

    La idea seria que la PC reciba la informacion y la vaya actualizando en una Pagina web.

    Gracias!

    Responder
    • Buenas Fernando,

      ¡Menudo curro tienes por delante!

      La verdad es que no le he dado mucha caña a este módulo, pero viendo la de preguntas que estoy recibiendo sobre él, seguramente haga algún post pronto.

      Podrías enviar la información al ordenador a través de un Router de forma inalámbrica como se hace habitualmente, pero no sabría decirte si hay ya dispositivos, métodos de flooding… creados para establecer redes ad hoc con Arduino con algún módulo concreto (habría que mirarlo).

      En cualquier caso, creo que lo que más me preocuparía es cómo van a soportar tus dispositivos los golpes y “traqueteos” típicos de las actividades deportivas.

      Un saludo, Enrique.

      Responder
  55. hola!! oye disculpa pero yo tengo un router Huawei pero no encuentro los apartados para asignar IP estatica ni el port forwarding, no se si pudieras ayudarme con eso, te lo agradeceria mucho!!

    Responder
    • Buenas Luis,

      Eso es algo que depende de cada Router pero seguramente puedas mirarlo en el libro de instrucciones.

      Un saludo, Enrique.

      Responder
  56. Muy buen aporte gracias por compartirlo , también quería hacerte una consulta es posible realizar este proyecto pero con un sistema de wifi ya sea utilizando el esp8266 porque yo tengo ese modulo y quería hacer algo parecido a este proyecto pero sin utilizar cables porque tengo una cuenta dyndns para poder monitorear mi casa desde afuera.

    Responder
    • Buenas Roberto,

      La verdad es que no he probado ese módulo aun pero apostaría a que con los cambios pertinentes (los relativos a la configuración y/o librerías de tu módulo), no deberías tener ningún problema.

      Mucho ánimo y un saludo. smile

      Responder
  57. Te agradezco que compartas este tutorial, es muy completo y seguramente al terminar de leerlo, aprenderé muchas cosas. Muchas gracias!!!

    Responder
    • Gracias a ti por el comentario, Roberto. smile

      Responder
  58. Hola.
    Muchas gracias por este post tan extenso y didáctico. Sólo me ha quedado una duda: dices que hay que deshabilitar el DHCP del router para que no cambie la ip del shield, pero si en el sketch ya especificamos la ip de este mediante IPAddress ip(192,168,1,177); ¿realmente es necesario? No tengo posibilidad de probarlo y me gustaría aclarar este detalle.
    Muchas gracias.

    Responder
    • Bueno, supongo que el tema va más por el hacer que el router no dé la ip que ya tiene la placa a otra máquina de la LAN que porque la placa reciba ninguna otra ip del DHCP….

      Responder
    • Hola Oscar, no es necesario desactivar el DHCP, si tu router te permite establecer IP estaticas en tu LAN (busca en la config avanzada de tu router). Es decir asignas en la config del router esa IP que hayas cargado en tu sketch. De esa forma no modificas el dhcp, y solo le indicas al router que quieres que el arduino tenga siempre esa determinada ip.

      Responder
  59. Hola Enrique , soy nuevo en el mundo arduino.. quisiera saber como vas con tus investigaciones que mencionas en el post sobre Donweb. Necesito en los posible no depender del router, o bien acudir a la actualizacion de DDNS desde el arduino.. por favor cualquier ayuda es bienvenida desde ya gracias.. y excelente post !

    Responder
    • Buenas Matías,

      No conseguí hacer que corrieran DDNS distintas a las que soportaba por defecto el Router. Aun así, tienes la opción de adquirir un Router que sí te las soporte y evitar ese problema.

      Un saludo, Enrique.

      Responder
      • Hola nuevamente! entonces ya que mi router soporta el servicio No-ip, el Arduino debería con ello poder actualizar solito su ip, sin intervencion de una pc?
        Si por las dudas sabrias como hacer que el Arduino envíe e-mails automáticos ante un determinado evento.. por favor tirame alguna data al respecto smile

      • Buenas Matías,

        No he hecho ningún proyecto sobre eso aun. Sin embargo, aunque no recuerdo el nombre, me suena haber visto librerías pensadas para ello. Yo buscaría por Internet eso, seguro que lo encuentras.

        Un saludo, Enrique.

      • Hola. Aquí hay un ejemplo de sketch que directamente actualiza el DDNS a intérvalos regulares: http://www.open-electronics.org/arduino-ddns-dynamic-dns . El ejemplo es con DynDNS (que no es gratuito) pero se puede modificar fácilmente para un servicio que sí lo sea (como No-IP) simplemente cambiando los datos de la consulta GET (lo que hay dentro del if(clientdyn.connect())…) Los datos de No-IP, por ejemplo, se pueden encontrar aquí: http://www.noip.com/integrate/request

        Por otro lado, el sketch se podría hacer más sofisticado comprobando si realmente es necesario hacer la actualización comprobando la respuesta de hacer previamente una consulta a checkip.dyndns.org o similar…pero bueno, es otra opción

      • Buenas.. se agradece el aporte! sera cuestion de seguir investigando sobre el tema ddns..
        Ahora me encuentro con problemas de espacio, no puedo compilar un sketch porque supera los 28kb..
        si alguien sabe como ejecutar un sketch desde la tarjeta SD sería una salvación

      • tengo Arduino Leonardo R3 + Ethernet shield (el lector de sd allí)

  60. Hola, muy buen trabajo, estoy tratando de realizarlo, pero al momento de acceder al sitio, por medio del explorador, me sigue saliendo la página de configuración del shield…¿que estoy haciendo mal?, me dijeron que debía borrar el actual “index.html”…pero no lo creo.

    Responder
    • Buenas Charly,

      ¿Qué dirección estás poniendo la del Arduino o la puerta de enlace? ¿Accedes desde local o “desde fuera” del Router?

      Un saludo,, Enrique.

      Responder
  61. Hola, te felicito por el sitio, esta genial solo estoy incursionando en el tema soy un super novato, pero vamos a aprender haber que tan lejos llegamos.

    Saludos y Congratulations

    Responder
    • Mucho ánimo Juan Pablo. Ya verás como antes de que te des cuenta eres un auténtico experto :). Si tienes cualquier duda, te esperamos en el blog.

      Un saludo, Enrique.

      Responder
  62. Hola Enrique, buen post y blog en general.

    ¿Que opinas de los módulos 8266? Son pequeños y programables con 2 GPIO. Funcionan a 3.3v

    Yo tengo la idea de poner múltiples de estos por toda la casa, de forma discreta por el tamaño. Conectarlos a sensores o actuadores para funciones específicas (interior de corriente, el motor del porton, un sensor de temperatura, movimiento, luz humedad u otros)

    luego montar un dispositivo de mayor capacidad (arduino o raspberry) que accede a los anteriores por medio de la res local y los controle u obtenga información de ellos. Este también sería la vara a internet.

    Tendría algo así como una sub-red de dipositivos

    Responder
    • Buenas Diego,

      Perdona la tardanza en contestar.

      Opino que tengo muchas ganas de hacerme con alguno :P.

      Aunque lo que no sé es cómo funcionará el sistema teniendo más de uno. Habría que mirarlo, pero no creo que fuese trivial. Si te animas a hacerlo, cuéntame cómo te va smile

      Un saludo, Enrique.

      Responder
  63. enrique buenas tardes queria preguntarte si puedo utilizar ethernet shield como un dispositivo que me sirva para que reciba informacion de los sensores instalados en cada eje del camion (se utilizan para medir el peso de la carga que lleva en ese momento) viajando de una ciudad a otra y yo desde mi casa via internet pueda observar dicha informacion, y si no me sirve ese dispositivo cual me puede servir para que transmita las cifras del peso y yo pueda verlas via internet ??

    Responder
    • Buenas Gustavo,

      El problema es cómo conectarte a Internet. Podrías utilizar algo tipo un móvil con datos, pero el shield de Ethernet no “genera Internet”, por lo que por, sí solo, no sería de utilidad.

      Un saludo, Enrique.

      Responder
  64. hola amigo tengo un arduino uno +gsm gprs sim900
    hace una llamada y luego un mensaje
    1- el detalle es que cuando pulso el boton que esta conectado al pin 11 del arduino hace la llamada y se corta hay esta bien , pero despues dela llamada debería lenviar el mensaje también al celular pero no llega el mensaje
    al celular
    pero en la consola del arduino sale que hace la llamada y envia el mensaje por favor le envio el codigo lo puede usted revisar y me lo envia o si tiene usted un codigo me envia

    Responder
    • Buenas Jose,

      Tu correo era demasiado largo y no me parecía buena idea publicar tu información personal en la web. Si quieres, puedes contactar conmigo a través de la sección de contactos.

      Un saludo, Enrique.

      Responder
  65. Hola Alberto tengo un pequeño problema, cuando voy a poner en la barra del buscador la puerta de enlace predeterminada no consigue conectarse.

    Responder
  66. excelente Enrique,, me parece muy bien tu explicacion ,,, tendras en tus conocimientos como hacer un puente wifi con arduino… saludos..

    Responder
    • Gracias por pasarte por el blog, Luis Manuel smile

      Responder
  67. hola quisiera primero felicitarte por tus aportes a gente que como yo no tenemos muchos conocimientos en esto de abrir puertos ,segundo pedirte ayuda ya que no logre hacerlo, tengo la ip del router ,clave y usuario pero ninguna opcion parecida a las que vos colocaste ….saludos cordiales, y si puedes responderme al mail te paso mas datos para que evalues como podria hacerlo .
    Gracias desde ya …

    Responder
    • Buenas Jorge,

      Le echo un ojo ahora mismo.

      Un saludo.

      Responder
  68. Hola enrique! una duda estoy trabajando con un ds18b20 para ver temperatura a través de una pagina, pero quisiera que cuando la temperatura se salga del rango enviar un correo como de alerta, como puedo hacer esto o que tutorial me recomiendas para esto, saludos!

    Responder
    • Buenas Carlos,

      ¿Cuando dices un correo te refieres a un e-mail?

      Responder
      • hola enrique si!! me refiero a un e-mail quiero enviarme un e-mail cuando la temperatura pase del umbral de funcionamiento, crees que me puedas ayudar?, si gustas te paso mi e-mail para que podamos platicar fluidamente saludos!

      • Buenas Carlos,

        Disculpa la tardanza en contestar, no he tenido acceso al ordenador. No he querido publicar tu e-mail, pero puedes escribirme al correo desde la sección de contactos de la web.

        Un saludo, Enrique.

  69. Hola a todos, Antes de nada dar las gracias a Enrique por su magnífica ayuda que nos brinda a todos los que estamos empezando con arduino. He leído un comentario de Enrique sobre envíos con twitter desde arduino, pues yo tengo el arduino uno y el modulo ethernet hr911105a, he logrado ponerlo a funcionar como un servidor (encender o apagar un led desde cualquier dispositivo conectado a la rd) y como cliente (enviando datos a un servidor mysql), pero no logro enviar un msg con twitter, me da error de codigo =0. Incluso he cambiado la libreria ethernet por UIPEthernet y sigo igual. Alguien me puede ayudar???. Aparentemente es facil pero no logro enviar. Gracias.

    Responder
  70. Excelente, muy buena tu pagina.
    Una consulta, en el segundo código, donde se hace referencia a que pines del arduino le estas haciendo on/off?

    Responder
  71. Hola Enrique. Muchas gracias por el tutorial, está genial, pero tengo una duda. Lo que pasa es que mi shield ethernet no está conectada indirectamente al modem router,sino que está conectada con cable a un access point en modo repetidor de la señal del modem, He hecho todo lo que has dicho y me funciona perfectamente si me conecto a mi red local, pero si lo hago de otra red por internet no aparece la página web. Para ese problema creo que es lo que pusiste sobre el NAT cierto? Pero en el caso de la conexión que te he dicho, cómo sería? Gracias de antemano.

    Responder
    • Buenas Pedro,

      ¿Conectándolo directamente al Router funciona fuera de área local?

      Un saludo, Enrique.

      Responder
      • No lo he probado ya que no puedo. Solo tengo acceso de conectarlo al Access Point. Y como te dije sí me funciona muy bien de esa forma pero solo si estoy conectado desde mi area local, mas no fuera. sad

      • Pedro, te lo digo porque quizás tu problema no sea el punto de acceso si no acceder desde fuera de la red local.

        Un saludo, Enrique.

  72. Hola Enrique, antes que nada quisiera felicitarte por el estupendo trabajo que has hecho al realizar estos tutoriales, muy bien explicados y lo mejor en mi caso, que estan en español, ya que mucha documentación buena esta en inglés. Te comentó que tengo un proyecto con un arduino MEGA, (el cual me hizo conocer tu página por el uso del ethernet shield), en el cual adquiero valores de corriente, voltaje, factor de potencia, rpm de un par motor/generador, me alegra decirte que esta parte ya la tengo (después de muchos problemas), pero ahora va la última etapa del proyecto, es poder visualizar estos datos via web y poderlos graficar en tiempo real, para poder accesar en un cel, tablet o pc desde internet, estaba viendo la alternativa de plotly pero tiene el incoveniente de tener poca documentación y las pruebas que he hecho no me han resultado como esperaba, las has manejado? o sabrás de alguna forma en que pueda lograr mi cometido y sobrevivir en el intento? Necesito ayuda plz

    Responder
    • Buenas Alberto,

      Puedes hacerlo con el propio sketch de Ethernet que viene en la IDE de Arduino con unas pocas modificaciones. Si te fijas, lo que hace ese sketch es coger datos de un sensor y mostrarlos en una web (a la que puedes acceder normalmente desde cualquiera de los dispositivos que comentas). Me parece lo más sencillo.

      Un saludo, Enrique.

      Responder
  73. Hola muy interesante y útil… mi pregunta es como se podría hacer para que cargue el css desde una memoria microsd a si podría tener una pagina mas bonita sin necesidad de acceso a Internet u otro equipo local

    Responder
    • Buenas Fernando,

      Puedes utilizar la librería de SD para almacenar datos en ella pero la verdad es que no he probado a almacenar en ella el css, no sé qué tal irá.

      Un saludo, Enrique.

      Responder
  74. hola amigo, estoy realizando un proyecto en arduino con ethernet shield y todo funciona muy bien, pero quisiera crear un usuario que pueda acceder a mi arduino desde una direccion ip y que solo pueda controlar algunos dispositivos y un administrador que pueda controlar todo, estoy trabajando con sensor de temperatura, sensor pir y un motor de corriente continua.
    muchas gracias por tu respuesta.

    Responder
    • Buenas,

      La verdad es que de esto bien se podría hacer un post entero. Se me ocurre como solución fácil (aunque por seguro no la más óptima) crear dos contraseñas y que un usuario tenga una contraseña “admin” y los otros una contraseña “común”. La idea es que, en función de la contraseña que pongan, tú muestres unos elementos u otros.

      Un saludo, Enrique.

      Responder
  75. Buenas tardes, mi nombre es Enrique, radico en México DF y estoy interesado en la tecnología de Arduino, he trabajado con diferentes marcas de microcontroladores, ahora quiero incursionar es esta tecnología, tengo algunas dudas, y espero que Usted pueda ayudarme:
    Quiero controla un equipo industrial el cual tiene un puerto Ethernet (Esclavo Modbus TCP), actualmente lo controlo con el puerto Ethernet de un PC y una aplicación desarrollada con sockets de VB.Net.
    Pregunta #1:
    ¿Es posible modificar el código del Arduino Ethernet Shield para enviar la infomación que yo desee?

    Pregunta #2 (en caso de que la #1 se afirmativa):
    He buscado modelos de Arduino en Internet, y creo que para la solución antes mencionada la configuración sería: 1 Arduino UNO R3 y 1 Arduino Ethernet Shield R3
    ¿Es correcta la configuración?

    Pregunta #3:
    He buscado donde comprarlo y encontre geekfactory.mx.
    ¿Sabe si es segura esta tienda? ó ¿puede recomendarme alguna?

    Le agradezco de antemano cualquier información que pueda proporcionarme al respecto.
    Gracias
    Atentamente:
    Enrique

    Responder
    • Buenas Enrique,

      Puedes enviar la información que tú quieras y la configuración que propones es adecuada. En cuanto a esa web, no sabría decirte porque no he comprado en ella, pero si los precios que aparecen son en dólares americanos, podrías comprar fácilmente 50 Arduinos UNO en otra tienda por el precio de 1 en esa. La tienda en la que yo suelo comprar es la que puedes ver en el banner de la web, así como en los links hacia productos que pongo en los artículos.

      Un saludo, Enrique.

      Responder
  76. Hola antetodo felicitarte por este tutorial.En segundo lugar he tenido un problema, cuando intento meterme a la ip desde el navegador no me encuentra la pagina, pero si abro el monitor serial si que me aparece que esta conectado a esa direccion ip.¿Que es lo que esta pasando?¿Como lo soluciono?
    Gracias

    Responder
    • Buenas Juan Luis,

      Puede ser que estés intentando acceder desde área local a una red externa, que tengas algún tipo de firewall bloqueando la señal o que no hayas puesto el puerto al acceder a la web. Son los errores más comunes.

      Un saludo, Enrique.

      Responder
      • Hola, he probado las soluciones que me has dicho y sigue sin solucionarse.He probado conectandolo al router principal y desde este si que puedo acceder.Pero cuando lo conecto a un router secundario que este a su vez va conectado al principal no puede acceder a la pagina.

  77. Hola Enrrique amm vi tu post decidi Implementar lo de la casita domotica para un proyecto. agarre el segundo codigo y hasta ahora tengo asignada la ip estatica de la arduino en mi router y quisiera saber como asignarle una accion a los botones de html del codigo. Necesito tu ayuda xfas (Cuento con conocimientos Basicos en HTML)

    Responder
    • Buenas Julio,

      Con algunas adaptaciónes, éste post puede servirte.

      Un saludo, Enrique.

      Responder
  78. Hola Enrique. Estaba viendo de poder usar este tutorial para conectar mi arduino via wifi con un modulo esp2866. Sabes como puedo averiguar la mac del modulo? (Para hacer el paso de la ip estatica). Desde ya, muchas gracias

    Responder
    • Buenas Emiliano,

      Aunque la MAC es un número que identifica a tu dispositivo, en este caso puedes establecerlo tú. Basta con que no coincida con ninguno otro de tu red.

      Aun así te diré que normalmente puedes encontrar este número en la parte inferior de tus dispositivos.

      Un saludo, Enrique.

      Responder
      • Claro, pero al asignarle estaticamente la ip al modulo, debo poner la ip que quiero y la mac. Me refiero a que, como referencio eso a mi modulo? Asumiendo que puedo poner cualquier direccion mac, es decir, no se donde pongo algo caracteristico para que me asocie esa ip al modulo. Me explico? Desde ya, muchas gracias

      • Buenas de nuevo,

        Esos valores los especificas en el sketch, en la parte inicial (tal y como puedes ver en el código de ejemplo). Basta con que la configuración de tu Router sea “la misma” que la de tu Arduino.

        Un saludo, Enrique.

      • Ah claro, se entendio, muchas gracias. Otra consulta, yo tengo un modulo wifi esp2866, el cual puede ser configurado como estacion, punto de acceso, o ambas. Sabrias si hay una forma de aprovechar esta ultima oportuinidad (configurar el modulo tanto como estacion y como punto de acceso) para no tener que usar DDNS para conocer la ip cambiante del router? Desde ya, muchas gracias

      • Buenas Emiliano,

        La verdad es que no me he puesto aun (aunque lo tengo en mente) con ese módulo así que no sabría decirte. sad

  79. Buenas tardes
    Al poner la IP de arduino ethernet en la barra HTTP me pide una contraseña y un usuario.¿ Me podrías indicar que debo hacer para poder acceder?. Muchas gracias

    Responder
    • Buenas Sergio,

      Puede ser que lo que estés poniendo sea la IP de tu Router, de ahí que te pida usuario y contraseña. Si no estableciste la contraseña mediante código, no debería pedirte nada.

      Un saludo, Enrique.

      Responder
      • Hola de nuevo,
        te explico el proyecto: Estoy haciendo junto a mi compañero como trabajo de final de bachillerato un vehículo controlado mediante WIFI con arduino ethernet el cual llevará una cámara. Como no tenemos de idea de arduino ethernet nuestro primer objetivo es encender un simple led. He conseguido darle una IP a mi arduino (192.168.1.246) y asignarle el puerto 80.
        Me he quedado en el paso de la IP estática, no se si lo que viene después (DNSS) nos serviría porque no lo entendemos.
        El caso es que le cargamos el programa de ejemplo de la librería de arduino y cuando ponemos la IP asignada para ver los valores de los puertos nos sale lo siguiente:
        El servidor http//192.168.1.246:80 requiere un nombre de usuario y una contraseña. Mensaje del servidor: 300 Mbps AV200 WIFI Powerline Extender WPA2220.

      • Buenas Sergio,

        Lo mismo me estoy equivocando pero puede ser problema de firewalls… ¿Has probado a incluir esa IP en el DMZ?

        Un saludo, Enrique.

      • Que debo hacer para incluir mi IP en el DMZ? he estado buscando en internet pero no encuentro nada
        Grácias

      • Buenas Sergio,

        Es una opción de tu Router. Entra en la configuración, busca DMZ e ingresa ahí la IP que estés utilizando.

        Un saludo, Enrique.

  80. Hola Enrique muy bueno tu trabajo! la verdad que me interesa utilizarlo pero soy nuevo en esto y estoy teniendo problemas con el codigo ya que estoy utilizando una ethernet ENC28J60. podrias ayudarme con el las modificaciones que debo realizar al codigo? muchas gracias! Saludos

    Responder
    • Buenas Jose Pedro,

      No tengo mucha experiencia con ese módulo (porque en su momento ya leí que suele dar problemas). Aun así, intentaré echarte una mano en lo que pueda. smile

      Un saludo, Enrique.

      Responder
  81. Buenas enrique,
    nuevamente tratando de lograr la conexión externa y aún no logro poder acceder desde Internet e configurado los puertos, el dmz etc.
    Tratando de acceder desde otra red no funciona. Ahora llego a pensar que pueda estar mal el sketch.
    Hay algo mas que debería tener el sketch del segundo código que nos brindaste para poder acceder desde internet??
    Me siento muy apenado y frustrado :(.

    Responder
    • Buenas de nuevo Deyvid,

      Tranquilo. Este tipo de problemas son más normales de lo que piensas, así que relájate porque al final daremos con el problema. smile

      Juraría que el código está bien (porque en su momento lo probé y otros lectores también). Si te funciona en área local dudo que el problema esté en el conexionado tampoco. Seguramente se trate de algo que no estemos haciendo bien al acceder a la página o que la configuración no sea la correcta.

      Vamos a ir de menos a más para ver a partir de qué punto falla la conexión. Como en área local funciona, probaremos desde Internet con un móvil con datos, por ejemplo. Tenemos que poner la IP externa y el puerto por el que estamos haciendo la conexión, esto es, IP:puerto (en su momento tuve problemas también con el navegador utilizado, prueba tanto Mozilla como Chrome…). No vamos a utilizar todavía servicios de DDNS ni nada por el estilo, esto es solo para probar.

      Vamos a abrir el puerto tanto en UDP como en TCP (aunque esto no es del todo necesario) y vamos a eliminar (temporalmente) todo tipo de proxys, firewalls, etc.

      Si aun así no funciona, el siguiente paso va a ser utilizar otro puerto (yo tuve problemas para hacerlo desde el 80 y utilizo el 5600). De nuevo, tenemos que acordarnos de abrir esos puertos para poder utilizarlos.

      Ánimo y ya me contarás si damos o no damos con la solución. smile

      Responder
  82. ==> Hola Enrique: Me puedes indicar como asocio los pines (Analogos o Digitales) a los botones..??
    Quiero acoplar un Relay debidamente aislado de la shield que me sirva para activar o desactivar algún aparato. (de manera local)

    Responder
    • Buenas de nuevo,

      Dediqué un post a eso. Está enfocado a mover un servomotor, pero puedes adaptarlo sin problemas.

      Responder
  83. ==> Genial..!!!, funcionó a la primera.
    Se podrá alojar la WEB en la SD y cómo llamarla desde el sketch.?
    Saludos nuevamente.-

    Responder
    • Buenas Sergio,

      Antes que nada disculpa la tardanza en contestar. uneasy

      En la SD puedes almacenar datos, no instrucciones. Fíjate que el código HTML y CSS lo escribes a través de instrucciones.

      Un saludo, Enrique.

      Responder
  84. Disculpa, pero olvide mencionarte que estoy usando una placa Arduino Mega, y el ethernet shield de arduino. Muchas gracias por el aporte Enrique, espero puedas ayudarme, saludos

    Responder
  85. Hola Enrique, muchas gracias por tu post. Tengo una duda un poco urgente de resolver, estoy trabajando en un proyecto que consite en monitorear a través de una pagina web unos valores que llegan al arduino. He probado esto, alojando la pagina web de manera local en mi PC, y conectando el arduino a la red como cliente, este manda los datos a la pagina, esta los captura por código PHP y los almacena en una base de datos y los muestra en la pagina. Funciona perfectamente de manera local.

    El problema viene a continuación, he alojado la pagina en un servidor web que no pertenece a mi red, y me han asignado una dirección IP fija para tener acceso. Es posible hacerlo? ya que no me funciona, los datos no son actualizados. Que modificación debo hacer a parte de cambiar la dirección IP del servidor en el código del arduino?

    Responder
    • Buenas María,

      ¿Estás asegurándote de acceder por el puerto correcto al servidor?

      Un saludo, Enrique.

      Responder
      • No, de hecho estoy utilizando el mismo puerto 80. No funciona asi? Como se por que puerto debo acceder?

      • Buenas de nuevo,

        Para la mayoría de los casos ese puerto es el adecuado, pero depende del tipo de aplicación. Éso es lo que tienes que ver.

        Un saludo, Enrique.

        PD: Me gusta tu proyecto. Si te animas a publicarlo me cuentas smile

      • Ok, si en lo que este listo lo publicare. Muchas gracias enrique.

  86. Hola Enrique, recién esta mañana he encontrado este blog, que por cierto me parece el mas completo que he encontrado hasta ahora, lo digo sinceramente. Fíjate que tengo la siguiente inquietud:
    Actualmente tengo una placa Arduino R3 y una ethernet shield, ademas de una protoboard y algunos diodos led, resistencias e interruptores. Lo que quiero hacer es que mi placa de arduino registre en una de sus entradas digitales un estado on/off. Y que este se visualice en la PC de la siguiente manera: Un cuadro de color gris cuando el estado de la entrada digital es off y el mismo cuadro que se ponga color verde cuando la misma entrada digital esta en on.
    Podrias ayudarme??

    De antemano muchas gracias

    Responder
    • Buenas Nelson,

      Creo que adaptando lo de los colores (con HTML y CSS) y modificando la función de los botones del código éste otro post puede servirte.

      Un saludo, Enrique.

      Responder
      • Estimado Enrique.
        He analizado el post sugerido. Sin embargo según ese código, el arduino recibe datos desde la “web” y el arduino activa el servo. Sin embargo me gustaria saber como es el proceso a la inversa, es decir, por ejemplo que en la entrada digital 2 del arduino se detecte un estado HI, y que ese estado se pueda visualizar en un cuadro que se pone color verde, y que se pone en gris cuando el estado en la entrada 2 digital es LOW.
        Por favor dame una manito smile

      • Jaja puede que no nos entendiéramos bien. Fíjate que en este mismo post hay dos códigos, en el primero puedes ver cómo el Arduino envía datos de las entradas analógicas hacia la web.

        A ver si ahora sí smile

        Un saludo.

  87. Hola he intentado con la programación que tu dejaste y la verdad le cargue de nuevo las librerías y no me la deja correr me sigue generando un error como hago los errores que salen son:
    sketch_apr14a.ino:2:19: fatal error: W5100.h: No such file or directory
    compilation terminated.
    Error de compilación

    Responder
    • Buenas Aura,

      Parece un problema con el archivo de las librerías. Prueba a actualizar la IDE de Arduino (borrando antes todos los archivos de sistema) y me cuentas. smile

      Un saludo, Enrique.

      Responder
  88. Hola Enrique, te molesto nuevamente esta vez con un problema muy difícil de solucionar para mi.
    Te comento:
    Todo funciona con la red de área local, tengo asignado al arduino, ethernet la ip 192.168.0.105 con el puerto 234.
    Tengo mi ROUTER ya configurado (DE REPENTE NO HICE ALGO, O LO HICE MAL sad ),
    Te dejo un adjunto por favor te rogaría mucho que me ayudaras Enrique.
    www dropbox.com/s/jbyth2z42nkekes/Ayuda.pdf?dl=0
    No puedo ingresar desde Internet no se como!
    Si ingreso a la siguiente pagina www cual-es-mi-ip.com y me indica que es 190.122.0.133 yo supongo que esta ip es de la pc no del arduino. La verdad no entiendo.
    Cual es mi ip del router?? sad PC(CHILE)——>INTERNET——->ARDUINO(ARGENTINA)
    Contrate los servicios de DYNDNS y me pide que ponga una IP, ¿Pero por que deberia de poner esta IP 190.122.0.133 si eso es de la PC no del arduino?
    ¿Cual es la ip publica del arduino?
    Ayuda por favor!!!

    Responder
    • Buenas Deyvid,

      La IP que te proporciona la web cual-es-mi-ip es la IP pública, es decir, no es la IP del PC ni del Arduino, sino del Router. Ésta es la IP a la que tiene que estar asociado tu servicio de DDNS, ya que lo que hace DYNDNS es asociar la IP pública que tengas en cada momento (y que varías cada cierto tiempo y/o cada vez que reinicias el Router) con el nombre de dominio que tú has elegido.

      Para ir descartando problemas, prueba a introducir directamente en el navegador la IP pública con el puerto (es decir, sin utilizar el dominio de DYNDNS para descartar que el problema venga de ahí). Date cuenta que si accedes desde dentro del Router, es decir, desde área local, no funcionará (ya que en ese caso deberías poner la IP de tu Arduino). Por tanto, utiliza un móvil con datos o accede desde otra Wifi (no la tuya propia).

      Un saludo, Enrique.

      Responder
    • Hola Deyvid. Yo me registré en No-IP para obtener una DDNS, pero llegué a la conclusión que es un embrollo (por lo menos para mi). A ver. Monté las placas y le añadí un LED para poder encenderlo y apagarlo vía web. En el sketch puse el puerto 80, que es que viene abierto por defecto en el router. Ahora necesito saber cual es la dirección pública de mi router ¿? Pues con cualquier página tipo “…cúal es mi IP” o similares, te aparece tu IP pública. Esto lo hago desde el PC. Pues bien. Con mi teléfono movil (con Internet Datos, no con wifi), entro en el navegador, pongo esa IP, y al final le añado” :80 ” que es el puerto al que quiero acceder, y me aparece la página que tengo en el sketch de Arduino, que en mi caso, es la que aparece aquí para poder controlar un LED. Los router no suelen cambiar la IP diariamente. Si dentro de, p. ej. 10 días quisiera volver a entrar, sólo debo entrar en el PC, ver mi IP pública de nuevo y ya puede acceder desde remoto otra vez. El único inconveniente de este método es que si quisieras controlar un domicilio, pero que no visitas mucho, y la IP de ese router cambia, pues ya no podrás conectarte. Este método es válido solo para el domicilio habitual, el cual, debes comprobar la IP periódicamente para poder conectarte.
      Saludos y espero haberte ayudado.

      Responder
  89. Creo haber encontrado el problema, aparentemente necesito alimentar la shield via usb, no importa que el arduino mega lo este alimentando con un trafo externo, al conectar el cable usb a cualquier pc , comienza a funcionar de nuevo, Revisare las conexiones.
    Muchas gracias

    Responder
    • Buenas de nuevo,

      No necesariamente tienes que alimentarlo mediante el USB, puedes utilizar cualquier otro tipo de alimentación externa que soporte la placa.

      Un saludo, Enrique.

      Responder
  90. Hola, tengo una duda, ¿es posible conectar dos tarjetas arduino, cada una con su ethernet shield, de modo que se puede hacer la trasmisión de datos entre ellas sin utilizar una computadora?

    Responder
    • Buenas Irene,

      Sí, puedes conectarlos a través del Router.

      Un saludo, Enrique.

      Responder
  91. Enrique todo funciona, pero tengo un problema; Cuando desconecto el usb, dejo de tener acceso a la placa via web.. Siempre tengo conectividad, lo pruebo con un ping, y nunca pierdo conectividad, pero por alguna razon no me responde mas la pagina web. Cuando vuelvo a conectar el cable usb de la pc a la placa puedo nuevamente consultar la pagina grabada en el arduino.

    Tendrias alguna idea de porque ocurre esto.
    Saludos cordiales

    Responder
    • Buenas Raulo,

      ¿Cuando desconectas el USB lo alimentas por el Jack o símplemente dejas conectado el cable de Ethernet? Recuerda que debes alimentar tu placa para que se ponga en funcionamiento.

      Un saludo, Enrique.

      Responder
  92. Hola, ¿Qué tal?

    Mira, deseo hacer un proyecto domótico donde pueda controlarlo desde cualquier parte del Mundo (por así decirlo). Hasta ahorita lo he realizado de manera local. Mi duda es cómo puedo hacerlo ya que me pide una IP fija y saber si con mi shield de Ethernet puedo lograr este tipo de proyecto.

    También cómo hacer que la página web sólo actualice partes que sean necesarias (como el estado de luminosidad de un foco controlado por botones) y no toda la página entera y cómo se podría sustituir la serie de botones por un slider.

    Responder
    • Buenas Puchito,

      Puedes gestionar el sistema que crees con este shield desde cualquier dispositivo con acceso a Internet.

      Si te fijas en el post viene explicado cómo puedes utilizar alternativas a la IP fija (como son las DDNS).

      En cuanto a lo de actualizar solo una parte de la web. Sé que hay una librería para eso pero ahora mismo no sabría decirte el nombre (aun así no creo que te cueste mucho trabajo encontrarla buscando en Google).

      Respecto al slider, como estás trabajando con HTML, basta con que lo incluyas en tu sketch (si no sabes programarlo tienes muchos códigos ya implementados en la Red, basta con que elijas el que más te guste).

      Un saludo, Enrique.

      Responder
  93. Hola de nuevo Enrique, logre solucionar algunos problemas
    Lo del método GET, las imágenes, la memoria SD, la velocidad de conexión.
    El resto aun esta en cuestión. sad

    Responder
    • Buenas Deyvid,

      Lo de los vídeos es un problema. No has encontrado información al respecto porque necesitarías una herramienta más potente que Arduino para hacer lo que quieres. Un procesador, no un controlador. Por eso sí has encontrado información de Raspberry (aunque eso no quiere decir que no se puedan hacer cosas con cámaras).

      Con respecto a lo de las secuencias, lo que puedes hacer son módulos que te relacionen la pulsación de un botón con un movimiento concreto almacenándolo a modo de variables y luego leer en el programa principal el valor que tienen todas esas variables en el orden que te interesa y ejecutar los movimientos, es decir, creas un módulo que te sirva para mover a la izquierda “x” segundos pero que sólo se ejecute cuando su parámetro sus parámetros de entrada sean “mover_izquierda = TRUE” y el valor de segundos que quieras mover en esa dirección. Metes la llamada a esos módulos en tu código y los botones de tu web lo que hacen es cambiar el valor de la variable bandera “mover_izquierda”. Siguiendo esa idea y dándole un par de vueltas seguro que eres capaz de conseguir lo que quieres.

      En cuanto a la MAC, si te fijas, en tu sketch la fijas tú. Normalmente todos los dispositivos vienen con su MAC asociada (que funciona como lo haría un carné de identidad para diferenciar los distintos elementos) pero de cara a montar tu sistema puedes determinar la que tú quieras (siempre que no tengas dos o más MACs iguales).

      Un saludo, Enrique.

      Responder
  94. Muchas gracias Enrique, pocos hay como tu :v
    Este tutorial es completamente funcional y recomendado. Se me ocurrió hacer un ´proyecto de un carrito controlado por internet para ello tengo un Router portable con un puerto RJ45 y con una entrada USB para conexion de modem 3G, 4G todo funcionando a 5V :),
    Y tengo el placer y la satisfacción de comentarte que ¡funciono!. Arduino Mega+Shield Ethernet+Router Portable. Pero solo con la RED LOCAL.
    Ahora tengo algunas consultas con respecto al tema.
    1.- El ethernet shield, que utilizo tiene una ranura para Memoria SD, ¿Puedo guardar aquí la pagina web en vez de hacerlo directamente al arduino?¿Sera mas lento?¿Como puedo incorporar a mi web servidor imágenes :(?.
    2.- Existe otro método para enviar peticiones al arduino que no sea por el GET o como puedo mejorar la velocidad del envió de la petición (Al momento de enviar el comando por el método GET http//192.168.0.105/girar=izquierda tiene un lag al momento de mandar la petición de 1 segundo ). ¿Como puedo mejorar la velocidad al momento de enviar una orden?. EVITAR RECARGAR LA PAGINA PARA ENVIAR LA ORDEN Y AL MISMO TIEMPO RECIBIR DATOS DEL ARDUINO A LA PAGINA CLIENTE.
    3.- Como puedo agregar una cámara al arduino y esta que me transmita por el mismo servidor vídeo stream(En tiempo real) :(. (Indagando por la red no encontré absolutamente nada con respecto a este tema sad a excepción de Rasperry o algo así ). YA LOGRE RECIBIR DATOS COMO DISTANCIAS O TEMPERATURA MEDIANTE INTERNET PERO NO SE COMO HACERLO CON VÍDEOS.
    4.- ¿Se puede memorizar secuencias establecidas al arduino?.(Digamos que yo presiono el botón de ir hacia adelante luego de 20 segundos presiono el botón girar a la derecha 2 segundos y avanzar hacia adelante. Y ahora que repita toda esa secuencia al presionar un botón ).
    5.- La ultima y la mas importante…
    Tengo un dominio mi-dominio com
    digamos que ya tengo mi ddns de pago dyndns.org
    y a mi arduino le puse 192.168.0.105 al puerto 80,
    desconosco la direccion MAC del arduino (Como puedo obtenerlo es clon).
    ¡Como funciona todo esto!?
    Desde ya muchísimas gracias, estoy seguro que todo esto le servirá a muchas personas como nosotros.

    Responder
  95. hola amigo mil gracias esta muy interesante la pagina felicitaciones. te hago una consulta, logre hacerlo trabajar internamente en una red lan, resulta que abri el puerto de mi router tplink. pero antes de este hay otro router el cual reparte internet y antes de este viene un access point que nos brinda internet y q permanecen encendidos . para que funcione debo abrir el puerto 80 a todos los router incluyendo al acces point?
    y cual es la manera de ingresar desde la web? http://(mi ip publica):80
    gracias por tu ayuda…

    Responder
    • Buenas Mau,

      Por defecto el puerto 80 viene abierto así que no hace falta que modifiques la configuración del otro router.

      Con respecto a la manera de ingresar la dirección es exactamente como comentas: IPpública:Puerto.

      Un saludo, Enrique.

      Responder
  96. Hola:
    soy nuevoaqui y me ha encantado estapagina,estoy seguro que aprendere mucho.Muchas gracias por tu tiempo.
    Mi pregunta:
    No me funcionan la libreria ethernet en arduino 1.6.1.¿por que puede ser?No puedo compilar ningun programa mio,con las anteriores versiones van bien

    Responder
    • Buenas Lekan,

      Depende de la placa que estés utilizando y de los puertos y tarjetas que tengas seleccionados a la hora de cargar el programa en la placa. De todas formas, ya tienes disponible la versión 1.6.2 (que a lo mejor resuelve tus problemas). smile

      Un saludo, Enrique.

      Responder
      • Gracias por responder
        Para compilar creo que da igual la placa que pongamos.para grabar el programa si.
        con la misma placa la 1.6.1 no funciona y las anteriores si. Probare con la 1.6.2

  97. buenas noches se que el arduino ethernet se puede manejar desde el celular me puedes ayudar con el codigo y como varia en la comunicación, muchas gracias.

    Responder
    • Buenas Javier,

      Si tienes un teléfono con datos o con conexión por Wifi puedes acceder a la página web que crees con tu Arduino Ethernet Shield como accederías normalmente con tu ordenador.

      Un saludo, Enrique.

      Responder
  98. para este proyecto puedo usar el arduino leonardo, ya que solo hablan del arduino uno y el mega.

    Responder
    • Buenas Eduardo,

      Puedes utilizar tu Arduino Leonardo sin problemas.

      Un saludo, Enrique.

      Responder
  99. Hola buen día,

    soy bastante nuevo en el mundo del HTML y tengo unas pequeñas dudas, en el segundo ejemplo de codigo, en que parte se le indica al arudino que pasara al presionar los botones, es decir, mandara algun dato el presionar uno de los 4 botones??? como puedo saber que dato es???? para que al recibirlo pueda ya manipularlo

    gracias

    Responder
  100. Buenas Enrique, enhorabuena por la web y por compartir tus conocimientos, GRACIAS.
    Tengo una duda con respecto al acceder a la web que hay en el arduíno. ¿Es posible antes de entrar en la web que te valides con un usuario y password?
    Quiero desarrollar un proyecto en el cual active un relé para encender la calefacción de casa a distancia pero no me gustaría que la gente se metiera y pudiera accionar el botón.
    ¿Sabrías cómo implementarlo?

    Responder
    • Buenas Puntshow,

      Puedes hacerlo mediante PHP, con un script… Hay muchos códigos al respecto ya implementados en Internet, así que no hace falta que te compliques demasiado (si no quieres hacerlo tú mismo). Basta con que busques algo tipo: “pedir usuario y contraseña en mi web” en Google y elijas el que más te guste.

      Un saludo, Enrique.

      Responder
  101. Hola Enrique, quería darte la enhorabuena por este blog tan buenísimo y las gracias por compartir tanto conocimiento.

    Quería además aportar mi idea por si a alguien le puede parecer interesante.

    Yo me he hecho un sistema de encendido de una estufa de Pellets mediante una placa Arduino, la ethernet shield, un diodo led de infrarrojos, un sensor de temperatura, un router y un modem 3G.

    Mi forma de plantear la comunicación con Internet ha sido inversa. En vez de desarrollar un servidor Web en el Arduino que escuche las peticiones desde Internet, (A esto se llama modo Push, creo), lo que hago es que mi circuito se conecte periódicamente a Internet a un servidor web que tengo en PHP al cual le comunica la temperatura puntualmente y le pregunta en qué estado ha de poner la estufa. Con esto consigo varias cosas:

    1,. Evito el problema de la ip dinámica
    2. Evito el problema del ip forwarding en la red local
    3. Consigo una estadística en el servidor de las temperaturas

    Lo tengo funcionando desde hace un par de meses y me va bastante bien.

    Además he tenido que lidiar con dos problemas adicionales que no me esperaba.

    1. La ethernet Shield se cuelga tras muchas horas trabajando. Tuve qe añadir un reset automático cada 4 horas.
    2. La ethernet Shield no se recupera tras un corte de luz. Esto lo sigo teniendo sin arreglar.

    Espero que mi experiencia pueda servir de ayuda a más gente. En mi blog hablo del tema y dejo código fuente y fotos del sistema.

    Responder
    • Todo suma, Luis smile

      Buena aportación. Ánimo y a seguir dándole caña.

      Un saludo, Enrique.

      Responder
    • hola igual intente hacer algo similar con unos compañeros pero nuestro servidor era en HTML y nos topamos con el problema de que no supimos como desde el servidor transmitirle la informacion a la placa es decir la pagina web estaba montada en el server, la placa conectada al server, el problema que tuvimos insisto por que no sabemos casi nada de HTML fue que no supimos como hacer que al presionar un boton de la web mande un dato hacia la placa….espero ser claro y ojala tambien puedas ayudarme saludos y felicidades

      Responder
      • Buenas Alan,

        Hubo bastante gente con ese mismo problema así que hice otro post. puedes verlo aquí.

        Un saludo, Enrique.

  102. Disculpa, como podria hacer que los botones ON, OFF enciendan o apaguen un led, de otro arduino pero que estan sobre la misma red??

    Responder
    • Buenas Benjy,

      Se puede hacer pero ya que vas a gestionar el LED desde Internet, ¿porqué no encenderlo y apagarlo desde la web y así te ahorras un Arduino?

      Un saludo, Enrique.

      Responder
  103. Buenas noches Enrique,

    Lo primero decirte que acabo de descubrir tu blog y poco puedo decirte, lo poco que llevo visto me gusta (te explicas bien, usas imágenes a modo de ayuda…).

    Tengo dos preguntas sobre la MAC (una tiene dependencia de la otra). La primera es si no fijo la MAC de mi arduino, cuando vuelva a conectarlo, ¿cambia la MAC? En caso de no cambiar, ¿cómo podría mirar la MAC?

    Un saludo.

    Responder
    • Buenas Alberto,

      La MAC es como el carné de identidad de tu placa (es algo así como el número que diferencia unos elementos de otros) y generalmente lo sueles encontrar escrito en las mismas (salvo en el caso de los clones). En cualquier caso puedes fijarlo tú mismo como has podido leer en el código y no cambiará. De lo único que te tienes que asegurar es de no tener dos elementos con la misma MAC.

      Un saludo, Enrique.

      Responder
  104. Holaa!! Gracias por responder.

    Pues no creo que sea eso ya que tengo una camara ip en casa para vigilar y puedo acceder bien desde fuera.

    Volveré a probarlo y te cuento a ver si era alguna tontería.

    Por cierto tu sabes programar web?? me interesa mucho un tema parecido al segundo ejemplo para ver los datos básico que quiero que me de el arduino cuando este fuera de casa.

    Gracias por tu tiempo.

    Responder
    • Buenas Alfonso,

      Puede que sea algo tan tonto como el cable o el contacto entre los shields uneasy

      Algo de programación sí que sé pero poca cosa (de momento). Me voy formando según voy necesitando cosas.

      Un saludo, Enrique.

      Responder
    • Hola Alfonso. Cuando descubrí que no funcionaba porque no estaba bien encastrado, si pude conectarme desde dentro de la red (via PC) y desde fuera (via movil sin wifi, con internet del operador de telefonía). Mi router solo admite ddns de pago y no me funciono usando el dominio que me dio no-Ip. Tuve que averiguar mi IP publica, y luego desde el movil con datos ir a esa dirección añadiéndole, en mi caso, el 80 al final, y pude controlar el Arduino sin problemas. Como la ip cambia, si quisiera controlarlo desde la calle o remoto, solo se me ocurre, antes de salir de casa, ver mi ip publica de ese día y ya está.
      Espero te funcione como a mi.

      Responder
  105. Buenos dias.
    Gracias por el estupendo manual y las explicaciones, asi los que estamos empezando podemos tener algo de luz y camino.

    Te comento mi caso que es parecido al que e leido de Suso mas arriba.

    Tengo el arudino ya con la shield de red y con el primer código e conseguido meterle la ip fija ya dentro de mi red. si desde el navegador accedo a la ip puesta ya con el segundo código cargado veo la web sin problemas!! Hasta aquí todo genial!!

    He intentado acceder a esa ip desde fuera de la red para ver si puedo en un futuro controlarlo desde fuera de casa y no he sido capaz. Tengo ya un host en mi router por lo que no es problema acceder a mi router desde fuera, de echo uso una cámara ip y no hay problema. Pero con el arduino no entro a ver el entorno red, e abierto el puerto por ejemplo 5000 a la ip interna del Ardu, pero no me lo abre. Que puede ser?? es ese puerto?? o es desde el primero código yo le puedo asignar un puerto??

    Gracias por la ayuda.

    Responder
    • Buenas Alfonso,

      A lo mejor te parece una pregunta un poco tonta pero ¿qué IP estás poniendo cuando intentas acceder desde fuera, la misma que desde dentro? Recuerda que debes poner la IP pública con el puerto, que debes hacerlo con un dispositivo externo a tu red local (por ejemplo un móvil con datoss, no vía wifi) y, para evitar conflictos, no estar utilizando ninguna otra aplicación con el mismo puerto.

      A lo mejor ya lo estás haciendo, pero te lo digo porque es un error bastante común.

      Un saludo, Enrique.

      PD: Recibí tu mensaje pero un problema con outlook me impide contestarlo uneasy

      Responder
  106. Enrique, y talvez podrias decirme que router usas tu que te permite don web o alguno otro que conozcas?
    Gracias

    Responder
    • Buenas de nuevo Andrea,

      En su momento lo miré pero al final no adquirí ninguno así que no puedo darte un nombre. Sin embargo, no es difícil encontrarlos. Basta con que busques en una tienda online y te vayas a las características, al datasheet, del Router y te fijes en la parte de DDNS. Así podrás adquirir uno que se ajuste a tu presupuesto.

      Un saludo, Enrique.

      Responder
  107. hola…tengo un router tp-link y queria hacer mi ddns con donweb pero mi router no me permite con ese…..queria saber si talvez ya sabes como hacerlo..
    Gracias

    Responder
    • Buenas Andrea,

      Probé a utilizar servicios de DDNS que no soportan los Routers haciéndolos pasar por los que sí soportan pero no me funcionó la idea, así que de momento creo que o bien utilizamos uno soportado por el Router o bien instalamos en el ordenador el software que hace la gestión.

      Lamento no poder ayudarte más. Un saludo, Enrique.

      Responder
  108. Amigo excelente Tutorial, tengo un arduino yun, este Tutorial podría usarlo con este arduino? Es q estoy tratando de llevarlo acabo y cuando ingreso el ip para q me lleve a la opción de controlar los dispositivos me lleva es a una página de configuración para el arduino yun.

    Responder
    • Buenas Eliel,

      La verdad es que no tengo mucha experiencia con el Yún pero apostaría a que puedes utilizar este proyecto (quizás aplicando algunos cambios).

      Un saludo, Enrique.

      Responder
  109. Está muy bien explicado, seguí tus recomendaciones y funcionó a la primera, Gracias

    Responder
    • Buenas David,

      Me alegro de que te fuese de utilidad.

      Un saludo, Enrique.

      Responder
  110. He quedado tan satisfecho con la forma y el contenido de la página que no he tenido más remedio que felicitarte por tu trabajo. Muchas gracias.

    Responder
    • Buenas Pablo,

      Gracias a ti por tus amables palabras. smile

      Un saludo, Enrique

      Responder
  111. hola gracias por tu post. compre. Arduino y la etherned shild quisiera saber si con este post podre dominar mi Arduino sin una ip estática

    Responder
    • Buenas Andrés,

      Si te fijas, en el post tienes distintas formas de gestinonar el problema de las IP.

      Un saludo, Enrique.

      Responder
  112. disculpa la molestia, podras asesorarme con un proyecto que pretendo realizar, pero tengo unas dudas de que equipos comprar,… lo que necesito es conectarme a una base de datos con el dato de un usuario y su telefono, y necesito tomar su numero de dicho usuario y enviarle un mensaje a su celular (movil), que placas (tarjetas de arduino) necesito para poder hacer esto…. saludos y gracias de antemano…

    Responder
    • Buenas Moises,

      Una placa Mega sería una buena opción. Es versátil, compatible con la mayoría de los shields y tiene bastante capacidad.

      Un saludo, Enrique.

      Responder
  113. Hola Enrique:
    Me parece muy interesante tu blog. El proyecto que tengo entre manos es hacer un termostato controlado por una página web que residirá en la sd card de Ethernet shield del arduino. Para leer la temperatura de la sondas Dallas que voy a instalar tengo la idea de usar el código de la página: http://blog.startingelectronics.com/?tag=arduino-ethernet-shield con dos relojes Gauge. Lo que no se como hacer es el código de la página web y de arduino para enviar la temperatura de referencia, a la que quiero poner la casa, desde la web a arduino para que este encienda la caldera o la mantenga apagada.
    Si me puedes ayudar te lo agradecería.
    Un saludo,
    Andrés

    Responder
    • Buenas Andrés,

      Si no me equivoco, tu problema reside en gestionar variables, es decir, pasar de tener una web que solo sea una interfaz gráfica a algo funcional. Escribí un post ampliando este para solucionar ese problema. Es un poco distinto a lo que tú quieres hacer pero creo que echándole un vistazo y entendiendo la idea del proyecto, podrás solucionarlo. Aquí lo tienes.

      Si tienes cualquier tipo de duda, no dudes en preguntar.

      Un saludo, Enrique.

      Responder
      • Muchas gracias por tus tutoriales, son muy pedagógicos.
        He estado estudiando el tutorial sobre servos y creo que le voy a poder adaptar a lo que quiero. De momento he conseguido leer en la página web la temperatura de referencia del termostato mediante un reloj tipo Gauge. Ahora mediante dos botones de la página web del estilo de los tuyos de avance y retroceso del servo aumentar o disminuir el valor de la temperatura de referencia almacenada en Arduino. En los próximos días espero tener el programa del termostato completo.
        Cuando le tenga te le envío.
        Un saludo,
        Andrés

      • Estupendo Andrés,

        Mucho ánimo y a ver qué tal queda todo smile

  114. La organizacion de este website es un modelo completo y accessible para ofrecer informacion de una manera bien eficiente. Espero que este sea un modelo ejemplar para muchos otros. Este tipo de presentacion es importante para demostrar la calidad y el desarrollo profesional que se espera de un tecnico de la electrónica. Mi mas sincero reconocimiento este es en un trabajo bien hecho.

    Responder
    • Muchas gracias por tus amables palabras. smile

      Un saludo, Enrique.

      Responder
      • Buenas Noches Enrique

        Gracias por la información que brindas en esta pagina, quisiera ver si pudieras apoyarme, estoy tratando de conectar mi Arduino Ethernet Shield con un CP2102 para poderle pasar la programación, alguna vez lo has conectado ?

      • Buenas Alex,

        No entiendo muy bien lo que quieres decir. El CP2102 es un conversor de USB a TTL que se utiliza frecuentemente en placas como la Pro Mini (que no tienen conector USB). En principio, tu shield de Ethernet debería estar conectado en una placa tipo Mega, UNO… por lo que no veo la necesidad de utilizar el CP2102.

        Puede ser que no te esté entendiendo bien. Si pudieras concretar un poco más te lo agradecería.

        Un saludo, Enrique.

  115. hola que tal mi duda es si ya tienes algo sobre el controlar el arduino para prender un led dando ordenes desde una pagina en html?

    saludos

    Responder
    • Buenas Eduardo,

      Tienes un post en el que se explica cómo mover un servomotor a través de Internet. Puedes usarlo para encender un LED o el dispositivo que sesees cambiando unas pocas líneas de código. Aquí te dejo el link.

      Un saludo, Enrique.

      Responder
      • gracias enrique por la atencion a mi pregunta pero de hecho tengo algo así pero usas como servidor de almacenamiento el arduino y lo que busco es algo a la inversa que desde una web ( html ) puedas presionar un botón y que arduino pueda interpretar un carácter o algun identificador lanzado desde la pagina html; tengo incluso algo que diseñe en java y hace lo que requiero de la web, pero propiamente lanzar una orden desde el html a arduino y que este lo interprete y haga una acción no.

      • Buenas Eduardo,

        A lo mejor no te estoy entendiendo pero creo que ese programa hace exactamente eso. Pulsas un botón en una web que tú mismo has creado, se modifica un valor dentro de la web, Arduino detecta dicho cambio y se mueve el servomotor (que es análogo a encender un LED). ¿O lo que buscas es que Arduino reaccione ante una web cualquiera (por ejemplo EducaChip)?

        Un saludo, Enrique.

  116. Saludos estimado

    Felicidades por la pagina muy útil y bien explicado.

    Mi duda es mas o menos como la ultima pregunta que te hicieron de poder utilizar una Shield Wi-Fi, pero no queda ahi ya yo quisiera por suministrar la red WI-FI desde un celular con la aplicacion WI-FI direct. La verdad es algo que no tengo idea si esto puede ser posible.

    De antemano gracias por tu respuesta y por el tiempo invertido en este post
    Felicidades

    Responder
    • Buenas Jimmy,

      Seguro que se puede hacer y a lo mejor hasta hay alguna librería ya que te permita implementar ese sistema de forma simple. Sin embargo, no me he puesto a estudiar ese tema en profundidad y (por ahora) no sabría explicarte paso por paso cómo hacerlo.

      Lo que sí puedo decirte es que hay otras formas (menos “potentes” pero más simples) de conectar tu celular con Arduino sin necesidad de utilizar un Router, como puede ser Bluetooth.

      De cualquier forma, me lo apunto en la lista de futuros post.

      Un saludo, Enrique.

      Responder
  117. Enrique saludos y felicidades por tu pagina es muy educativa
    tengo una duda, quisiera saber si utilizo un Arduino One+ Shield Ethernet cual seria el maximo de Pines Digitales (O/I) que se pueden controlar desde una wed.

    Responder
    • Buenas Omar,

      Puedes utilizarlos todos menos los correspondientes a SPI. De todas formas, no te preocupes. Puedes ampliar el número de pines. Te dejo un post sobre eso por si le quieres echar un vistazo.

      En cualquier caso, seguramente tu limitación al final va a estar más en la gestión de corriente que en el número de pines.

      Un saludo, Enrique.

      Responder
      • Hermano muchas gracias por responder e visto muchos post sobre el tema y el suyo explica todo super bien pareces un profe de Universidad lol te cuento que ahora tengo el dinero para comprar el shield Ethernet w5100 y al buscarlo me encontré con Wi-Fi Esp8266 que es más económico y pequeño. Ahora surge la duda si con ese modulo wifi se podrá hacer lo mismo que con el w5100 si sabes algo que me aconsejas de ante mano gracias por su tiempo saludos desde Venezuela.

        Att: Omar J Gómez V.

      • Buenas Omar,

        Todavía no lo tengo en mi poder pero espero tenerlo pronto y hacer un tutorial.

        El funcionamiento es similar al shield de Ethernet aunque tendrías que documentarte bien y quizás tardarías un poco en ponerlo en marcha (no sé si habrá ya alguna librería decente para este módulo). Básicamente la diferencia entre uno y otro (en cuanto a prestaciones) es cambiar capacidad de cómputo, almacenamiento de datos y sencillez por la movilidad que te permite el Wi-Fi, así que depende un poco de lo que tú quieras hacer (además, hasta lo que he visto, funciona a 3.3V).

        Mi consejo es que si necesitas poner en marcha tu proyecto rápido y no necesitas “hacer que se mueva” (como un coche controlado por Wi-Fi) te quedes con el shield de Ethernet. Sin embargo, si no te importa dedicarle un poco de tiempo o buscas hacer algo que no te permita el shield de Ethernet pues te hagas con el de Wi-fi.

        Un saludo, Enrique.

        PD: ¡Qué envidia! Con las ganas que tengo de ir a Venezuela a comer hallaca y arepas smile

  118. Gracias Enrique. le echaré un vistazo a ver qué tal.

    Y sobre la otra pregunta, es posible implementar más de un relé en este proyecto y activarlos de manera independiente?

    Gracias de nuevo y saludos.

    Responder
    • Buenas,

      Por supuesto, basta con “duplicar” el código referente a la creación del botón y modificar la búsqueda en la URL (lo entenderás cuando leas el post).

      Un saludo, Enrique.

      Responder
  119. Hola Enrique. Felicidades por la web. Me parece estupenda.
    Estoy empezando con esto de arduino. Quiero realizar este tuto para encender la calefacción. Tengo la intención de encender la caldera a través del Arduino Ethernet Shield activando el cable de alimentación de sistema termostático interno de la caldera. Este termostato lo tengo siempre fijado la máximo y la temperatura la controlo con el termostato ambiente. La activación la quiero poner, como ya he comentado, con el cable de alimentación del termostato interno y con un relé activado por el arduino y aquí es donde tengo las dudas: cómo hago para activar el termostato a través del Arduino, es decir, a qué pin conectaría el relé y cómo se activaría el relé?

    Otra pregunta, habría alguna manera de implementar más de un relé en este proyecto y activarlos de manera independiente?

    Muchas gracias por tu atención y un saludo.

    Responder
    • Buenas,

      Completé la información de este artículo en este otro post en el que (a modo de ejemplo) se mueve un servomotor a través de Internet. Puedes utilizar el mismo formato para activar o desactivar uno o varios relés. Basta con que modifiques un poco el código.

      Espero que no te cueste mucho hacer los cambios.

      Un saludo, Enrique.

      Responder
  120. Gracias Enrique. Pues sí. Era una tontería. Como anécdota recuerdo que no funcionaba un LM3914 por no introducirlo bien en la protoboard, y pensaba que se me había quemado o algo. En cuanto a lo de DDNS me abrí una cuenta gratuita en No-IP y usé el dominio que me suministraron, añadiéndole ” :80 “. Lo hice desde el movil sin WIFI, sino con mi conexión de red movil. Y nada. En cambio, le puse mi dirección IP pública en ese momento, con el 80 al final, y me funciona perfectamente, con este y otros sketchs. Por lo visto, mi router no admite otro servidor DDNS que no sea los que trae, que son DynDns.org y TZO. Y debe ser que si no configuro esa parte, no puedo llamar a Arduino desde remoto sino pongo la IP numérica. Y lo de pagar por una DDNS de momento no entra en mis planes.
    Bueno, Me conformo con que sé que me funciona. La pena es que no podré llamar desde remoto, pues nunca sabré la IP pública del router sin estar conectado a él (¿o si la hay…?)

    Gracias por tu ayuda. Un saludo.

    Responder
    • Buenas de nuevo,

      Antes de darlo por perdido yo probaría de nuevo el método de la DDNS pero utilizando otro puerto en tu proyecto, como el 5400 (recuerda abrir el puerto). Te lo digo porque yo tuve problemas fuera de área local por eso.

      En principio, que tu Router sólo te permita esas dos opciones no quiere decir que no puedas utilizar otras. Lo que sucede es que cuando tu IP pública cambia, tu Router no se encarga de volver a asociar el nombre de dominio a la IP actual y debes hacerlo mediante algún tipo de programa en tu ordenador (que normalmente te puedes descargar en la página de la DDNS).

      De cualquier forma, si no apagas y enciendes el Router, lo más probable es que mantengas la misma IP pública al menos una semana.

      Un saludo, Enrique.

      Responder
  121. Hola otra vez. Nada de nada. Asocié la IP del primer sketch (192.168.1.177) con la MAC también del sketch, en el router. En “Device info — ARP” me aparecen los dispositivos conectados, sus MACs y con el flag de “complete”, pero en la IP mencionada me aparece “incomplete” y la MAC “00:00:00:…”
    En este router, el puerto lo abrí en “Virtual Servers” Le puse nombre, IP 192.168.1.177, puerto 5400 y en WAN interface seleccioné “pppoe_eth0.6”
    En la barra del navegador escribo: 192.168.1.177:5400 y da error.

    Ya no sé que más mirar… sad

    Responder
    • Buenas,

      ¿Probaste que no fuese cosa del cable? ¿Cómo escribiste la MAC en el Router con “:” o con “-“? ¿Asociaste los puertos a la IP de tu Arduino o los abriste para todas las IP? ¿Qué protocolos has utilizado en el Router TCP o UDP? ¿Obtienes algún cambio en el navegador si omites el puerto (:5400)?

      Tranquilo, al final saldrá adelante. Debe haber algo que no estemos teniendo en cuenta, quizá algún error puntual… esto pasa en las mejores casas (yo mismo tardé bastante en poner en marcha mi Shield de Ethernet y al final era sólo cosa del cable) pero al final daremos con el problema.

      Un saludo, Enrique.

      Responder
      • Gracia Enrique por tu ayuda. ¿el cable debe ser cruzado? Tengo cable, conectores y crimpadora, si hubiera que hacer uno nuevo. Los que utilizo ya vienen hechos, pero no sé si son los que necesita la shield. Escribí la MAC con “:” Asocie los puertos para la IP de Arduino. Probé con la 192.168.1.40 que también modifiqué en el sketch. Configuré los protocolos como TCP/UDP ….
        Si hubiera forma de subirte capturas de pantalla, te mostraría las de los menús del router, y los cambios realizados, por si hay algo que se me escapa. Probé en Chrome y en Firefox, y de dos PC diferentes…

        Gracias… mil gracias.

      • Buenas de nuevo,

        Cable sin cruzar (yo utilizo el CSA 219561).

        Con respecto a las MACs, puede que sea una tontería y en tu Router se escriba así… pero en todos los que he visto hasta ahora el separador era “-“. Otra cosa importante, no puedes tener dos MACs iguales.

        Si lo deseas, puedes enviarme imágenes a través de la sección de contactos del blog.

        Un saludo, Enrique.

      • ¡Ya lo conseguí…! Resulta que buscando por ahí leí que a gente que le daba problemas la shield, le recomendaban cortar un poco los pines. También que alimentaran Arduino con una fuente de alimentación, no por USB. No hice ni una cosa ni otra. Simplemente… encajé la shield en Arduino fuertemente. Probablemente algún pin no estaba haciendo contacto. Dejé el sketch como lo tienes en tu página, con la IP 192.168.1.177 y el puerto 80 y al cargarlo y abrir el monitor serial ya aparecía “server is at 192.168.1.177” cuando antes ponía “000.000.0.000” También le quité al router la asignación del puerto 80 a esta IP. O sea, no abrí ningún puerto. Llamé a Arduino desde otro PC y desde el movil y sin problemas (todo desde la misma red local). En cambio, con mi DDNS creada en No-IP no carga la página. Imagino que es ahí donde debo modificar algunos parámetros del router, para poder llamarlo desde remoto.

        Mil gracias por tus consejos. Ahora solo me queda controlarlo desde otra red, y aunque abra el puerto 80, no consigo cargar la página.
        Saludos. Y excelente página…

      • Me alegro de que te funcione Suso smile

        Al final era una tontería como en mi caso fue el cable… ¡Éstas cosas pasan!

        Respecto al puerto 80, ten en cuenta que viene abierto por defecto.

        ¿Estás poniendo también el puerto cuando utilizas las DDNS? ¿Te estás asegurando de acceder desde fuera de tu red local?

        Un saludo, Enrique.

  122. hola compy y no se puede poner una contraseña cuando se entra por internet antes del programa??

    Estaria bien que cuando te conectas desde internet al arduino te pidese un user y una pass tu sabrias hacerlo?

    de todas las maneras lo primero gracias maquina.

    Responder
    • Buenas,

      Como con todo, hay varias soluciones.

      Una forma fácil de conseguirlo es a través del propio sketch de Arduino con un if() de tal forma que si la condición condición del if() se cumple (usuario y contraseña son correctos) se ejecute el resto del programa.

      Para este tipo de proyectos se suelen guardar los valores de usuario y contraseña (para realizar la comprobación de si los datos proporcionados son correctos) en la memoria EEPROM del Arduino (te dejo aquí un post por si le quieres echar un vistazo).

      Un saludo, Enrique.

      Responder
  123. Pedon. Se duplicaron Creí que no se envió el ptimerov Disculpa las molestias.
    Saludos.

    Responder
    • No te preocupes, disculpa tú por mi tardanza en contestar.

      Responder
      • Desde dentro. El PC y Arduino esran en la misma red. Cuando me funcione esto, ya probaré desde fuera con DDNS. En una parte del menu del router aparecen todos los dispositivos conectados, sus MACs, ¿Si aparece el de la placa, debe poner conectado o algo similar?
        Gracias por tu tiempo.

      • En principio no debería ponerte nada sobre que esté conectado (aunque depende de tu Router). Lo único que podría aparecer conectado es el propio Arduino si lo estás alimentando con el PC.

        Como estás “dentro del Router” deberías poner la IP que le hayas asignado a tu Arduino (te lo digo por si estuvieras confundiendo esa IP con la puerta de enlace). También podrías estar teniendo problemas si has creado subredes (si no has tocado nada no debería haberlas).

        ¿Te has asegurado de darle una IP local fija a tu Arduino? No sólo necesitas poner en el sketch la MAC que le has dado a tu placa si no asociar esta con la IP de tu Arduino (en el Router) para que el protocolo DHCP no la modifique.

        Por otra parte, en algunos navegadores, me he dado cuenta que no deja acceder poniendo el puerto desde local. Esa es otra cosa que puedes probar (aunque, como te digo, de forma general siempre deberías ponerla).

        Otra cosa, ¿Has comprobado que no haya errores en el programa que has creado? Puedes hacer la prueba utilizando el código que tienes en el post (que es perfectamente funcional).

        También es posible que lo estés haciendo todo bien y el problema sea del cable de Ethernet que estés utilizando. Existen cables cruzados y no cruzados. Normalmente los ordenadores pueden hacer el cambio internamente y da igual el tipo de cables que utilices pero en el caso de este shield la cosa cambia. Si tienes varios por casa, haz la prueba.

        A ver si hay suerte y lo solucionas pronto.

        Un saludo, Enrique.

  124. Hola Enrique. Ya tengo la shield en casa. Cargué el primer sketch , configuré el router, modifiqué el sketch con mi dirección IP y en puerto (5400) pero no me funciona.
    La shield tiene los tres LEDs de FULLD, 100M y LINK en verde y parpadea el de RX de vez en cuando. Mi router es un Comtrend Gigabit de Movistar. El puerto lo abrí en “virtual server”. Incluí la IP en DMZ, pero no consigue entrar en el sistema. Escribo 192.168.xxx:5400 y me da error. ¿Cuál puede ser? ¿En xxx va mi IP local o la que yo asigné a Arduino?
    Gracias por tu ayuda. Saludos.

    Responder
    • Buenas suso,

      ¿Estás accediendo desde dentro del Router (móvil con wifi, pc…) o desde fuera (móvil con datos…)?

      Responder
  125. Hola Enrique. Llegue a este página buscando información sobre la ethernet shield. Ya he trabajado en Arduino en proyectos básicos (lEDs, relés, opto, bluetooth, infrarrojos, L293D, 74HC595, LiquidCrystal, etc…) y ahora quiero dar el salto a Internet. ¿Es necesariamente obligatorio la IP estática para invocar a Arduino desde un PC remoto? Ya me registré en No-IP y me asignaron una dirección (30 días).¿ A esa dirección le tengo que añadir el puerto que he abierto para Arduino?
    La shield no me ha llegado por correo todavía para probar los sketchs, pero ya me he ido empapando de teoría, y todavía hay cosas que se me escapan.
    Gracias por tu ayuda. Saludos y muy buena la página.

    Responder
    • Buenas Suso,

      En respuesta a tus preguntas:

      No, no es necesario utilizar una IP estática. De hecho (en mi opinión) la mejor opción es utilizar un servicio de DDNS que tu Router soporte.

      Sí, debes poner “:” y el número del puerto que estás utilizando (aunque es posible que tu sistema acceda directamente a la web sin ponerlo).

      Espero haberte aclarado tus dudas, si te surge algún problema más, no dudes en preguntar. smile

      Un saludo, Enrique.

      Responder
      • Gracias Enrique. Todavía no me ha llegado la shield. En cuanto la tenga prometo compartir los ajustes y como se quedó funcionando. Gracias de nuevo. Saludos.

      • Seguro que te queda genial Suso. smile

        Un abrazo, Enrique.

  126. Todo perfecto Enrique.
    Parece mentira, pero ahí estoy. Me falta que se accionen los relés, pero bueno, seguro que lo logro con tu ayuda.

    Muchas Gracias y Feliz año

    Responder
    • Buenas Fernando,

      Me alegro de que vaya bien. Para activar los relés puede que te sirva de ayuda este otro post.

      Un saludo y feliz año a ti también smile

      Responder
  127. hola, recién estoy montando un sistema con esta shield, es un sitema de seguridad al cual agregue un modulo gsm. el detalle esta en que si dejo que el sistema funcione sin que consulte la pagina y despues al querer hacerlo ya no puedo ver la pagina y me sale sin conexion o algo asi, y tambien cuando envio un sms y pongo un delay de 2 min todo el sisteme deja de funcionar y no le hace caso a las otras condiciones. Espero me haya explicado y puedas aconsejarme. gracias.

    Responder
    • Buenas Iván,

      No he entendido del todo tu pregunta. La parte de que primero puedes ver la página y luego no, no me ha quedado muy clara.

      Respecto a los problemas con el delay de dos minutos… No sé qué proyecto estás haciendo pero no se me ocurre ninguno en el que debas utilizar un delay tan largo. Deberías probar a contar el tiempo a través de la función millis() ya que tu Arduino solo puede hacer “una cosa a la vez” y cuando está ejecutando un delay, hasta que este no termina, no hace nada más. Te dejo un link para que veas como se implementa todo esto que te digo.

      Responder
      • Lo que pasa es que con la pagina veo el estado de los sensores, asi como el activar o desactivar la alarma. pero despues de un rato que quiera ver la pagina ya no puedo ver la pagina. no carga!!

        Utilizo el dalay por que cada que se activa cierto sensor envio un mensaje, pero no kiero que se envien tantos mensajes en tan poco timepo y la unica manera que se me ocurrio fue un delay. Si utilizo un contador va a llegar el momento que se limitara el envio y aunque se active el sensor ya no enviara nada.

      • Buenas Iván,

        Cuando se tiene un proyecto en el que son varias las causas que pueden provocar el problema, lo mejor es ir descartando posibilidades. Aquí te muestro un pequeño cambio que puedes hacer. Ya me contarás si te funciona smile

        No conozco con exactitud tu proyecto pero siempre que puedas deberías evitar utilizar delays (sobre todo delays largos). Puedes utilizar la función millis() en su lugar o una variable que funcione a modo de contador (como comentas) junto con un if(), de tal forma que solo cada “X” veces (cuando el contador llegue al valor que tú deseas) se envíe el mensaje y, una vez lo envíes vuelves a poner a cero el valor del contador para que no sature).

  128. Lo primero de todo agradecerte el tutorial ya que los que no andamos muy puestos en comunicaciones nos viene muy bien. Por otro lado, tengo una duda mirando el código hml(del cual controlo muy poco). Imaginemonos que tengo una función avanzar(), la cual me mueve un motor y quiero que se active pulsando el botón ON del dispositivo 1 que habéis creado en html ¿como asocio en el código html la función avanzar con el botón on?
    Gracias!!

    Responder
    • Buenas Denis,

      Llevaba ya un tiempo esperando esta pregunta (me parecía raro que todo el mundo lo hubiese solucionado).

      Dices que no controlas mucho HTML, eso lo hace más difícil. Ahora mismo tengo un post entre manos pero cuando lo termine haré un tutorial sobre cómo conseguir que pulsar un botón de la web implique una acción en Arduino (intentaré tardar lo menos posible). Sé parece una tontería en comparación con el resto de pasos que hay que seguir para poner el shield de Ethernet “en funcionamiento” pero no lo es en absoluto (y menos cuando no se tiene práctica con la programación web).

      Supongo que mi respuesta te habrá decepcionado un poco así que para “abrir boca” te diré que tienes varias formas de hacerlo:

      1. Puedes hacer que (al pulsar un botón) se modifique la URL de tu web añadiendo algo de texto y, al leer esta nueva URL almacenándola en una variable de tipo String, tu Arduino actúe.

      2. A través de php puedes enviar y recibir datos con el mismo objetivo.

      Un saludo, Enrique.

      Responder
      • Pues quedaré entonces a la espera de que termines para intentar resolver mis dudas, que son muchas jaja

      • Buenas de nuevo,

        Intentaré ayudarte en lo que pueda (y sobre todo darme prisa en escribir el post). La verdad es que es un tema un poco complejo hasta que le pillas el punto (yo mismo estoy esforzándome ahora por aprender un poco más de HTML, CSS, PHP, etc para que quede todo claro en el post).

        De cualquier forma te agradezco mucho tu paciencia y tu comentario en el post smile

        Un saludo, Enrique.

      • Buenas Enrique, has solucionado ya este problema de cómo ejecutar acciones sobre arduino vía web??

        Un saludo!

      • Buenas Alberto,

        Así es, puedes verlo en este post.

        Un saludo, Enrique.

  129. Esperando como loco el Shield Ethernet….creo que llegará a la semana que viene jejej
    Gracias Enrique

    Responder
    • ¡Pues ya me contarás! La verdad es que es de mis shields favoritos, sin duda una de las mejores compras que hice. Ahora estoy pensando en utilizarlo para enviar tweets y a la espera de una cámara para grabar un cochecito controlado desde Internet (a ver cómo hago para que lo podáis controlar desde EducaChip).

      Un saludo, Enrique.

      Responder
      • hola enrrique excelente foro, estoy aprendiendo este gran mundo de arduino y tengo un proyecto en mente para mi trabajo y es el de automatizar la planta de tratamiento de aguas para ello he creado una red inalambrica vlan totalmente aparte de la red del complejo, en elle tengo conectado un siemens s7 300 que coloque para la automatizacion de los pozos de agua pero el gran problema es que la licencia era trial y caduco estamos a la espera de la lic original pero no se que tiempo pueda tardar, ahora bien he visto que con lo que cuesta esta licencia puedo conprar 80 arduinos jajajaj y veo que pueden hacer todo lo que necesito, …. pero no se codificarlo hacer los programas, quisirea saber si tienes programas que lean variables y en function a esa lectura tomen una decision o se ejecute una accion, donde puedo conseguir estos ejemplos

      • Buenas Rodolfo,

        Creo que lo que estás buscando es más o menos esto.

        Un saludo, Enrique.

      • Buen día Enrique.
        Espero me puedas ayudar Tengo un problema con la comunicación de la ethernet shield. Lo que sucede es que de mi modem de internet yo conecto un Switch para conectar mi compu y mas aparatos y por lo mismo conecto la shield a este mismo switch el problema es que de esta manera no puedo acceder a la ip de la tarjeta. Me di cuenta que al entrar al cmd tengo 2 ip ethernet registrados hacia mi computadora por lo mismo considero que puede haber un conflito por que al parecer el switch me esta creando otra ip. Cabe mencionar que si yo conecto la shield directamente al modem y acceso desde mi lap no tengo ningún conflicto para revisar la shield como servidor
        PD: Ya configure el modem para la ip fija de la shield

      • Buenas Marcos Eduardo,

        Exactamente, debes utilizar las IPs que te proporcione el elemento que tienes conectado a Arduino.

        Un saludo, Enrique.

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Arduino Ethernet Shield – Controla Tu Casa Por Internet was last modified: diciembre 17th, 2016 by Enrique
Share This

¿Me ayudas?

Hey! Espero que te esté gustando el artículo. ¿Me ayudarías compartiéndolo con tus amigos? Un pequeño paso para ti, un gran paso para EducaChip. :) ¡Gracias!