Librería Ethernet

La librería Ethernet es la usada para manejar el Ethernet Shield que implementa la pila de protocolos TCP/IP y dentro de Arduino se implementan los protocolos en la capa de aplicación. La librería se usa entre otras cosas para mandar por Ethernet el protocolo programado en Arduino.

Para manejar el Ethernet Shield deberemos conocer todos los métodos que nos ofrece la librería Ethernet y así poder usarla.

Reference de librería Ethernet: http://arduino.cc/en/Reference/Ethernet

La librería ethernet se compone de 5 clases, cada una con sus métodos

Ethernet Class

Inicializa la librería ethernet y las configuraciones de red.

  • begin() – Inicializa la librería Ethernet (Constructor)
  • localIP() – Obtiene la dirección IP. Útil al usar DHCP
  • maintain() – Solicita una renovación al servidor DHCP

IPAddress Class

Trabaja con IPs locales y remotas. Facilita el trabajo con direcciones IPs.

Server Class

Crea un servidor que puede mandar y recibir datos de los clientes conectados.

  • Server() – Constructor de la clase server. No se usa directamente
  • EthernetServer() – Crea un servidor que escucha por las conexiones entrantes del puerto definido.
  • begin() – Le dice al servidor que comience a escuchar.
  • available() – Devuelve el cliente que está conectado al servidor y tiene datos disponibles a leer.
  • write() – Escribe datos a todos los cliente conectados al servidor.
  • print() – Escribe datos a todos los cliente conectados al servidor.
  • println() – Escribe datos a todos los cliente conectados al servidor seguido de una nueva línea.

Client Class

Crea un cliente que se conecta a un servidor y puede mandar y recibir datos.

  • Client – Constructor de la clase client. No se usa directamente
  • EthernetClient() – Crea un cliente que se conecta a una determinada IP y puerto
  • if (EthernetClient) – Indica si el cliente Ethernet está preparado
  • connected() – Devuelve si el cliente está o no conectado
  • connect() – Conecta a una IP y puerto especificado. Soporta DNS lookup. Devuelve unos códigos en función del éxito o fallo de la conexión.
  • write() – Escribe datos al servidor al que está conectado.
  • print() – Escribe datos al servidor al que está conectado
  • println() – Escribe datos al servidor al que está conectado, seguido de una nueva línea
  • available() – Devuelve el número de bytes disponibles para leer.
  • read() – Lee el siguiente byte recibido desde el servidor.
  • flush() – Borrar todos los bytes que han sido escritos en el cliente pero no leidos
  • stop() – Desconecta el cliente del servidor

EthernetUDP Class

Habilita el envío y recepción de mensajes UDP

  • begin() – Inicializar la librería UDP
  • read() – Lee datos UDP
  • write() – Escribe datos UDP a la conexión remota.
  • beginPacket() – Comienza una conexión para escribir paquetes UDP
  • endPacket() – Finaliza una conexión UDP después de escribir
  • parsePacket() – Comprueba la presencia de un paquete UDP
  • available() – Devuelve el nº de bytes disponible para leer en el buffer
  • stop() – Desconecta del servidor
  • remoteIP() – Obtiene la IP de la conexión remota
  • remotePort() – Obtiene el puerto de la conexión remota

Más información sobre el protocolo UDP: http://es.wikipedia.org/wiki/User_Datagram_Protocol

Arduino nos ofrece varios ejemplo para comprender el uso de la librería:

Snippets para ethernet: http://playground.arduino.cc/Main/SketchList#ethernetShield

Tenemos un Arduino Ethernet que es casi igual a un arduino UNO + un Ethernet Shield: http://arduino.cc/en/Main/arduinoBoardEthernet

También tenemos un Arduino Leonardo Ethernet que es casi lo mismo que un Arduino Leonardo + un Ethernet Shield 2: http://www.arduino.org/products/boards/arduino-leonardo-eth

Librería Ethernet2

Para usar la nueva Arduino Ethernet Shield 2 con el W5500, es necesaria la librería Ethernet 2: http://www.arduino.org/learning/reference/Ethernet-two-Library

El uso de esta librería es similar a la de Ethernet y los métodos son los mismos. Por lo tanto un sketch para Ethernet debería funcionar con ethernet2 simplemente cambiando la llamada a la librería correcta.

Esta librería hay que usarla para el Arduino Ethernet Shield 2, Arduino Leonardo Ethernet y cualquier otra placa o shield con chip W5500.

Para el uso de la librería Ethernet2 con el IDE de Arduino.cc (en el IDE de arduino.org ya viene incluida) simplemente hay que importar la librería Ethernet2: https://github.com/adafruit/Ethernet2 y http://labs.arduino.org/Ethernet+2+Library donde los métodos son los mismos que la librería Ethernet y los sketches de uno debería vale para otro pero incluyendo en el sketch la librería correcta.

Ver hilo del foro donde hay una guía para comenzar con Arduino Ethernet Shield 2: https://forum.arduino.cc/index.php?topic=347658.0

Por otra parte el propio fabricante de los chips ethernet Wiznet ha liberado una librería para sus dispositivos: https://github.com/Wiznet/WIZ_Ethernet_Library y adafruit también ha desarrollado una librería ethernet 2: https://github.com/adafruit/Ethernet2

2 comentarios en “Librería Ethernet

  1. Pingback: Día 9. Comunicaciones IP Arduino – Aprendiendo Arduino

  2. Pingback: Proyectos final de curso | Aprendiendo Arduino

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.