martes, 14 de noviembre de 2017

SERVIDOR ARDUINO


SERVIDOR ARDUINO
QUISPE LLOJLLA MIRIAM WILMA
TICONA NINA DEYSI HELEN
QUISPE CATARI ROSMERY
MEJIA BALTAZAR IVAN JHONNY
NINA BELTRAN VERONICA JENNY
ALCON ECHEVERRIA LUIS
HUANCA POMA GHERSON
CALLISAYA CALLISAYA DELIA
HUANCA RODRIGUEZ CARMEN ROSA
HUANCA CRUZ LIZETH MERCEDES
HERRERA CORONEL KEVIN MICHAEL
QUISPE VILLARREAL WILSON 
AQUINO CASTRO GILDA
CARANI TOLA DANIEL
SUXO TORREZ LIZETH CLAUDIA
SUXO BAUTISTA JHENNY GRECIA

servidorarduino17@gmail.com

PARALELO 6 B -INGENIERIA DE REDES I
ING. DE SISTEMAS - UNIVERSIDAD PUBLICA DE EL ALTO

OBJETIVO GENERAL 
  •    Desarrollar  un servidor web con arduino y la Ethernet Shield.
  •   Aplicar los conocimientos adquiridos en la materia.
OBJETIVOS ESPECIFICOS
  • Desarrollar una página web que permite al usuario  visualizar la actividad de un área específica de su interés.
  • Desarrollar un código que permita listar el directorio raíz de la tarjeta y abrir ficheros listados en ese directorio.
  • Establecer una conexión Ethernet con arduino.
  • Desarrollar la codificación en HTML para la página web.
JUSTIFICACIÓN
La implementación de la tecnología en nuestra actualidad va creciendo a pasos agigantados sin embargo dicha manifestación no abarca a todos nuestro hogares es por eso que la dependencia  de nuestros estudiantes  de ingeniería  hacia la innovación es casi de un menor porcentaje, al referirnos con (implementación de tecnología) también nos referirnos al renovamiento constante  del hardware y software el cual se hace necesario  para sistematizar ya casi cualquier estancia. 

Existe esa inconformidad de seguir creando por el simple hecho de que hay una “necesidad” es por eso que en este caso se creara  un servidor utilizando un arduino, ¿por qué? Pues por parte del objetivo del  trabajo que en si es crear programar un servidor, crear un enlace utilizando un navegador (internet) el cual también es un servidor web, solo con recursos más amplios y nuestro arduino q cumplirá dicha finalidad,  en este caso se mostrara una representación de lo que es el manejo de datos y su infinidad de aplicaciones que hoy en día podamos requerir a través de los puntos ya mencionado antes.

RESUMEN
Un servidor web o servidor HTTP es un programa informático que procesa una aplicación del lado del servidor, realizando  conexiones bidireccionales o unidireccional  y síncronas o asíncronas con el  cliente y generando o cediendo una respuesta en cualquier lenguaje o aplicación del lado del cliente.antes que nada hay que saber  que es un servidor web .un servidor web es una computadora que guarda y trasmite datos vía internet .la información que almacenan es una forma  de página web cuando un cliente accede a un servidor web, envía una petición http que recibe el servidor web.

INTRODUCCIÓN
Arduino se enfoca en acercar y facilitar el uso de la electrónica y programación de sistemas embebidos en proyectos multidisciplinarios.​Toda la plataforma, incluyendo sus componentes de hardware y Software, son liberados con licencia de código abierto que permite libertad de acceso a ellos.
El hardware consiste en una placa de circuito impreso con un micro-controlador, usualmente Atmel AVR, puertos digitales y analógicos de entrada/salida, los cuales pueden conectarse a placas de expansión (shields), que amplían los funcionamientos de la placa Arduino. Asimismo, posee un puerto de conexión USB desde donde se puede alimentar la placa y establecer comunicación con el computador.
Por otro lado, el software consiste en un entorno de desarrollo IDE basado en el entorno de processing y lenguaje de programación basado en Wiring, así como en el cargador de arranque que es ejecutado en la placa. El micro-controlador de la placa se programa mediante un computador, usando una comunicación serie mediante un convertidor de niveles RS-232 a TTL.
MARCO TEÓRICO
Antes de conocer detalles sobre un servidor con  arduino, primero se debe saber:
¡QUE ES UN SERVIDOR WEB? 
Un servidor web, conocido también como (servidores http) , es un tipo de servidor utilizado para la Distribución de contenido web en Internet.  Un servidor web como parte de una red de ordenadores,  transfiere documentos a los llamados clientes, por ejemplo una página web a un explorador.
Cuando se habla de servidor web se refiere a dos cosas, ya sea al software de servidor web/software servidor http o al Host.
Básicamente, un servidor web es una gran computadora que guarda y transmite datos  vía el sistema de redes llamado Internet.
La capacidad de un servidor depende de su  hardware, de los componentes que conforman el ordenador del hosting.






