Você está na página 1de 4

Conexin Ethernet para Arduino con ENC28J60

02/06/2013 23:51 6 comentarios manuel

En este artculo usamos una tarjeta conectada a Arduino para habilitar una puerta ethernet e implementar un pequeo servidor web.

La primera opcin que tenemos es la Ethernet Shield oficial, pero si tenemos una limitacin en el costo o en el espacio a ocupar, tenemos
que buscar alternativas.
Una alternativa para implementar una conexin Ethernet es la tarjeta ENC28J60 que posee interfaz SPI y se aprecia en la figura.
Mas informacin tras el salto

Materiales

Tarjeta Ethernet ENC28J60 (que puedes adquirir en nuestra tienda)

Arduino Uno
IDE Arduino instalado

Notebook con Windows 7

Acceso a Internet

Cable de Red

Cables con conectores macho hembra

Instalando Biblioteca
Debemos obtener la biblioteca para instalar y usar. los pasos son los siguientes
1.

Bajar la biblioteca a tu computador, se obtiene desde la siguiente direccin

2.

Se descomprime y se renombra la carpeta cmo EtherCard

3.

Mover esta carpeta EtherCard bajo la carpeta libraries, donde esta el ejecutable de Arduino.

4.

Si estaba abierta, reiniciar la aplicacin de Arduino, para asegurarnos que se apliquen los cambios realizados.

Cuando abrimos el arduino IDE podemos ver la librera instalada y sus ejemplos, eso se muestra en la siguiente figura.

Conexin Fsica
La conexin fsica se basa en el uso de los pines para interfaz SPI. Se necesitan seis pines.
La siguiente tabla muestra los pines necesarios,
ENC

Arduino

VCC

3.3v

GND

GND

SCK

Pin 13

SO

Pin 12

SI

Pin 11

CS

Pin 8

La conexin fsica de los pines se ve en las siguientes figuras

Pruebas
Como prueba usamos la pgina Back Soon

// Present a "Will be back soon web page", as stand-in webserver.

// 2011-01-30 <jc@wippler.nl> http://opensource.org/licenses/mit-license.php


#include <EtherCard.h>
#define STATIC 0 // set to 1 to disable DHCP (adjust myip/gwip values below)
#if STATIC
// ethernet interface ip address
static byte myip[] = { 192,168,1,200 };
// gateway ip address
static byte gwip[] = { 192,168,1,1 };
#endif
// ethernet mac address - must be unique on your network
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };
byte Ethernet::buffer[500]; // tcp/ip send and receive buffer
char page[] PROGMEM =
"HTTP/1.0 503 Service Unavailable\r\n"
"Content-Type: text/html\r\n"
"Retry-After: 600\r\n"
"\r\n"
"<html>"
"<head><title>"
"Service Temporarily Unavailable"
"</title></head>"
"<body>"
"<h3>This service is currently unavailable</h3>"
"<p><em>"
"The main server is currently off-line.<br />"
"Please try again later."
"</em></p>"
"</body>"
"</html>"
;
void setup(){
Serial.begin(57600);
Serial.println("\n[backSoon]");
if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
Serial.println( "Failed to access Ethernet controller");
#if STATIC
ether.staticSetup(myip, gwip);

#else
if (!ether.dhcpSetup())
Serial.println("DHCP failed");
#endif
ether.printIp("IP: ", ether.myip);
ether.printIp("GW: ", ether.gwip);
ether.printIp("DNS: ", ether.dnsip);
}
void loop(){
// wait for an incoming TCP packet, but ignore its contents
if (ether.packetLoop(ether.packetReceive())) {
memcpy_P(ether.tcpOffset(), page, sizeof page);
ether.httpServerReply(sizeof page - 1);
}
}
El resultado de este sketch se aprecia tanto en la pgina web donde aparece el mensaje esperado, como via serial donde aparecen
los parmetros de red. Esto se aprecia en la siguiente figura,

Você também pode gostar