Haga clic para más productos.
No se encontraron productos.

Tutorial Módulo Ethernet ENC28J60 y Arduino

87325

  

En este tutorial aprenderemos a usar el Módulo Ethernet ENC28J60, con un ejemplo sencillo en donde accederemos a nuestro Arduino desde internet, encenderemos un LED y visualizaremos la lectura de un potenciómetro desde un navegador web.

Módulo Ethernet ENC28J60

El Módulo Ethernet ENC28J60 es popular  por su bajo costo, si bien esta desarrollado por Microchip, existen librerías para hacerlo trabajar con Arduino, consume mucho más memoria que el Ethernet Shield, pero para aplicaciones básicas es muy útil. 

Existe gran información y ejemplos de este módulo en la red, así como diferentes librerías, para este tutorial utilizaremos una de las librerías más usadas, la librería Ethercard.

Para realizar el Tutorial necesitamos un Arduino Uno, un módulo ENC28J60, un potenciómetro, un Led, una resistencia, un protoboard, cables DuPont y un cable Ethernet para conectarnos a nuestro Modem, router o switch


Conexiones entre el Módulo Ethernet ENC28J60 y Arduino

 

Módulo ENC28J60

Arduino Uno

VCC

Pin 3.3V

GND

Pin GND

 SS (CS)

Pin 10

 MOSI (SI)

 Pin 11

 MISO (SO)

 Pin 12

 SCK

 Pin 13

 

 

  

Conexion ENC28J60 y Arduino 

   

Hay que resaltar que las conexiones son válidas para el Arduino Uno o placas basadas en el Atmega328 (Arduino mini pro, Arduino nano, etc) pues el Módulo ENC28J60 usa la comunicación SPI, por lo que si se trabaja con el Mega, se tiene que conectarse a sus pines SPI correspondientes.

Una vez hecho toda la conexión pasamos a programar el sketch para el Arduino

  

Programa para el Módulo Ethernet ENC28J60

  

Si es la Primera vez que estamos programando este módulo es necesario descargar e importar a nuestro IDE de Arduino la librería Ethercard.

Una vez importado la librería escribimos el siguiente sketch:

#include <EtherCard.h>

static byte mymac[] = {0xDD,0xDD,0xDD,0x00,0x01,0x05};
static byte myip[] = {192,168,1,177};
byte Ethernet::buffer[700];

const int ledPin = 2;

char* EstadoLed="OFF";

void setup () {
 
  Serial.begin(9600);
  Serial.println("Test del Modulo  ENC28J60");
 
  if (!ether.begin(sizeof Ethernet::buffer, mymac, 10))
    Serial.println( "No se ha podido acceder a la controlador Ethernet");
 else
   Serial.println("Controlador Ethernet inicializado");
 
  if (!ether.staticSetup(myip))
    Serial.println("No se pudo establecer la dirección IP");

  Serial.println();
  
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
}

static word homePage() {
  
 BufferFiller bfill = ether.tcpOffset();
 bfill.emit_p(PSTR("HTTP/1.0 200 OK\r\n"
      "Content-Type: text/htmlrnPragma: no-cachernRefresh: 5\r\n\r\n"
      "<html><head><title>Naylamp Mechatronics</title></head>"
      "<body>"
      "<div style='text-align:center;'>"
      "<h1>Test del Módulo  ENC28J60</h1>"      
      "Tiempo transcurrido : $L segundos"
      "<br /><br />Estado del LED: $S<br />"      
      "<a href=\"/?status=ON\"><input type=\"button\" value=\"ON\"></a>"
      "<a href=\"/?status=OFF\"><input type=\"button\" value=\"OFF\"></a>"
      "<br /><br />Potenciómetro: $D (resolución de 1024)"
      "<br /><br />"
      "<a href='https://naylampmechatronics.com/'>naylampmechatronics.com</a>"
      "</body></html>"      
      ),millis()/1000,EstadoLed,analogRead(0));
     
  return bfill.position();
}
  
