Conecion Con Net Shiel Arduino-ros

20
CONEXIÓN CON ETHERNET SHIELD Y ARDUINO MEGA 2560 Proyecto de Diseño Digitales UTP Rosmely Rodríguez

Transcript of Conecion Con Net Shiel Arduino-ros

CONEXIÓN CON ETHERNET SHIELD Y ARDUINO MEGA 2560

Proyecto de Diseño Digitales

Rosmely R. Rodríguez R.ING. EN SISTEMAS Y COMPUTACIÓN

UNIVERSIDAD TECNOLOGICA DE PANAMÁ

CENTRO REGIONAL DE VERAGUAS

FACULTAD DE INGENIERIA DE SISTEMAS COMPUTACIONALES

LICENCIATURA EN INGENIERIA DE SISTEMAS Y COMPUTACIÓN

PROYECTO DE DISEÑO DIGITALES

COD: 8464

CONEXIÓN CON ETHERNET SHIELD Y ARDUINO MEGA 2560

PROFESOR:

EUCLIDES QUIEL

ESTUDIANTE:

ROSMELY RODRIGUEZ 9-732-2108

GRUPO:

4IL141

NIVEL:

IV AÑO

II SEMESTRE

Rosmely R. Rodríguez R.ING. EN SISTEMAS Y COMPUTACIÓN

Tabla de contenido

INTRODUCCIÓN......................................................................................................................3

Conexión con Ethernet Shield y Arduino mega 2560...................................4

Introduccion a HTML...........................................................................................................4

Introducción a mysql?............................................................................................................4

Introducción a servidores web...............................................................................................4

Conexión del Arduino en Área Local........................................................................................4

Materiales necesarios:............................................................................................................4

Hardware..............................................................................................................................4

Software...............................................................................................................................5

Codigo.....................................................................................................................................6

Pasos para la conexión de manera local................................................................................8

Configuración Detallada conectado a Router....................................................................11

CONCLUSION.........................................................................................................................15

Bibliografía.................................................................................................................................16

Rosmely R. Rodríguez R.ING. EN SISTEMAS Y COMPUTACIÓN

INTRODUCCIÓN

Las placas robóticas Arduino son muy polifacéticas y nos brindan una gama de

completos que nos permiten su especialización y utilización para distintos proyecto

según la creatividad, necesidad o conocimiento del usuario. Una de estas muchas

aplicaciones es el poder enviar datos desde nuestro Arduino y acceder a ellos de manera

remota ya sea en una misma o a través de servidores web.

Para la conexión Arduino a una red se usa el Shield Arduino Ethernet. De forma que

podremos acceder a contenidos web como cliente, usar Arduino como servidor web

desde una página web sencilla.

En este trabajo encontrarnos todos los términos relaciones a la explicaión para

comprender mejor lo que se nos pide, una lista de materiales para cada tipo de conexión.

También veremos un ejemplo sencillo para familiarizarnos con la shield Ethernet. Una

conexión de manera local, donde podremos visualizar su funcionamiento dentro de una

misma red y una guía para realizar una conexión a través de servidores.

Rosmely R. Rodríguez R.ING. EN SISTEMAS Y COMPUTACIÓN

Conexión con Ethernet Shield y Arduino

mega 2560

Introduccion a HTML

HTML, siglas de HyperText Markup Language es un estándar que, en sus diferentes versiones, define una estructura básica y un código (denominado código HTML) para la definición de contenido de una página web, como texto, imágenes, etc. (Wikipedia, n.d.)

Introducción a mysql?

Es un software libre fácil de utilizar y se acopla bien a la utilización con php, ventajas, que bien pueden ser la razón por la cual es la base de datos de código fuente abierto más usada del mundo. Es decir Open Source representa que el usuario puede usarle libremente y hacer ajustes en el código para maximizar su funcionamiento, anexando mejoras a la base de datos. De acuerdo a lo que se sabe de los programas de código abierto, se tiene la experiencia de que su éxito depende en mucho del concepto abierto.

Introducción a servidores web

Un servidor web no es más que un dispositivo que atiende peticiones de otro dispositivo cliente a través de una dirección IP, es decir, si nosotros accedemos a la IP de Arduino (proporcionada por la Ethernet Shield) mediante un navegador, estaremos solicitando una información, Arduino como servidor, nos servirá la información solicitada.

Rosmely R. Rodríguez R.ING. EN SISTEMAS Y COMPUTACIÓN

