Haga clic para más productos.
No se encontraron productos.
Búsqueda de blogs
Artículos Recientes
Categorías del blog
Últimos comentarios
No hay artículos
Artículos relacionados

Tutorial Módulo Ethernet ENC28J60 y Arduino

79423

  

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='http://www.naylampmechatronics.com/'>www.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='http://www.naylampmechatronics.com/'>www.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
50 Comentarios
  • David Castillo Uribe

    David Castillo Uribe 04/12/2020 Responder

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

    Francisco Martinez Cantisano 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"
    ""
  • Bruno Riva

    Bruno Riva 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
    • Bruno Canepuccia

      Bruno Canepuccia 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
  • Seichi Luis Emilio Nakayama Nakashima

    Seichi Luis Emilio Nakayama Nakashima 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??
  • Darío

    Darío 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.
  • john

    john 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
  • JGGC

    JGGC 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.
  • tania

    tania 09/01/2020 Responder

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

    Carlos 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!
  • Bryan Estuardo Argüello Mayorquín

    Bryan Estuardo Argüello Mayorquí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
  • Gustavo

    Gustavo 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
    • Lorenzo

      Lorenzo 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...
  • ALDO

    ALDO 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
  • Milton Betancourth

    Milton Betancourth 31/10/2018 Responder

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

    samuel 24/07/2018 Responder

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

    luis peñ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
  • Sinuhe

    Sinuhe 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
    }
    }
  • lucho

    lucho 24/05/2018 Responder

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

    fitorec 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

  • Felipe

    Felipe 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.
    • JhonBP

      JhonBP 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
  • Alexander Roman

    Alexander Roman 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?
  • ivan

    ivan 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
  • Ausberto Ibañez

    Ausberto Ibañ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
  • gabriel almeida pinto

    gabriel almeida pinto 22/08/2017 Responder

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

    Gabriel 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.
  • FERCITO

    FERCITO 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
  • Ariel

    Ariel 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

    • Naylamp

      Naylamp 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.
  • Fernando Baltazar

    Fernando Baltazar 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!
    • Naylamp

      Naylamp 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().
  • Fernando Baltazar

    Fernando Baltazar 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
    • Naylamp

      Naylamp 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
      • Martin

        Martin 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
  • JUAN

    JUAN 14/02/2017 Responder

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

      Naylamp 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.
  • Pablo

    Pablo 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?
    • Naylamp

      Naylamp 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.
      • fitorec

        fitorec 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!!
  • jesus

    jesus 06/12/2016 Responder

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

      Naylamp 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
  • Eder

    Eder 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
    • Leandro

      Leandro 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.
  • Luciano

    Luciano 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!
    • Vladimir Ursic

      Vladimir Ursic 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));



    • josue fernando

      josue fernando 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.
    • Nel

      Nel 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
    • Leonid

      Leonid 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
    • Naylamp

      Naylamp 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