Download - Camaras Lo Prado

Transcript
Page 1: Camaras Lo Prado

Conexión Ethernet para Arduino con ENC28J60 02/06/2013 23:51 ⋅ 6 comentarios ⋅ manuel

En este artículo usamos una tarjeta conectada a Arduino para habilitar una puerta ethernet e implementar un pequeño servidor web.

La primera opción que tenemos es la Ethernet Shield oficial, pero si tenemos una limitación en el costo o en el espacio a ocupar, tenemos

que buscar alternativas.

Una alternativa para implementar una conexión Ethernet es la tarjeta ENC28J60 que posee interfaz SPI y se aprecia en la figura.

Mas información 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 dirección

2. Se descomprime y se renombra la carpeta cómo “EtherCard”

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

4. Si estaba abierta, reiniciar la aplicación de Arduino, para asegurarnos que se apliquen los cambios realizados.

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

Page 2: Camaras Lo Prado

Conexión Física

La conexión física 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 conexión física de los pines se ve en las siguientes figuras

Pruebas

Como prueba usamos la página “Back Soon”

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

Page 3: Camaras Lo Prado

// 2011-01-30 <[email protected]> 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);

Page 4: Camaras Lo Prado

#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 página web donde aparece el mensaje esperado, como via serial donde aparecen

los parámetros de red. Esto se aprecia en la siguiente figura,


Top Related