HISTORIA
El Desarrollo del servidor web está vinculado con él informático británico Tim Berners Lee , quien en 1989 sugirió que el intercambio de información en el CERN (Organización Europea para la Investigación Nuclear) debería realizarse con un sistema de hipertexto más fácil y rápido.  Y en 1990, junto a Robert Cailliau , presento un proyecto y junto con el primer servidor web llamado CERN httpd , se creó el primer navegador web y otros elementos básicos de Internet como html y http. Por eso Berners Lee es considerado como el fundador de Internet.
FUNCIÓN DE UN SERVIDOR WEB
Su principal función es almacenar los archivos de un sitio y emitirlo por Internet para poder ser visitado por los usuarios.
Cuando un usuario entra en una página de Internet , su navegador se comunica con el servidor enviando y recibiendo datos que determinan Qué es lo que ve en la pantalla.
Otras funciones son : seguridad,  autenticación del usuario, redirección,  caching, asignación de Cookies.
El servidor web se ejecuta en un ordenador manteniéndose a la espera de peticiones por parte de un cliente (un navegador web)  y responde a estas peticiones adecuadamente.
Algunos servidores web importantes son: NGINX  , APACHE, INTERNET INFORMATION SERVICES (IIS) , CHEROKEE, TOMCAT.

Otros servidores simples y rápidos son: LIGHTTPD, THTTPD.



ARDUINO COMO SERVIDOR DE WEB
Antes que nada hay que saber que es un servidor web .un servidor web es una computadora  que guarda y transmite datos vía Internet.

La información que almacenan es en forma de página web cuando un cliente (navegador  web) accede a un servidor web, envía una petición HTTP que recibe el servidor web. Luego este envía la información  a través de un protocolo HTTP al cliente en formato HTML.


ARDUINO ETHERNET SHIELD



El Arduino Ethernet Shield permite a una placa Arduino conectarse a internet. Es la parte física que implementa la pila de protocolos TCP/IP.
Está basada en el chip ethernet Wiznet W5100. El Wiznet W5100 provee de una pila de red IP capaz de TCP y UDP. Usa la librería Ethernet para leer y escribir los flujos de datos que pasan por el puerto ethernet.
Es compatible con el Arduino UNO y Arduino Mega.El shield provee un conector ethernet estándar RJ45. La ethernet shield dispone de unos conectores que permiten conectar a su vez otras placas encima y apilarlas sobre la placa Arduino.
El botón de reset en la shield resetea ambos, el W5100 y la placa Arduino.
El shield contiene un número de LEDs para información:

•        PWR: indica que la placa y la shield están alimentadas.
•        LINK: indica la presencia de un enlace de red y parpadea cuando la shield  envía o recibe datos.
•        FULLD: indica que la conexión de red es full dúplex.
•        100M: indica la presencia de una conexión de red de 100 Mb/s (de forma opuesta a una de 10Mb/s).
•        RX: parpadea cuando la shield recibe datos.
•        TX: parpadea cuando la shield envía datos.
•        COLL: parpadea cuando se detectan colisiones en la red.


Para usar la Ethernet Shield solo hay que montarla sobre la placa Arduino. Para cargar los sketches a la placa con el shield, conectarla al ordenador mediante el cable USB como se hace normalmente. Luego conectar la Ethernet a un ordenador, a un switch o a un router utilizando un cable ethernet standard (CAT5 o CAT6 con conectores RJ45). La conexión al ordenador puede requerir el uso de un cable cruzado (aunque muchos ordenadores actuales, pueden hacer el cruce de forma interna).
Características:
Alimentacion de 5V suministrados desde la placa de Arduino.
El controlador ethernet es el W5100 con 16K de buffer interno.
•        No  consume memoria.
  El shield se comunica con el microcontrolador por el bus SPI, por lo tanto para usarlo siempre debemos incluir la libreria SPI.h.