void loop() {
 
  word len = ether.packetReceive();
  word pos = ether.packetLoop(len);
  
  if(pos) {
    
    if(strstr((char *)Ethernet::buffer + pos, "GET /?status=ON") != 0) {
      Serial.println("Comando ON recivido");
      digitalWrite(ledPin, HIGH);
      EstadoLed = "ON";
    }

    if(strstr((char *)Ethernet::buffer + pos, "GET /?status=OFF") != 0) {
      Serial.println("Comando OFF recivido");
      digitalWrite(ledPin, LOW);
       EstadoLed= "OFF";
    }        
    ether.httpServerReply(homePage()); // se envia página Web
  }
}




Ahora expliquemos lo principal del código:

static byte mymac[] = {0xDD,0xDD,0xDD,0x00,0x01,0x05};
static byte myip[] = {192,168,1,177}; 

Aquí configuramos nuestra  Mac y la IP , podemos poner cualquier valor, evitando duplicar con algún otro equipo conectado a nuestra red.

En void setup () inicializamos el módulo Ethernet y reportamos por el puerto serial, aquí también configuramos el pin del led como salida.

En la función static word homePage() escribimos nuestra página web, la cual debe estar en formato HTML:

static word homePage() {
  
 BufferFiller bfill = ether.tcpOffset();
 bfill.emit_p(PSTR("HTTP/1.0 200 OK\r\n"
      "Content-Type: text/htmlrnPragma: no-cachernRefresh: 5\r\n\r\n"
      "<html><head><title>Naylamp Mechatronics</title></head>"
      "<body>"
      "<div style='text-align:center;'>"
      "<h1>Test del Módulo  ENC28J60</h1>"      
      "Tiempo transcurrido : $L segundos"
      "<br /><br />Estado del LED: $S<br />"      
      "<a href=\"/?status=ON\"><input type=\"button\" value=\"ON\"></a>"
      "<a href=\"/?status=OFF\"><input type=\"button\" value=\"OFF\"></a>"
      "<br /><br />Potenciómetro: $D (resolución de 1024)"
      "<br /><br />"
      "<a href='https://naylampmechatronics.com/'>naylampmechatronics.com</a>"
      "</body></html>"      
      ),millis()/1000,EstadoLed,analogRead(0));
     
  return bfill.position();
}

     

Notar que para enviar datos de variables hay que usar los marcadores $L  $S  $D para después enviar los datos de tipo Long, cadena, y decimal respectivamente.

También estamos configurando para que el navegador vuelva a cargar la página cada 5 segundos esto se hace con “Refresh: 5”, es necesario cunado estamos mostrando datos que cambian constantemente. El tiempo de actualización dependerá del tipo de dato que se está mostrando. En algunas aplicaciones esto no es necesario o se opta por poner un botón para actualizar. Si no se desea simplemente quitar “Refresh: 5” en la función de la página web.

La siguiente comparación se hace para ver si se han enviado datos desde el navegador mediante el método GET
  

    if(strstr((char *)Ethernet::buffer + pos, "GET /?status=ON") != 0) {
      Serial.println("Comando ON recivido");
      digitalWrite(ledPin, HIGH);
      EstadoLed = "ON";
    }

   

En este caso estamos comparando si se ha recibido un dato con el método GET de la siguiente forma ?status=ON , esto sucede si en el navegador se presiona el botón ON (ver el código HTML  del botón en la función anterior)

Una vez escrito el sketch lo cargamos a nuestro Arduino.
Solo faltaría conectar el módulo ENC28J60 con un cable Ethernet a aun modem, router, switch o a la PC.


Ahora desde un navegador web de nuestra laptop, celular o tablet, accedemos a nuestro Arduino escribiendo la IP (para nuestro ejemplo 192.168.1.177) en el navegador.

Servidor web con ENC28J60 y Arduino

  
Modificando el código HTML se pueden lograr diseños da paginas mas complejas, se pueden agregar imágenes, cambiar la fuente y tamaño del texto, agregar tablas, pero esto dependerá de la habilidad de programación en HTML que tengamos.

 

