Proyecto Ethernet shield conectar arduino a internet El objetivo del proyecto el logra que arduino sea un servidor web. Poder acceder a contenidos web como cliente, usar Arduino como servidor. La idea es que se muestra la IP del shield en la consola serial monitor, mediante esa IP que aparecerá acceder mediante un navegador al que entonces será el servidor de arduino. 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. Los elementos necesarios son: Arduino mega. Ethernet shield.
Cable Ethernet. Cable de programación USB.
Código fuente: 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 lo cual cuando hay una petición de un cliente se imprime carácter a carácter en la consola serial al información que el cliente solicito y después imprime los datos en el navegador. #include <SPI.h> #include <Ethernet.h> // Configuración de direccion MAC e IP. byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED ; IPAddress ip(192,168,2,254); // Inicia la libreria Ethernet server con el puerto 80 (por defecto el puerto HTTP). EthernetServer server(80); void setup() { // Inicia el puerto serie. Serial.begin(9600); // Inicia la conexiã³n Ethernet y el servidor. Ethernet.begin(mac, ip); server.begin(); Serial.print("IP local del servidor "); Serial.println(Ethernet.localIP()); void loop() { EthernetClient client = server.available(); // Escucha a los clientes entrantes. if (client) { // Si un cliente se conecta al servidor: Serial.println("Nuevo cliente"); boolean currentlineisblank = true; // Marcador para enviar la respuesta desde el servidor. while (client.connected()) { // Repite mientas existe clientes conectados:
if (client.available()) { char c = client.read(); Serial.write(c); // Imprime por el puerto serie la peticiã³n del cliente (caracter a caracter) if (c == '\n' && currentlineisblank) { // Se envia la respuesta a una peticiã³n de un cliente cuando a finalizado la peticiã³n: // Respuesta: client.println("http/1.1 200 OK"); // Enviar un encabezado de respuesta HTTP estã ndar client.println("content-type: text/html"); client.println("connection: close"); // Se cerrarã la conexiã³s despues de enviar la respuesta. client.println("refresh: 5"); // Refrescar automã ticamente la pã gina despuã s de 5 segundos. break; client.println(); client.println("<!doctype HTML>"); // Tipo de documento. client.println("<html>"); // Etiqueta html inicio del documento. client.print("hola soy Arduino!! - "); client.print(millis()); // Tiempo de funcionamiento en ms. client.print("ms encendido. "); client.println("<br />"); // Etiqueta html salto de linea. client.println("</html>"); // Etiqueta html fin del documento. if (c == '\n') { // Si el caracter es un salto de linea: currentlineisblank = true; // La peticiã³n a terminado, se respondera a dicha peticã³n en el sigueitne ciclo.
else if (c!= '\r') { // Si el caracter no es un retorno de carro (la peticiã³n no a terminado). currentlineisblank = false; // Seguimos escuchando la peticiã³n. delay(1); // Espera para dar tiempo al navegador a recivir los datos. client.stop(); // Cierra la conexiã³n. Serial.println("Cliente desconectado"); Serial.println(); Paso a paso: Conectar arduino con Ethernet shield en los pines GND, GND 5V Conectarle a la placa el cable USB y Ethernet
Cargar el código fuente, si este está correcto en la consola serial aparecer la IP de arduino shield Ethernet, la misma que nosotros le asignamos. Con la cual accederemos con un navegador al que ahora va a hacer el servidor Arduino
Si todo está correcto, aparecerá un mensaje como el de la foto, junto al tiempo trascurrido desde que se encendió Arduino Y en la consola serial se puede ver la petición el cliente. Con solo acceder a la dirección IP es una petición Como voy a trabajar con arduino shield Ethernet necesito saber que es bien Ethernet shield: Permite a arduino conectarse a internet Está basado en el chip de Ethernet Wiznet W5100 con funcionalidades de IP tanto para TCP como UDP. El Arduino Ethernet Shield soporta hasta 4 conexiones simultáneas. Utiliza la librería Ethernet para escribir rápidamente programas que te conecten a internet empleando este shield. http://www.5hz-electronica.com/arduinoethernetshield.aspx En el código fuente se le debe asignar una dirección byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED ; es la configuración de la identificación del adaptador de red (arduino shield Ethernet). La MAC de arduino debe ser única en la red IPAddress ip(192,168,1,177);es la ip que tomara arduino como servidor. En la que hay que asignar para obtener los datos. Debe ser similar a la de la PC que estamos trabajando
Y la librería #include <Ethernet.h> para usar la shield Ethernet (incluida en la IDE de Arduino). Como no sabía cuál era mi IP en un video vi como se puede ver la IP de mi PC y así accionarle una similar http://tdrobotica.co/tutoriales/arduino/262-arduino-ethernet-shield http://arduino.cc/es/reference/ethernetbegin Entrando a la consola de ejecución con el comando cmd Con el comando ipconfig Ya conecte la shield Ethernet a arduino en los pines GND, GND 5V
Lo conecte a la PC y al cable Ethernet el código fuente pero tiene un error Conecte arduino en todos los puertos de la PC y sigue el mismo erro lo conecte a otra PC y ahora si funciona El problema era en el COM
No podía entra con el navegador al servidor arduino con la IP. Creo que era por el navegador, me ayudo en profeso que entro con internet explore. Ahora si funciona
http://www.proyectosarduino.com.ar/ethernet-shield-conecta-tu-arduino-a-internet/ http://tdrobotica.co/tutoriales/arduino/262-arduino-ethernet-shield http://arduino.cc/es/tutorial/webserver http://www.tecnofilo.es/conociendo-el-arduino-ethernet-shield/ Daiana Ledesma 6to de informática E.E.T N 2 Patricias Argentinas Sitios web consultados: http://zygzax.com/2012/11/05/arduino-ethernet-shield-ds18s20/(temperatura) http://www.proyectosarduino.com.ar/sensor-de-temperatura-por-internet/ http://pedrocarrillo.wordpress.com/2011/08/16/domotiza-tu-casa-dia-6-leer-temperaturacon-arduino/ http://www.enerzuul.es/?p=459 http://es.scribd.com/doc/113120204/caracterizacion-sensor-lm35 datashield http://www.hacktronics.com/tutorials/arduino-1-wire-tutorial.html http://www.tuelectronica.es/tutoriales/arduino/arduino-ethernet-shield.html lm35 http://www.internetdelascosas.cl/2012/05/04/midiendo-temperatura-con-arduino-ylm35