Conexión del Arduino en Área LocalMateriales necesarios:

Hardware

1. Placa Robotica Arduino (mega, Uno, etc.). Fig1

2. Arduino Ethernet Shield. Fig2

3. Cable Ethernet. Fig3

4. Router

Software

1. XAMPP (link de descarga: http://www.apachefriends.org/es/xampp.html)2. MySql (incluido en el XAMPP)3. Arduino Software (link de descarga: http://arduino.cc/en/Main/Software)

Fig 1 Arduino Mega

Fig 2 Arduino Ethernet Shield

Rosmely R. Rodríguez R.ING. EN SISTEMAS Y COMPUTACIÓN

Fig 3 Cable Ethernet

Codigo

01.#include <SPI.h>02.#include <Ethernet.h>03. 04.// Configuración de direccion MAC e IP.05.byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };// MAC del shield06.IPAddress ip(192,168,1,177);// Debe ser igual a la ya establecida en el router07. 08.// Inicia la libreria Ethernet server con el puerto 80 (por defecto el puerto HTTP).09.EthernetServer server(80);10. 11.void setup() {12.// Inicia el puerto serie.13.Serial.begin(9600);14. 15.// Inicia la conexión Ethernet y el servidor.16.Ethernet.begin(mac, ip);17.server.begin();18.Serial.print("IP local del servidor ");19.Serial.println(Ethernet.localIP());20.}21. 22.void loop() {23.EthernetClient client = server.available(); // Escucha a los clientes entrantes.24. 25. 26.if (client) { // Si un cliente se conecta al servidor:27.Serial.println("Nuevo cliente");28.boolean currentLineIsBlank = true; // Marcador para enviar la respuesta desde el servidor.29.while (client.connected()) { // Repite mientas existe clientes conectados:30.if (client.available()) {

Rosmely R. Rodríguez R.ING. EN SISTEMAS Y COMPUTACIÓN

31.char c = client.read();32.Serial.write(c); // Imprime por el puerto serie la petición del cliente (caracter a caracter)33.if (c == '\n' && currentLineIsBlank) { // Se envia la respuesta a una petición de un cliente cuando a finalizado la petición:34.// Respuesta:35.client.println("HTTP/1.1 200 OK"); // Enviar un encabezado de respuesta HTTP estándar36.client.println("Content-Type: text/html");37.client.println("Connection: close"); // Se cerrará la conexiós despues de enviar la respuesta.38.client.println("Refresh: 5"); // Refrescar automáticamente la página después de 5 segundos.39.client.println();40.client.println("<!DOCTYPE HTML>"); // Tipo de documento.41.client.println("<html>"); // Etiqueta html inicio del documento.42.client.print("Hola soy Arduino!! - ");43.client.print(millis()); // Tiempo de funcionamiento en ms.44.client.print("ms encendido. ");45.client.println("<br />"); // Etiqueta html salto de linea.46.client.println("</html>"); // Etiqueta html fin del documento.47.break;48.}49.if (c == '\n') { // Si el caracter es un salto de linea:50.currentLineIsBlank = true; // La petición a terminado, se respondera a dicha peticón en el sigueitne ciclo.51.}52.else if (c != '\r') { // Si el caracter no es un retorno de carro (la petición no a terminado).53.currentLineIsBlank = false; // Seguimos escuchando la petición.54.}55.}56.}57.delay(1); // Espera para dar tiempo al navegador a recivir los datos.58.client.stop(); // Cierra la conexión.59.Serial.println("Cliente desconectado");60.Serial.println();61.}62.}

--------------------------------------------------------------------

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };Es la configuración del identificador único MAC del adaptador de red (Arduino Ethernet Shield), este debe ser el que esta en el Shield.

IPAddress ip(192,168,1,177);Es la IP que Arduino le podremos la que le servidor no ha asignado.

#include <Ethernet.h>Librería para usar la shield Ethernet (incluida en la IDE de Arduino).

Este código imprime información a través de dos medios. Una a través del puerto serie y otra como servidor a través del navegador. Por esto, cuando existe un cliente solicitando información, primero imprime (carácter a carácter) la información que el cliente solicita a través del puerto serie y luego atiende la petición imprimiendo los datos en el navegador.

Rosmely R. Rodríguez R.ING. EN SISTEMAS Y COMPUTACIÓN

Pasos para la conexión de manera local

