jueves, 12 de diciembre de 2013

Servidor WEB con Arduino y tarjeta SD.

Hace ya tiempo que publiqué una entrada en la que os contaba como diseñar un servidor web sencillo con una placa Arduino. Si recordáis (o releéis), la entrada, uno de los problemas que tenia este diseño es que la página web estaba insertada en el mismo código, por lo que hacer una página un poco compleja se convertía en una pequeña odisea. Para evitar esto, lo ideal sería un sistema como el que nos da microchip, un software al que nosotros le decimos donde el directorio de la página web, y nos devuelve un archivo .c con la página ya traducida. Otra opción es la que vamos a ver en esta entrada, introducir la página web en una tarjeta SD externa, de forma que tan solo escribimos en la tarjeta el archivo index.htm, y cuando el servidor reciba una petición, este lea la tarjeta y devuelva este archivo. Los chicos de Arduino ya habían pensado en esto, así que en la misma Ethernet Shield, lleva un zócalo para una tarjeta SD, en mi caso en el formato micro.

La página web que he diseñado para esta entrada es una página web estática, es decir, no podemos interactuar con el procesador. Si recordais, en la entrada anterior, la interacción entre la página y el arduino se hacia en el momento de mandar la página web, mandando ciertas lineas si se cumplen algunas condiciones. Puesto que en este diseño no es el arduino el que manda linea a linea la página, no es posible hacer esto, así que ay que recurrir a scripts escritos en javascript, pero de momento no nos vamos a meter en eso, simplemente tenemos una servidor al que cuando nos conectamos, nos manda una (simple) página web. El código que teneis que meter en el arduino es el siguiente:
El código como veis está todo muy comentado por lo que no es difícil entenderlo. Las instrucciones que se han añadido nuevas son las de lectura de la tarjeta, tanto la de inicializar SD.begin, la de buscar un archivo dentro de la tarjeta SD.exist() y por último, la de abrir el archivo SD.open(). Todo lo demás es muy parecido. Para vuestros diseños es necesarios que si o llamáis a vuestra página web "index.html", cambies la declaración de la variable fileName[], por el vuestro. Por lo demás debería funcionar correctamente. En la proxima entrada os mostraré una entrada con código javascript para poder interactuar con nuestra placa Arduino. 

12 comentarios:

  1. imbecil no publicastes nada en el include

    ResponderEliminar
    Respuestas
    1. Este comentario ha sido eliminado por el autor.

      Eliminar
    2. Tu si que eres un imbécil, encima de que este hombre se toma la molestia de publicar esto para que nos beneficiemos sin tener porque, tiene que aguantar que un BASURA como tu lo insulte.
      Cuanta BASURA desagradecida hay en este país.

      Eliminar
    3. Es raro pero los Colombiano que conozco con estudios son muy educados, me gustaría saber que opinan tus profesores de la Universidad Autónoma del Caribe sobre ti, igual me animo y me pongo en contacto con la Universidad para que vean lo BASURA que eres.

      Eliminar
  2. Disculpa y que librerías son las que no están declaradas en tu proyecto¿¿??

    ResponderEliminar
  3. Te pone todo el código... y le llamas imbecil por no haber puesto las librerías??

    Quizá sea despiste, o quizá sea para evitar el copy-paste, pero cualquiera que sepa lo que está buscando sabe que falta: monitor_serial, ethernet y sd (lo que usa el programa)

    ResponderEliminar
  4. Como puedo colocar CSS a la pag para que Arduino WebServer me reconosca los "styles"?... gracias

    ResponderEliminar