Академический Документы
Профессиональный Документы
Культура Документы
CÓDIGO: EE3010
Laboratorio N° 08
I. OBJETIVO:
CONECTAR ARDUINO A INTERNET O LAN CON SHIELD ETHERNET W5100
Realiza un video del caso práctico 1 para domótica con simulación LOGO! Soft Comfort
Realiza esquema eléctrico de una comunicación KNX
Analiza como se instala y configura el control domótico con ozom y uso de Smartphone
I. Cuestionario Previo
https://www.luisllamas.es/arduino-ethernet-shield-w5100/
1. ¿QUÉ ES EL W5100?
una pila de TCP/IP por hardware y buffer interno de 16Kbytes para Tx/Rx. Esto permite liberar de
estas tareas al procesador, siendo una de sus principales ventajas frente a otros controladores de
Ethernet como el ENC28J60.
puede conectarse mediante SPI, por lo que es muy sencilla la conexión con la mayoría de
procesadores. Algunos módulos incorporan un lector de tarjeta SD, donde podemos guardar
ficheros (html, txt, jpg, png) con los que trabajar cuando actuemos como servidor
Cumple con las especificaciones IEEE 802.3 10BASE-T y 802.3u 100BASE-TX. La pila TCP/IP
soporta conexiones TCP, UDP, IPv4, ICMP, ARP, IGMP and PPPoE, y hasta 4 conexiones
simultáneas.
Soporta conexiones TCP, UDP, IPv4, ICMP, ARP, IGMP and PPPoE, y hasta 4 conexiones
simultáneas.
Nosotros podemos emplear un módulo de Ethernet con W5100 en nuestros proyectos para enviar
o recibir información desde internet o una red Interna, por ejemplo, para realizar la lectura de un
sensor, o para activar, controlar o desactivar cualquier dispositivo
http://diymakers.es/crear-servidor-web-con-arduino/
La petición HTTP que envía el cliente al servidor sería algo parecido a lo siguiente:
GET / HTTP/1.1
Host: 192.168.1.100 (dirección IP del servidor)
Accept: text/html
User-Agent: Mozilla/5.0 (Windows) (Navegador y sistema operativo)
[Línea en blanco]
HTTP/1.1 200 OK
Date: Sun, 25 Des 2014 17:42:10 GMT
Content-Type: text/html
<html>
<!-- código HTML -->
</html>
En resumen, en este tutorial nuestro Arduino está conectado a la red con una IP que le
asignamos. El código HTML de la web que enviará lo escribiremos en el sketch. Cuando
ponemos esta dirección IP en un buscador Web de un ordenador conectado a la misma red (o
desde fuera a través de Internet si abrimos un puerto que nos direccione a la IP del Arduino),
estamos enviando una petición HTTP. Cuando el Arduino lea esta petición, nos enviará el
código HTML para que podamos visualizar la página Web en el navegador.
II. PROCEDIMIENTO
1. ESQUEMA DE MONTAJE
3. VERIFICACIÓN DE LA RED
ara los que no saben que IP tenemos que asignarle al Arduino, sabed que tiene que estar
dentro del mismo rango que la IP de la puerta de enlace (Getaway). Para saber esto, en
Windows nos vamos a la consola (poniendo cmd en el buscador de Inicio),
escribimos “ipconfig”. Aquí nos pondrá la IP asignada del ordenador, la máscara subred y la
puerta de enlace.
Para controlar los módulos de Ethernet con W5100 usaremos la librería Ethernet.h, que está
integrada en el propio IDE de Arduino.
En el siguiente código Arduino actúa como servidor, es decir, devuelve una página web cuando un
cliente (un PC, un móvil, otro Arduino…) se conecta a él.
En este caso, vamos a mostrar una página web con el estado de las entradas digitales y analógicas
de Arduino. Para ello, simplemente servimos una cadena de texto en html, en la que incluimos los
valores de las entradas.
Nro. DD-106
INSTALACIONES ELECTROTÉCNICAS Página 9 de 25
Código:
LAB_08_CONECTAR ARDUINO A INTERNET O LAN CON SHIELD ETHERNET W5100 Semestre: III
Grupo: A
Nro. DD-106
INSTALACIONES ELECTROTÉCNICAS Página 10 de 25
Código:
LAB_08_CONECTAR ARDUINO A INTERNET O LAN CON SHIELD ETHERNET W5100 Semestre: III
Grupo: A
Nro. DD-106
INSTALACIONES ELECTROTÉCNICAS Página 11 de 25
Código:
LAB_08_CONECTAR ARDUINO A INTERNET O LAN CON SHIELD ETHERNET W5100 Semestre: III
Grupo: A
Nro. DD-106
INSTALACIONES ELECTROTÉCNICAS Página 12 de 25
Código:
LAB_08_CONECTAR ARDUINO A INTERNET O LAN CON SHIELD ETHERNET W5100 Semestre: III
Grupo: A
#include <SPI.h>
#include <Ethernet.h>
void setup()
{
Serial.begin(9600);
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
void loop()
{
EthernetClient client = server.available();
if (client)
{
Serial.println("new client");
bool currentLineIsBlank = true;
String cadena = "";
while (client.connected())
{
if (client.available())
{
char c = client.read();
Serial.write(c);
client.println(F("<html>\n<head>\n<title>Luis Llamas</title>\n</head>\n<body>"));
client.println(F("<div style='text-align:center;'>"));
client.println(F("<h2>Entradas digitales</h2>"));
for (int i = 0; i < 13; i++)
{
client.print("D");
client.print(i);
client.print(" = ");
client.print(digitalRead(i));
client.println(F("<br />"));
}
client.println("<br /><br />");
client.println(F("<h2>Entradas analogicas</h2>"));
for (int i = 0; i < 7; i++)
{
client.println("A");
client.println(i);
client.println(" = ");
client.println(analogRead(i));
client.println(F("<br />"));
}
client.println(F("<a href='http://192.168.1.177'>Refrescar</a>"));
client.println(F("</div>\n</body></html>"));
break;
}
if (c == '\n')
{
currentLineIsBlank = true;
}
else if (c != '\r')
{
currentLineIsBlank = false;
}
}
}
delay(1);
client.stop();
}
Nro. DD-106
INSTALACIONES ELECTROTÉCNICAS Página 14 de 25
Código:
LAB_08_CONECTAR ARDUINO A INTERNET O LAN CON SHIELD ETHERNET W5100 Semestre: III
Grupo: A
El este ejemplo Arduino actúa también como servidor, pero esta vez queremos que el
usuario pueda realizar acciones sobre Arduino a través de la página web que servimos.
En este caso, vamos a controlar dos salidas digitales, a las que podemos conectar un Led
para visualizar la respuesta.
Para ello, en primer lugar servimos la página web de forma similar al ejemplo anterior, pero
en esta incluimos dos botones para cada salida.
Al pulsar en cada botón se realiza una nueva solicitud a Arduino, con diferente URL a la
original. Arduino captura la nueva solicitud, y emplea la URL recibida para realizar las acciones
oportunas.
#include <SPI.h>
#include <Ethernet.h>
void setup()
{
Nro. DD-106
INSTALACIONES ELECTROTÉCNICAS Página 15 de 25
Código:
LAB_08_CONECTAR ARDUINO A INTERNET O LAN CON SHIELD ETHERNET W5100 Semestre: III
Grupo: A
Serial.begin(9600);
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
pinMode(pinLed1, OUTPUT);
pinMode(pinLed2, OUTPUT);
digitalWrite(pinLed1, LOW);
digitalWrite(pinLed2, LOW);
}
void loop()
{
EthernetClient client = server.available();
if (client)
{
Serial.println("new client");
bool currentLineIsBlank = true;
String cadena = "";
while (client.connected())
{
if (client.available())
{
char c = client.read();
Serial.write(c);
if (cadena.length()<50)
{
cadena.concat(c);
if (command == "data1=0")
{
digitalWrite(pinLed1, HIGH);
}
else if (command == "data1=1")
{
digitalWrite(pinLed1, LOW);
}
else if (command == "data2=0")
{
digitalWrite(pinLed2, LOW);
}
else if (command == "data2=1")
{
digitalWrite(pinLed2, HIGH);
}
}
client.println(F("<html>\n<head>\n<title>Luis Llamas</title>\n</head>\n<body>"));
client.println(F("<div style='text-align:center;'>"));
client.println(F("<h2>Salidas digitales</h2>"));
Nro. DD-106
INSTALACIONES ELECTROTÉCNICAS Página 16 de 25
Código:
LAB_08_CONECTAR ARDUINO A INTERNET O LAN CON SHIELD ETHERNET W5100 Semestre: III
Grupo: A
client.println(F("<a href='http://192.168.1.177'>Refrescar</a>"));
client.println(F("</div>\n</body></html>"));
break;
}
if (c == '\n')
{
currentLineIsBlank = true;
}
else if (c != '\r')
{
currentLineIsBlank = false;
}
}
}
delay(1);
client.stop();
}
}
Nro. DD-106
INSTALACIONES ELECTROTÉCNICAS Página 17 de 25
Código:
LAB_08_CONECTAR ARDUINO A INTERNET O LAN CON SHIELD ETHERNET W5100 Semestre: III
Grupo: A
Nro. DD-106
INSTALACIONES ELECTROTÉCNICAS Página 18 de 25
Código:
LAB_08_CONECTAR ARDUINO A INTERNET O LAN CON SHIELD ETHERNET W5100 Semestre: III
Grupo: A
Nro. DD-106
INSTALACIONES ELECTROTÉCNICAS Página 19 de 25
Código:
LAB_08_CONECTAR ARDUINO A INTERNET O LAN CON SHIELD ETHERNET W5100 Semestre: III
Grupo: A
Link:
https://www.youtube.com/watch?v=QUm6wj_UVqI
ACTIVIDAD 2: REALIZAR UN VIDEO YOUTUBE DE LA SIMULACION CON LOGO! Soft Comfort DEL
CASO PRACTICO 1
Libro INSTALACIONES DOMOTICAS, Carlos Tobaja, pag 107
LINK:
https://www.youtube.com/watch?v=2CQbWBTV8iM&fbclid=IwAR0VvNpLtj_Il1fXnL_eBbdQkl21
mK3rL86vvWE6yxSnqnM1o2FPGHcXDlk
Nro. DD-106
INSTALACIONES ELECTROTÉCNICAS Página 20 de 25
Código:
LAB_08_CONECTAR ARDUINO A INTERNET O LAN CON SHIELD ETHERNET W5100 Semestre: III
Grupo: A
VII. INVESTIGACIÓN
https://programarfacil.com/podcast/aplicaciones-del-iot-reales/
1. ¿Qué es el IoT?
es un tema nuevo en este blog, ya hemos hablado de la arquitectura del IoT, de las plataformas
del IoT con Arduino e incluso César García nos habló de cómo la cultura Maker está influyendo
en los dispositivos para este sector.
Aún así, voy a volver a definir esta tecnología que muchas veces nos puedes llevar a
confusiones. Es la siguiente evolución o transformación que está sufriendo el Internet que
todos conocemos. Gracias a esta nueva tecnología ya no solo los humanos vamos a poder
enviar información. Ahora los objetos o las cosas también tendrán esta capacidad.
Una vez recopilada la información a través de las aplicaciones del IoT, se deben analizar los
datos. Por si solos son datos, números que no tienen ningún valor. Sin embargo, cuando se
hace un análisis de esos datos y del contexto en el que han sido obtenidos se convierten en
información.
Todo esto engloba a servicios como el Big Data, Machine Learning y demás tecnologías
relacionadas con el análisis de datos. Se buscan patrones, conductas de comportamiento para
dotar a los objetos y las cosas de “inteligencia”.
dispositivo inteligente es todo aquel dispositivo eléctrico o electrónico, conectado y que puede
actuar de manera interactiva o autónoma“.
Por si solo, un dispositivo o aplicación del IoT no es inteligente. La gran diferencia entre un
Arduino que enciende una serie de LEDs aleatorios y un Arduino que enciende una serie de
LEDs según la temperatura es el tratamiento de los datos.
Esto dota a las máquinas de cierto nivel de inteligencia. Ojo con esto, no estamos hablando de
que las máquinas se comporten como humanos, para eso queda mucho trabajo por hacer
todavía. Para que esta pseudo-inteligencia pueda funcionar correctamente necesitamos de
ciertos componentes.
4. ¿ Sensores y APIs?
Nro. DD-106
INSTALACIONES ELECTROTÉCNICAS Página 21 de 25
Código:
LAB_08_CONECTAR ARDUINO A INTERNET O LAN CON SHIELD ETHERNET W5100 Semestre: III
Grupo: A
se encargarán de obtener magnitudes físicas y la información del mundo real para convertirlo
en señales que puedan entender las máquinas. Aquí surge un dilema ¿podemos catalogar un
servicio externo a través de una API como un sensor?
Según la definición de un sensor si. Estamos tomando información de algún sitio y lo estamos
enviando a otro sitio haciendo una conversión de formatos. Es algo muy común utilizar
servicios de meteorología, geolocalización, etc…
Estos sensores deben tener muy bajo consumo (se está avanzando mucho en este terreno).
No siempre estarán accesibles, dependerá de las condiciones de la red a la que estén
conectados. Y algo muy importante a nivel de software es la actualización sin la acción de los
humanos. No es viable crear aplicaciones del IoT sin tener en cuenta los posibles errores o bugs
de seguridad.
Las actualizaciones OTA (On-The-Air) son la clave para resolver el tema de posibles problemas
en el software. No es más ni menos que el sistema que se utiliza en las Apps de Android y de
iOS. Esto evitaría que las aplicaciones del IoT se quedaran desfasadas en cuanto al software.
Dicho todo esto y entendido qué es y cómo funciona una aplicación para el IoT, vamos a ir
viendo unos ejemplos separados por sectores. Vas a ver como el IoT ha dejado de ser una
tecnología del futuro para convertirse en una tecnología del presente.
Este sector cubre una amplia gama de servicios y productos. En muchos de ellos se puede
utilizar el IoT de diferentes maneras. Ahora veremos unos ejemplos de aplicaciones del IoT que
podemos adquirir a diferentes empresas.
Hostelería
Comercios de cara al público
Flotas de vehículos para logística
Nro. DD-106
INSTALACIONES ELECTROTÉCNICAS Página 22 de 25
Código:
LAB_08_CONECTAR ARDUINO A INTERNET O LAN CON SHIELD ETHERNET W5100 Semestre: III
Grupo: A
A (muy B C D (Requiere
Ing Alex Tapia bueno) (bueno) (Regular) Mejora) PESO
4 3 2 1
Trabaja en grupo, es proactivo,
Trabaja con Seguridad, 4 3 2 1 20%
responsabilidad y puntualidad y EPP
Conclusiones:
Existen plataformas de hardware libre, como lo es el Arduino, una
placa con un controlador y un entorno de desarrollo, su sencillez
y bajo costo nos permiten hacer múltiples diseños y múltiples
tipos de uso de éste.
Escribe un conjunto de guías generales de diseño e
implementación de protocolos de red específicos para permitir
que un equipo pueda comunicarse en una red. TCP/IP provee
conectividad de extremo a extremo especificando como los datos
deberían ser formateados, direccionados, transmitidos, enlutados
y recibidos por el destinatario.