•        Soporta hasta cuatro conexiones de sockets simultáneas.
•        Usar la librería Ethernet para manejar el shield.
•        El shield dispone de un lector de tarjetas micro-SD que puede ser usado para guardar ficheros y servirlos sobre la red. Para ello es necesaria la librería SD.
•        Al trabajar con la SD, el pin 4 es usado como SS.
•        Microcontrolador ATmega328.
•        Entrada recomendada de 7-12V.
•        Entrada (max) 6-20V.
•        Pines I/O 14 (4 con PWM).
•        Pines reservados 10 a 13 para SPI, 4 para SD, 2 para interrupción W5100 (en bridge).
•        Analog Input Pins 6.
•        DC Current per I/O Pin 40 mA.
•        DC Current for 3.3V Pin 50 mA.
•        Flash Memory de 32 KB (ATmega328) de los cuales 0.5 KB utilizado por el gestor de arranque.
•        SRAM            de 2 KB (ATmega328).
•        EEPROM de 1 KB (ATmega328).
•        Clock Speed   16 MHz.
•        W5100 TCP/IP Embedded Ethernet Controller       .
•        Power Over Ethernet ready Magnetic Jack.
•        Micro SD tarjeta, con traductores de voltaje activo.

El Arduino UNO utiliza los pines digitales 11, 12 y 13 (SPI) para comunicarse con este shield. El Mega emplea los pines 50,51 y 52. En ambas tarjetas (UNO y Mega) el pin 10 es empleado para seleccionar el W5100 y el pin 4 para la tarjeta SD. Mientras emplees las funcionalidades de ethernet estos pines no estarán disponibles. Así mismo toma en cuenta que en el Arduino Mega a pesar de que el pin 53 (SS pin) no es empleado para seleccionar ni el W5100 ni la tarjeta debe ser configurado como una salida ya de otra manera la interfaz SPI no funcionará.




ARDUINO MEGA
Arduino Mega es una tarjeta de desarrollo  construida con un microcontrolador modelo Atmega2560 que posee pines de entradas y salidas , analógicas y digitales. Esta tarjeta es programada en un entorno de desarrollo que implementa el lenguaje Processing/Wiring. Arduino puede utilizarse en el desarrollo de objetos interactivos autónomos o puede comunicarse a un PC a través del puerto serial El Arduino Mega tiene 54 pines de entradas/salidas digitales (14 de las cuales pueden ser utilizadas como salidas PWM), 16 entradas análogas, 4 UARTs (puertos serial por hardware), cristal oscilador de 16MHz, conexión USB, jack de alimentación, conector ICSP y botón de reset.  Arduino Mega incorpora todo lo necesario para que el microcontrolador trabaje simplemente conéctalo a tu PC por medio de un cable USB o con una fuente de alimentación externa .
 El Arduino Mega es compatible con la mayoría de los shields diseñados para Arduino Duemilanove, diecimila o UNO.
Esta nueva versión de Arduino Mega 2560 adicionalmente a todas las características de su sucesor utiliza un micro controlador ATMega8U2 en vez del circuito integrado FTDI. Esto permite mayores velocidades de transmisión por su puerto USB y no requiere drivers para Linux o MAC además ahora cuenta con la capacidad de ser reconocido por el PC como un teclado, mouse, joystick, etc.

CARACTERISTICAS
Micro controlador ATmega2560.
Voltaje de entrada de – 7-12V.
54 pines digitales de Entrada/Salida (14 de ellos son salidas PWM).
16 entradas análogas.
256k de memoria flash.
• Bajos costos. Las placas Arduino son más accesibles comparadas con otras plataformas de microcontroladores. Los módulos más caros de Arduino pueden ser montadas a mano bajando sus costos.
• Multi-Plataforma. El software de Arduino funciona en los sistemas operativos Windows, Macintosh OSX y Linux; mientras que la mayoría de otros entornos para microcontroladores están únicamente limitados a Windows.
• Entorno de programación simple y directo. El entorno de programación de Arduino es fácil de usar para principiantes y flexible para los usuarios avanzados. Además, Arduino está basado en el entorno de programación de Procesing, con lo que los estudiantes que aprendan a programar en este entorno se sentirán familiarizados con el entorno de desarrollo Arduino.
• Software ampliable y de código abierto. El software Arduino es de distribución de licencia libre y preparado para ser adaptado por programadores experimentados. El lenguaje puede ampliarse a través de librerías de C++, y en caso de querer profundizar en los detalles técnicos, se puede dar el salto a la programación en el lenguaje AVR C en el que está basado.
De igual modo se puede añadir directamente código en AVR C en los programas de los usuarios, si es que así lo desean.
• Hardware ampliable y de Código abierto. Arduino está basado en los microcontroladores ATMEGA168, ATMEGA328 y ATMEGA1280. Los planos de los módulos están publicados bajo licencia Creative Commons, por lo que diseñadores de circuitos con experiencia pueden hacer su propia versión del módulo, ampliándolo u optimizándolo. Incluso usuarios relativamente inexpertos pueden construir la versión para placa de desarrollo para entender cómo funciona y ahorrar algo de diner0
Velocidad del reloj de 16Mhz.

