lunes, 29 de junio de 2015

Arduino , Ethernet Shield y algo de HTML

Repasando la entrada anterior, me gustaría comentar algunos puntos que no se tocaron y que pueden resultar de interés.
El primero tiene que ver con el hardware del ejemplo. Hay mucha variedad de Ethernet Shields en el mercado. Os recomendé un par que son compatibles con el Arduino, hay muchas más, pero debéis fijaros que el CHIP que use sea el W5100 Ethernet controller IC , para evitar problemas de compatibilidad.

 El siguiente punto, también de hardware tiene que ver con el consumo de ese chip. Puede llegar a ser muy alto, y además de calentarse, y de qué manera, es necesario alimentar el ejemplo con una fuente de alimentación externa, pues vuestra conexión USB no dispone de la potencia necesaria. Si aún no lo habíais hecho, es un buen momento para hacerse con una fuente externa de 9 V para alimentar vuestro Arduino.
El último punto relacionado con el hardware,  tiene que ver con los pins 10,11,12 y 13 del Arduino. Estos pins se usan para la comunicación con la Ethenet shield, por lo que no podrán ser usados para otro fin cuando se use con esta ampliación.
El resto de puntos que me gustaría tratar, están relacionados con el código del sketch de ejemplo. Al final lo que conseguimos es convertir nuestro Arduino en un servidor web.  La página mostrada es de una sencillez máxima,(es un ejemplo “demo”)  y tampoco veréis grandes florituras en los ejemplos míos  que vendrán, pues mis conocimientos de HTML son básicos.
Pero me gustaría desarrollar un poco las líneas más básicas de código HTML para mostrar la información de una manera mínimamente inteligible.
Hasta ahora, en algún ejemplo como este, habíamos usado la instrucción serial.print(); para mostrar la información que queríamos en el Monitor Serial.
Sin embargo en este ejemplo usamos la instrucción :

client.println();

Entre los parantésis podemos escribir desde un texto entre comillas:

            client.print("analog input ");


O el valor de una variable cualquiera:

            client.print(sensorReading);


Salto de línea, mostrará el siguiente valor o texto en otra línea:

            client.println("<br />");      


Y dos líneas imprescindibles que marcan el inicio y el final de un código en HTML:

            client.println("<html>");


Y
          client.println("</html>");


Otra instrucción también interesante, es la que controla el tiempo de refresco de la página. En el ejemplo del día anterior era cada 5 segundos:

client.println("Refresh: 5"); // refresh the page automatically every 5 sec

Eso es todo de momento. Espero hayáis podido configurar vuestra Ethernet Shield y el router sin problemas, pues seguiremos avanzando en las próximas entradas en estos temas.

4 comentarios:

  1. Cómo estás alimentando el circuito? Esta placa, y sobre todo el chip ethernet tiene un alto consumo. Prueba con alimentación externa, a través de pila o transformador y me cuentas. Por otro lado, el calentamiento es normal.
    Un saludo.

    ResponderEliminar
  2. Algo más falla. La tensión de alimentación recomendada para esta placa es de 7 a 12V, pero los límites son de 6 a 20V, por lo que el regulador no debería sufrir ni sobrecalentarse por este motivo.
    ¿Tienes algún componente más conectado? Algún cable directo a masa , un led sin resitencia limitadora, etc, revisa estos puntos y desconectados para hacer la prueba. Controla también que los pins han encajado correctamente y que no hay alguno que haya quedado fuera y te esté cortocircuitando la placa.
    Alimentar las placas por separado es posible, pero deberás conectar las masas en común, o no te funcionará. Si decides poner en marcha esta alternativa, no las montes juntas. Alimenta la placa ethernet a los pins de 5V y GND, y une los pins 10,11,12 y 13 de ambas placas. El 10 con el 10, 11 con 11 etc. El resto no es necesario. Y une con un cable las masas de ambos circuitos.
    Si encuentras algo más no dudes encomendarlo, tambo´n me puedes enviar una foto para intentar ser más concreto.

    Un saludo

    ResponderEliminar
  3. Disculpen es normal que el micro de la ethernet shield se caliente? La alimento con el mismo cable usb de la arduino al conectarla a la pc. Pregunto esto porque hace tiempo se me quemo el micro de la arduino peeo esa vez se calento muchisimo

    ResponderEliminar
    Respuestas
    1. Hola Victor Hugo,

      Dentro de la Ethernet Shield, hay un chip que es el W5100, que si que alcanza temperaturas bastante elevadas. Por el elevado consumo que tiene yo te recomendaría que para sesiones de pruebas largas, la alimentes por separado, o mejor a través de la toma de corriente de la placa de Arduino. No por el chip Arduino, sino por el puerto USB de tu ordenador. Un simple transformador a 9V es ideal para este tipo de pruebas y otras que iremos realizando con relés. Si te animas a hacerte con uno, busca uno que llegue a 1A, o al menos pase de los 500mA.

      Un saludo

      Eliminar