Conectaremos la Shield sobre Arduino.

Y conectaremos el cable USB y Ethernet.

Rosmely R. Rodríguez R.ING. EN SISTEMAS Y COMPUTACIÓN

Una vez cargado el código en Arduino, si todo está correcto, debe aparecer la IP del servidor en el monitor serie.

Accederemos mediante un navegador a la IP del ahora servidor web Arduino.

Rosmely R. Rodríguez R.ING. EN SISTEMAS Y COMPUTACIÓN

Si todo está correcto, aparecerá un mensaje como el de la foto, junto al tiempo trascurrido desde que se encendió Arduino en milisegundo. Esta información se refrescará cada 5 segundos. En el puerto serie podremos ver las peticiones del cliente. El simple hecho de acceder a la dirección IP de Arduino ya es una petición.

Rosmely R. Rodríguez R.ING. EN SISTEMAS Y COMPUTACIÓN

Configuración Detallada conectado a Router Configuración del Router para conectar el arduino Ethernet shield

Se busca en la opción DHCP y se añade una Mac y IP la cuales se van a utilizar en el arduino

Rosmely R. Rodríguez R.ING. EN SISTEMAS Y COMPUTACIÓN

Se verifica cual es el rango de la ip

Código Arduino, HTML

Este código está diseñado para mandar datos a la dirección IP dada al inicio del mismo la cual puede ser configurada local mente en router o directamente a la pc, está en lo más básico de la plantilla HTML la cual puede ser modificada fácilmente, se están mandando datos de registro de el tiempo encendido del arduino.

Se usa el mismo código que ya probamos anteriormente.

Al correrlo y acceder de la ip asignada a el Arduino veremos en el navegador la pagina que hemos creado, ahora accediendo desde la ip del router dentro de la misma red.

Rosmely R. Rodríguez R.ING. EN SISTEMAS Y COMPUTACIÓN

Código PHP de insertar base de datos

--------------------------------------------------------------------------------<?php$conexion = mysql_connect("localhost","root",""); // servidor, usuario, contraseñamysql_select_db("arduino",$conexion); // nombre de la base de datosif(!$conexion){die('Se Produjo un Error en el Sistema!, Porfavor intente acceder mas tarde.');}else{mysql_select_db("arduino",$conexion);}//Consulra$sql = "INSERT INTO `variable`(`fecha`, `id`) VALUES (NOW(),'dato')";//fecha , dato a inserter mysql_query($sql);?>------------------------------------------------------------------------------------Con este código PHP se puede insertar datos a la tabla y BD especificado también con código aparte puede catar datos mediante un comando llamado GET

Rosmely R. Rodríguez R.ING. EN SISTEMAS Y COMPUTACIÓN

XAMPPEste programa es un servidor local el cual puede ejecutar paginas PHP y tener acceso a crear base de datos a través del mismo.

PHP myadmin

Es un mysql vía web, configurable y con funciones explícitamente hacia web.

Rosmely R. Rodríguez R.ING. EN SISTEMAS Y COMPUTACIÓN

CONCLUSION

Arduino es una familia muy extensa, la cual nos permite realizar proyecto de bajo costo

y funcionales. Para esto necesitamos tener conocimientos en el área a implementar. En

este proyecto usando el Ardunio mega y el Shield Ethernet, descubrimos que es muy

complejo realizar una conexión a internet y actualizar datos si no tenemos

conocimientos en área web (HTML,PHP,etc), que son básicos para guardar datos en

servidores remotos y locales. Pero con un poco de investigación podemos salvar datos

desde arduino a un servidor de manera local, sin tener conocimientos avanzados en

servicios web.

Rosmely R. Rodríguez R.ING. EN SISTEMAS Y COMPUTACIÓN

Bibliografía

apachefriends. (s.f.). xampp. Obtenido de http://www.apachefriends.org/es/xampp.html

Arduino . (s.f.). ArduinoEthernetShield. Obtenido de http://arduino.cc/es/Main/ArduinoEthernetShield

Slideshare. (s.f.). Ventajas para considerar el uso de de MySql omo base de datos. Obtenido de http://www.slideshare.net/Ing-D-SW-TorresKhano--ME/ventajas-del-por-qu-usar-mysql-como-sistema-gestor-de-bases-de-datos

Wikipedia. (s.f.). Obtenido de Wikipedia: http://es.wikipedia.org/wiki/HTML