HISTORIA DE ARDUINO MEGA
Arduino se inició en el año 2005 como un proyecto para estudiantes en el Instituto IVREA, en Ivrea
En ese tiempo, los estudiantes usaban el microcontrolador , cuyo costo era de 100 dolares estadounidenses, lo que se consideraba demasiado costoso para ellos. Por aquella época, uno de los fundadores de Arduino, Massimo Banzi, daba clases en Ivrea.
El nombre del proyecto viene del nombre del Bar di Re arduino (Bar del Rey Arduino) donde Massimo Banzi pasaba algunas horas. El rey Arduino fue rey de Italia entre los años 1002 y 1014. En la creación de este proyecto contribuyó el estudiante colombiano Hernando Barragán, quien desarrolló la tarjeta electrónica Wiring, el lenguaje de programación y la plataforma de desarrollo.

VENTAJAS
• Simplifica. Arduino simplifica el proceso de trabajar con microcontroladores.

DEVENTAJAS
Dado que la programación no se realiza en ensambler, el precio a pagar por el uso de las librerías es un retraso en la ejecución de las instrucciones, algunos microsegundos que en el caso de dispositivos de uso cotidiano son irrelevantes, pero significativos  a la hora de hacer adquisición de datos.El hecho de que la plataforma venga ya ensamblada le quita flexibilidad a los proyectos, asi por ejemplo estaríamos obligados a usar un espacio y forma acorde con el PCB  del arduino, para superar esto, se debe trabajar con un microcontrolador diferente al de la plataforma y diseñar las PCB desde cero como con los PICs.

¿QUÉ PARTES COMPONEN EL ARDUINO?
·         Potencia - USB (1) / Conector de Adaptador (2)
·         Pines (5V, 3.3V, GND, Analog, Digital, PWM, AREF)
·         Botón de reinicio (10)
·         Indicador LED de alimentación (11)
·         LEDs RX TX (12)
·         Microcontrolador (13)
·         Regulador de Voltaje (14)


CABLE DIRECTO UTP
El cable directo de red sirve para conectar dispositivos desiguales, como un computador con un huboswitch. En este caso ambos extremos del cable deben tener la misma distribución distribuciones. No existe diferencia alguna en la conectividad entre la distribución 568B y la distribución 568A siempre y cuando en ambos extremos se use la misma, en caso contrario hablamos de un cable cruzado.
CARACTERÍSTICAS DEL CABLE UTP
TAMAÑO: El menor diametro permite aprovechar las canalizaciones y armarios de distribución.
PESO: El poco peso con respecto a otros tipos de cable facilita el tendido.
FLEXIBILIDAD : Facilidad para curvar y doblar permite tendidos mas rápidos.
Radio, de doblado < a 4 veces del diámetro del cable. Para trenzado de 4 pares categoría 5, radio mínimo de doblado:  5 cm.
IMPENDANCIA CARACTERÍSTICA: Al igual a 100 ohms + 15% desde 1MHZ hasta la frecuencia mas elevada referida (10,20 o 100MHZ).
INSTALACIÓN: Por su amplio uso su instalación es barata.
INTEGRACIÓN: Los servicios soportados por este tipo de cable incluye : Red de aré local ISO 8802.3(Ethernet) ISO 8802.5(Token ring) telefonía analógica, telefonía digital,terminales sincronos, terminales sincronos, líneas de control y alarmas.
FACILIDAD DE USO: Marcado con muneros que representan la distancia en pies de cada tramo.

NORMA DEL CABLE DIRECTO UTP
El cable directo es sencillo de construir, solo hay que tener la misma norma en ambos extremos del cable. Esto quiere decir, que si utilizaste la norma T568A en un extremo del cable, en el otro extremo tambien debes aplicar la misma norma T568A.
Este tipo de cables es utilizado para conectar computadores a equipos activos de red, como Hubs, Switchers, Routers.
TERMINALES DE TRANSMISIÓN Y RECEPCIÓN
Las redes de computadores no utilizan los 4 pares (8 cables) en su totalidad, utilizan solamente 4 cables: 2 para transmitir y 2 para recibir.
PROCEDIMIENTO
Lo primero que debemos hacer es colocar el blindaje por decirlo asi del Ethernet sobre el arduino.
Verificado y cuidando que los pies estén bien alineados entre si


Después se debe conectar el arduino a la computadora con la que estamos trabajando    también conectamos el Ethernet con un cable utp pero para que el programa reconosca el arduino debemos ejecutar la siguiente instrucción :
Abra Arduino IDE y ejecute el ejemplo de WebServer en arduino-00xx -> libraries -> Ethernet.
A la par compilamos el programa con las lineas de código e html en el arduino para su correcto funcionamiento.

