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.
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.
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.
BIBLIOGRAFIA
MUY BUEN TRABAJO
ResponderEliminar