Productos relacionados
Artículos relacionados
53 Comentarios
  • iv**

    iv** 28/05/2022 Responder

    hola soy nuevo en esto y estoy muy interesado, ademas me parece que tu explicación esta muy bueno. tengo un problema el código lo cargo con arduino el mismo que compartió y lo subo pero y no tengo problema pero la ip no me la reconoce que puede ser gracias
  • CE***

    CE*** 18/02/2022 Responder

    MUY BUENO PERO CUANDO ESCRIBO UNA PAGINA MAYOR DE 1500 BYTES NO FUNCIONA, POR FAVOR PODES VER POR QUE PASA ESO?
  • na****

    na**** 08/12/2021 Responder

    to tentando passar um dado float que li do sensor dht11 usando o %D,%f,%s,%l mas todos aparecem numeros aleatorios
  • Da*** ******** ***be

    Da*** ******** ***be 04/12/2020 Responder

    porque no me quiere abrir la pagina y arme y desarme el circuito muchas veces, mes estoy volviendo loco
  • Fr******* ******** *******no

    Fr******* ******** *******no 20/05/2020 Responder

    Buenas amigos. A continuacion el codigo HTML arreglando el tema de las comillas y los saltos de linea , funcional en Chrome y IE ( solo probe en estos dos).
    //Encabezado
    "HTTP/1.0 200 OKrn"
    "Content-Type: text/htmlrn"
    "Pragma: no-cachern"
    "Refresh: 5rnrn"
    //Codigo HTML
    "Naylamp Mechatronics"
    ""
    "
    "
    "

    Test del Modulo ENC28J60

    "
    "Tiempo transcurrido : $L segundos" //$L= Datos tipo Long
    "

    Estado del LED: $S
    " //$S= Datos tipo String
    ""
    ""
    "

    Potenciometro: $D (resolucion de 1024)" //Datos tipo Decimal
    "

    "
    "www.naylampmechatronics.com"
    ""
  • Br*** **va

    Br*** **va 26/04/2020 Responder

    Buenas tardes
    Tengo el inconveniente de que si lo conecto a través del router con cable UTP normal o cruzado no funciona, tanto las luces del puerto del router como el del modulo estan apagadas (solo luz roja de alimentacion del circuito ENC28J60). Si aparece el mensaje de conexion en el serial de arduino. Si conecto con cable cruzado a una laptop directamente al moudlo ethernet si lo reconoce y parpadean las luces de envio y recepcion del modulo, y puedo acceder a la pagina y encender y apagar un led.

    Habra que configurar el tipo de conexion o algo mas para que pueda funcionar? quiero acceder atreves de un router.

    Muchas gracias
    • Br*** ********ia

      Br*** ********ia 20/05/2020 Responder

      Buenas noches Bruno, en mi caso lo pude solucionar dándole más información, colocando la puerta de enlace que corresponde a la dirección del router. En donde se define el ip coloca directamente lo siguiente.
      #define STATIC 1
      #if STATIC
      static byte myip[] = {192,168,xxx,xxx}; //el ip que asignas a tu dispositivo.
      static byte gwip[] = { 192,168,xxx,1 }; //dirección de puerta de enlace.
      #endif
      Espero te sirva.

      Saludos
  • Se**** **** ****** ******** *******ma

    Se**** **** ****** ******** *******ma 11/03/2020 Responder

    Hola, quiero hacer funcionar un Rele en vez del LED, hice toda la coneccion como se muestra, compila bien en el Monitor Serie me sale q inicio bien el modulo, pero no piedo hacer ping al equipo, que podria ser??
  • Da****

    Da**** 05/03/2020 Responder

    Hola! Muy interesante proyecto lo estoy tratando de probar con un Arduino uno y no he logrado visualizar la página desde el navegador, no hace ping desde la cmd. Lo escribí tal cual y no me ha funcionado. Por favor cuál puede ser el problema?
    Gracias.
  • jo**

    jo** 21/02/2020 Responder

    Hola JGGC. Por si te sirve, el problema es que los retornos de carro y la nueva línea no están bien escritos en el header HTTP. Si querés mandame un mail y te mando el código con las correcciones. Mi mail es: cypherjohn86@gmail.com
  • JG**

    JG** 15/02/2020 Responder

    Buen Día, el problema que tengo es que no se ve la pagina web, si no el código fuente guardado en el Arduino.
    Hice un post en: https://forum.arduino.cc/index.php?topic=664945.0
    Para mas información, si alguien puede ayudarme se lo agradecería.
    De antemano, agradezco la atención prestada.
    Saludos y Gracias.
  • ta***

    ta*** 09/01/2020 Responder

    disculpa, la dirección mac del módulo cómo la sabes?
  • Ca****

    Ca**** 07/12/2019 Responder

    No he conseguido mostrar información de variables mas alla de $D $L.
    Que debo hacer para mostrar los valores de mis propias variables?

    Gracias!
  • Br*** ******** ********* ********ín

    Br*** ******** ********* ********ín 03/08/2019 Responder

    hola, fijate que lo he programado en arduno mega y en arduino uno, y en ninguno me ha funcionado, no se cual es el problema, en el monitor serie todo parece normal, pero al introducir la direccion ip en mi navegador simplemente dice que no esta disponible la pagina, podrian ayudarme
  • Gu*****

    Gu***** 11/04/2019 Responder

    ¿Y por que no se puede recibir nada por medio de wifi? intente recibir datos conectado via wifi pero no me dejaba mas que cable ethernet
    • Lo*****

      Lo***** 01/06/2019 Responder

      ¿Será porque se trata solo de un módulo con conector y especificaciones Ethernet? :-)
      Ya nos explicarás como lo has intentado conectarlo por Wifi...
  • AL**

    AL** 15/11/2018 Responder

    hola el programa me compila y carga bien, abro el serial me aparece test del modulo ENC28J60 controlador ethernet inicializado pero al poner la ip en cualquier dispositivo no carga solo me aparece no se puede acceder
  • Mi**** *********th

    Mi**** *********th 31/10/2018 Responder

    Saludos.
    Entonces si es compatible con el arduino nano?
  • sa****

    sa**** 24/07/2018 Responder

    duda,
    ¿podría conectar este proyecto con una aplicación en android en lugar de la pagina web?
  • lu** ***ña

    lu** ***ña 02/07/2018 Responder

    Pongo la ip en la PC, celular, Laptop y nada. No conecta. La tarjeta si tiene comunicacion con el arduino
  • Si****

    Si**** 22/06/2018 Responder

    Prueba este codigo

    #include

    static byte mymac[] = {0xDD,0xDD,0xDD,0x00,0x01,0x05};
    static byte myip[] = {192,168,1,177};
    byte Ethernet::buffer[700];

    const int ledPin = 2;

    char* EstadoLed="OFF";

    void setup () {

    Serial.begin(9600);
    Serial.println("Test del Modulo ENC28J60");

    if (!ether.begin(sizeof Ethernet::buffer, mymac, 10))
    Serial.println( "No se ha podido acceder a la controlador Ethernet");
    else
    Serial.println("Controlador Ethernet inicializado");

    if (!ether.staticSetup(myip))
    Serial.println("No se pudo establecer la dirección IP");

    Serial.println();

    pinMode(ledPin, OUTPUT);
    digitalWrite(ledPin, LOW);
    }

    static word homePage() {

    BufferFiller bfill = ether.tcpOffset();
    bfill.emit_p(PSTR("HTTP/1.0 200 OKrn"
    "Content-Type: text/htmlrnPragma: no-cachernRefresh: 5rnrn"
    "Naylamp Mechatronics"
    ""
    "
    "
    "

    Test del Módulo ENC28J60

    "
    "Tiempo transcurrido : $L segundos"
    "

    Estado del LED: $S
    "
    ""
    ""
    "

    Potenciómetro: $D (resolución de 1024)"
    "

    "
    "www.naylampmechatronics.com"
    ""
    ),millis()/1000,EstadoLed,analogRead(0));

    return bfill.position();
    }

    void loop() {

    word len = ether.packetReceive();
    word pos = ether.packetLoop(len);

    if(pos) {

    if(strstr((char *)Ethernet::buffer + pos, "GET /?status=ON") != 0) {
    Serial.println("Comando ON recivido");
    digitalWrite(ledPin, HIGH);
    EstadoLed = "ON";
    }

    if(strstr((char *)Ethernet::buffer + pos, "GET /?status=OFF") != 0) {
    Serial.println("Comando OFF recivido");
    digitalWrite(ledPin, LOW);
    EstadoLed= "OFF";
    }
    ether.httpServerReply(homePage()); // se envia página Web
    }
    }
  • lu***

    lu*** 24/05/2018 Responder

    Amigo, me sale texto plano pero no me muestra como pagina web. Alguna sugerencia por favor.
  • fi*****

    fi***** 07/05/2018 Responder

    Hay un pequeño error en el post:

    En la linea donde mandas las cebeceras HTTP parece.

    "Content-Type: text/htmlrnPragma: no-cachernRefresh: 5rnrn"

    Creo que el editor te quito las diagonales del retorno de carro y del salto de linea, por lo cual al cargar el código y al realizar el request el navegador al no saber cual es el content-type acaba mostrando el contenido como crea conveniente(depende del navegador) yo lo probe en Crhome y me mostraba el contenido como si fuera texto plano.

    Para que sea mas claro creo que debería quedar en 3 lineas(ya que eso son) algo como:

    "Content-Type: text/htmlrn",
    "Pragma: no-cachern",
    "Refresh: 5rnrn",


    Mayor info sobre las cabeceras y contenidos posibles:

    https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers

  • Fe****

    Fe**** 26/03/2018 Responder

    Compañero, me compila y me sube a la arduino, pero al intentar abrir la página con la ubicacion IP que le di no carga.
    • Jh****

      Jh**** 27/03/2018 Responder

      Checa en el monitor serial de arduino si hay comunicación
      puede que entre arduino y el modulo no haya conexion
      o que entre el modulo y tu router
      abre la ip desde un ordenador o laptop,
      por ejemplo en mi caso
      desde el celular me aparece que no puedo tener acceso
      y en la laptop sin problemas
  • Al******* *****

    Al******* ***** 24/12/2017 Responder

    Buenos dias una pregunta el modulo solo se puede configurar como server o tambien hay posibilidad de hacer la configuracion para cliente?
  • iv**

    iv** 03/12/2017 Responder

    disculpen, tengo que ocupar afuerza el arduino uno, es que ocupo el arduino mega y no me hace nada solo me manda el mensaje de test del modulo
  • Au****** *****ez

    Au****** *****ez 03/11/2017 Responder

    HOla me interesa programar el arduino con modulo de audio y red para hacer streaming o llevar audio desde un punto a otro por media de la red IP (enlace dedicado de IP - punto a punto)
    Què modelo me recomiendas usar y como hacer la configuración para codificar el audio y enviarlo
    gracias por tu ayuda
  • ga***** ******* ***to

    ga***** ******* ***to 22/08/2017 Responder

    vcs podem me responder no meu email por gentileza se vao fazer videos ????
  • Ga*****

    Ga***** 22/08/2017 Responder

    Ola gostei muito desse lugar, vcs podem por mais para eu copiar e colar para apreender sou aluno senai????e coloca um videos de tutorial no youtube???.-_- e nos seus doido.
  • FE*****

    FE***** 13/06/2017 Responder

    Muchas gracias por el aporte señores de NayLamp; porfa pueden facilitarme sobre como se crea los botones como en el ejemplo. "ON" "OFF", le agradezco de ante mano. saludos desde Huancavelica.
    E-mail:kofigo3397@gamil.com
  • Ar***

    Ar*** 28/04/2017 Responder

    Hola Hice todo exactamente igual. y el monitor serial me dice


    Test del Modulo ENC28J60

    No se ha podido acceder a la controlador Ethernet



    No hay link con el router al cual lo conecte. la ip esta bien configurada.
    El modulo solo prende una luz roja D1 y ninguna mas. el router es un linksys.
    Lo tengo conectado por USB a una Netbook conectada con el cargador a la red electrica.
    El arduino es un arduino nano.
    Espero tu pronta respuesta. Saludos

    • Na*****

      Na***** 30/04/2017 Responder

      Hola Ariel, revisa nuevamente tus conexiones, parece que no hay comunicación entre el arduino y el ENC28J60. En ether.begin() asegúrate de especificar el número 10, que corresponde al pin SS de la comunicación SPI. Si no se especifica por defecto es el pin 8.
  • Fe****** ******ar

    Fe****** ******ar 24/03/2017 Responder

    Tengo e.print(pos1); o ethernet.print(pos1); estos si los veo en mi IP 192.168.1.100 y puedo prender y apagar el led y veo mis valores en pantalla pero, como obtengo un valor tipo $_post o $_get? :D Otra vez Saludos!
    • Na*****

      Na***** 25/03/2017 Responder

      Cuando se reciben datos por POST o GET estos se reciben en la petición http, y se guardan en la variable buffer, cuando presionamos los botones se envían valores con el método GET, por eso realizamos la búsqueda con if(strstr(...., "GET /?status=ON") != 0), la función strstr() devuelve la posición a partir de donde encuentra la cadena que se está buscando. Si lo que deseas es leer una variable, tendrías que leer el número a partir de la posición obtenida en strstr().
  • Fe****** ******ar

    Fe****** ******ar 24/03/2017 Responder

    y como envio un dato como $volts=read.analog()+calculos... si obtengo en salida 4.3 ó 99 ó 255; algunas secuencias no me funcionan con ethernet.h ni con Ethercard, solo con Ether_28J60 pero aún no puedo enviar datos. las cadenas string en Ether_28J60 parece que las desconoce o quizás mi librería es algo obsoleta; por ejemplo bajé tu version Ethercard y no obtuve errores, pero una que bajé ayer que es igual me puso varios errores. Saludos
    • Na*****

      Na***** 25/03/2017 Responder

      Hola Fernando, En nuestro ejemplo solo enviamos datos enteros, para esto usamos $D y $L para enviar una variable tipo flotante como 4.3, tienes que usar $T, si $T no funciona agrega después de #include la línea: #define FLOATEMIT7
      • Ma****

        Ma**** 04/11/2018 Responder

        Hola, tengo el mismo problema que Fernando Baltazar, probe con $T y agregando la linea #define FLOATEMIT7 pero aun asi no consigo que me muestre valores con decimales, de hecho me muestra valores que no se aproximan ni por asomo a lo que deberia, por ejemplo en valor analogico me muestra 223 que corresponderia a 12.5v (el valor correcto lo veo bien en el monitor serie), pero bajo web veo 32461. Podrias guiarme un poco, ya me queme mucho la cabeza y no encontre solucion. Gracias
  • JU**

    JU** 14/02/2017 Responder

    word len = ether.packetReceive();
    word pos = ether.packetLoop(len);
    ESOS COMANDOS SON LOS DEL POTENCIOMETRTO?
    • Na*****

      Na***** 18/02/2017 Responder

      Hola Juan, esas líneas son la longitud y posición de la petición http del cliente, el valor del potenciómetro lo obtenemos en la función static word homePage() en el interior del texto html enviamos marcadores $L $S $D para después enviar variables de tipo Long, cadena, y decimal respectivamente.
  • Pa***

    Pa*** 27/12/2016 Responder

    Hola! muy buen tutorial, me funciono bien, solo queria hacer una pregunta. Puedo accesar desde cualquier computadora al modulo ethernet, me refiero a que si puedo accesar desde otro LAN. digamos yo estar lejos de mi casa y por medio de internet accesar al modulo ethernet, o solo funciona para dispositivos de la misma LAN?
    • Na*****

      Na***** 18/02/2017 Responder

      Hola Pablo, para acceder remotamente a tu arduino, tienes que abrir un puerto de tu Router y asignar dicho puerto a la IP del Arduino. Posterior a esto para acceder remotamente en lugar de ingresar usando la IP de tu arduino ahora tienes que usar la IP publica de tu LAN, que generalmente es dinámica. El puerto por defecto para los navegadores es el 80, si configuraste otro tienes que digitarlo junto a la IP cuando accedas remotamente.
      • fi*****

        fi***** 08/05/2018 Responder

        Aquí hay un detalle, y es que muchos routers tienen el puerto 80(HTTP) o 443(HTTPS) abierto,(para la administración remota) esto genera conflictos al intentar hacer el NAT(abrir el puerto publico)., A mí me pasó esto y tuve que hacer la NAT al puerto 8088, y para acceder escribo desde mi navegador http://mi-ip:8088


        En el código del Arduino le tuve que agregar la siguiente línea en la función setup:

        ether.hisport = 8088


        Para mayor información revisar la incidencia #154 del proyecto oficial:



        https://github.com/jcw/ethercard/issues/154

        Suerte!!
  • je***

    je*** 06/12/2016 Responder

    me gustaria saber como imprimo los valores de un sensor de esa forma.
    • Na*****

      Na***** 14/12/2016 Responder

      Hola Jesus, Para enviar, variables hazlo de la misma forma como enviamos el valor de la lectura analógica en el ejemplo
  • Ed**

    Ed** 19/10/2016 Responder

    Hola!, no consigo hacerlo funcionar, me vuelvo loco con las comillas!, podrías pasarme el código final por correo? edertg27@gmail.com , gracias . Saludos
    • Le*****

      Le***** 15/05/2017 Responder

      Buenas tardes.
      Me pasa lo mismo y ya estoy loco con las " si dispones del código final y puedes pasarlo
      pues también lo agradecería.
      Hablamos.
  • Lu*****

    Lu***** 07/09/2016 Responder

    Hola, muy bueno el tutorial.Lo unico con lo que me volvi loco es que tuve que sacarle el encabezado html para que funcione en chrome e IE

    ("HTTP/1.0 200 OKrn" "Content-Type: text/htmlrnPragma: no-cachernRefresh: 5rnrn")

    Y aparte no estan casteadas las comillas en las lineas:
    ""
    ""

    En /?status=ON y /?status=OFF presenta errores que se solucionan al usar comillas simples.

    Por lo menos asi me funciono a mi.

    Te lo comento por si estoy haciendo algo mal por favor decimelo, y si te ayuda a corregir algún error en el código que no hayas visto genial!

    Saludos!
    • Vl****** ***ic

      Vl****** ***ic 21/01/2021 Responder

      me funciono con estas modificaciones al código
      bfill.emit_p(PSTR("HTTP/1.0 200 OK"
      "Content-Type: text/htmlrnPragma: no-cachernRefresh: 5rnrn"
      "<html><head><title>Naylamp Mechatronics</title>"
      "</head>"
      "<body>"
      "<div style='text-align:center;'>"
      "<h1>Test del Modulo ENC28J60</h1>"
      "Tiempo transcurrido : $L segundos"
      "<br /><br />Estado del LED: $S<br />"
      "<a href="/?status=ON"><input type="button" value="ON"></a>"
      "<a href="/?status=OFF"><input type="button" value="OFF"></a>"
      "<br /><br />Potenciómetro: $D (resolucion de 1024)"
      "<br /><br />"
      "<a href='http://www.naylampmechatronics.com/'>www.naylampmechatronics.com</a></div>"
      "</body></html>"
      ),millis()/1000,EstadoLed,analogRead(0));



    • jo*** ******do

      jo*** ******do 29/01/2017 Responder

      Hola al compilar el código me aparecen errores de comillas en la seccion de codigo HTML podrias ayudarme con esto o si lo tienes corregido.
      Te agradezco las atenciones, saludos.
    • Ne*

      Ne* 29/10/2016 Responder

      Hola, Luciano! Estuve leyendo tu comentario sobre el error y la corrección que le diste, por favor podrías explicarlo un poco mejor, y si podrías enviarme alguna info te lo agradeceré. Mi correo es panf9188@gmail.com
    • Le****

      Le**** 28/09/2016 Responder

      Luciano! hola, disculpa veo que ya pudiste resolver los errores que manda al verificar, podrias pasarme tu codigo final? mi correo es ing.Leonid_Ramos@hotmail.com, de antemano muchas gracias, saludos
    • Na*****

      Na***** 14/09/2016 Responder

      Hola Luciano, efectivamente, las comillas podrían confundir al compilador, pues estas las interpreta como inicio y fin de una cadena. todas las comillas internas deben ir con\" , tenemos un error al digitar el codigo en nuestro blog que borra el \ , estaremos solucionandolo pronto. La comilla simple también funciona en este caso, y es el navegador quien se encarga de corregir esto, pero si es para mostrar comillas en un texto html se pueden remplazar por &quot; que en html se usa para texto con comillas.
Dejar un comentario
Deja su comentario

Menú

Crear una cuenta gratuita para usar listas de deseos.

Registrarse