luego abrimos nuestro navegador  para digitar la siguiete url:
http ://192.168.108.4

Si no funciona, es probable que tenga un proveedor de servicios de Internet el bloque de puertos 80, el puerto http estándar.
RESULTADOS
En la primera parte de este proyecto nos concentraremos en hacer funcionar el Arduino con la Ethernet Shield, esta shield como su nombre lo dice es una interfaz ethernet que permite conectar el Arduino a nuestra red local o internet.
Antes de ensamblar la shield con el Arduino se debe anotar la dirección MAC que la mayoría de las veces está en un papel adherido a la parte inferior de la shield, esta dirección MAC es única para cada shield (y para cada tarjeta de red de cualquier dispositivo) y se usará después para programar la shield.

Con la shield ensamblada se conecta el Arduino con el cable usb al computador para programarlo.

Fijamos la dirección MAC y la IP, e inicializamos el servidor Web en el puerto 80.
Dirección MAC de tu ethernet shield) esta es única para cada shield por lo que deben cambiarla.
IPAddress ip (192, 168, 108,4); Poner atención en que las direcciones IP están separadas por comas “,” y no por puntos “.”.
El servidor puede ser local o directamente un servidor en Internet, el Arduino usará la red local para llegar al servidor Internet.


Nos podemos dar cuenta, que los conceptos que usamos para leer de un cliente web, son los mismos que usamos para leer de una consola serie. Es una de las grandes ventajas de la programación orientada a objetos, porque ambos descienden de una clase similar, Stream, aunque el origen y la tecnología de soporte son muy distinta, la idea de un flujo continuo bit a bit por algo parecido a un hilo lógico es común a ambos casos.
ERRORES
En el trabajo realizado obtuvimos el error al  utilizar el slot de memoria SD del Ethernet shield , en el cual nosotros podemos introducir  imágenes a la pagina web que realizamos, al obtener este error nos pudimos dar cunta que no podemos utilizar directamente el slot de memoria, para insertar las imágenes a la pagina web , donde necesariamente necesitamos la una librería en el código del arduino , la librería se llama “ SD LIBRARY”  , esta librería  proporciona funciones para acceder a la tarjeta SD y manipular sus archivos y directorios.
La librería es compatible con los sistemas de archivos FAT16 y FAT32 en tarjetas SD estándar y tarjetas SDHC. Utiliza nombres cortos de 8.3 para archivos. Los nombres de archivos pasados a las funciones de la biblioteca SD pueden incluir rutas separadas por barras diagonales, /, por ejemplo:

"directorio / nombredearchivo.txt"

Como el directorio de trabajo siempre es la raíz de la tarjeta SD, un nombre hace referencia al mismo archivo, incluya o no una barra diagonal por ejemplo:

"/file.txt" es equivalente a "archivo.txt" 

A partir de la versión 1.0, la librería admite la apertura de múltiples archivos,la comunicación entre el microcontrolador y la tarjeta SD utiliza SPI, que tiene lugar en los pines digitales 11, 12 y 13 , esto es generalmente en la mayoría de las placas Arduino  o 50, 51 y 52  para el Arduino Mega. Además, se debe usar otro pin para seleccionar la tarjeta SD. Este puede ser el pin SS de hardware - pin 10 o pin 53 en la Mega u otro pin especificado en la llamada a SD.begin ().
CONCLUSIONES
La conclusión que se ha llegado tras realizar este trabajo con los servidores con arduino han crecido numerablemente ya que gracias a este o estos servidores es la cual nos llegamos a comunicar o simplemente buscar dicha información que se requiera.
Los servidores proporcionan recursos de compartición de archivos impresoras etc. Desde una ubicación centralizada cuando un cliente envía una solicitud de datos al servidor.
Estos servidores son puntos que se conectan y mandan la información a la manera de combinar algún lenguaje de programación con un indicador o testigo que sería el arduino. Para lo cual se requirió un Ethernet shield para que pudieran enlazarse y combinar  dicha información  y poder enviar al usuario. O simplemente mandar la información de lo  se buscó lo cual el arduino se conecta a internet.

Esto pareció un proyecto realmente  excepcional motivador ya  que nos sirvió  de mucha experiencia en aumentar nuestro grado de trabajo  en equipo dando soluciones al problema con los conocimientos adquiridos e investigaciones este tipo de proyectos nos ayudara a alcanzar una mayor parte de conocimientos.

GRACIAS POR VISITAR NUESTRO BLOG




1 comentario: