Mobile
O módulo Ethernet se comunica com a Arduino tipo Arduino usando o protocolo SPI. Podemos usar o ENC28J60 junto com um processador como Arduino para conectar nossos projetos de eletrônica e robótica à Internet.
Este módulo suporta velocidades de 10 Mbits / se modos Duplex (Full-Duplex) e Half-Duplex (Half-Duplex) com detecção e correção automática de polaridade. O ENC28J60 está em conformidade com as especificações IEEE 802.3 10BASE-T.
Conexão
O módulo é alimentado diretamente por Arduino , portanto, não precisamos de uma fonte de alimentação externa.
Os pinos são conectados de acordo com a tabela:
Pino do Módulo Ethernet
Arduino por Arduino UNO
SIM
D11 (MOSI)
CS
D10 (SS)
Vcc
3,3 V
SW
D12 (MISO)
SCK
D13 (SCK)
REDEFINIR
D9 (RST)
GND
Gnd
Neste exemplo, faremos com que nosso Arduino ligue Arduino desligue dois LEDs via http web ( Arduino não é tão poderoso para suportar a carga https).
Iremos conectar os LEDs aos pinos de entrada A0 e A1 e ao aterramento.
Abra um esboço vazio e copie o seguinte código:
#include <EtherCard.h>
byte estático mymac [] = {0xDD, 0xDD, 0xDD, 0x00, 0x01, 0x05};
byte estático myip [] = {192, 168, 1, 168};
byte Ethernet :: buffer [700];
const int pinLed1 = A0;
const int pinLed2 = A1;
char * statusLed1 = "OFF";
char * statusLed2 = "OFF";
void setup () {
Serial.begin (9600);
if (! ether.begin (sizeof Ethernet :: buffer, mymac, 10))
Serial.println ("O controlador Ethernet não pôde ser acessado");
outro
Serial.println ("Driver Ethernet inicializado");
if (! ether.staticSetup (myip))
Serial.println ("Não foi possível definir o endereço IP");
Serial.println ();
pinMode (pinLed1, OUTPUT);
pinMode (pinLed2, OUTPUT);
digitalWrite (pinLed1, LOW);
digitalWrite (pinLed2, LOW);
}
palavra estática mainPage ()
{
BufferFiller bfill = ether.tcpOffset ();
bfill.emit_p (PSTR ("HTTP / 1.0 200 OKrn"
"Content-Type: text / htmlrnPragma: no-cachernRefresh: 5rnrn"
"<html> <head> <title> Tutorial Solectro </title> </head>"
"<body>"
"<div style = 'text-align: center;'>"
"<h1> Saídas digitais </h1>"
"<br /> <br /> LED de status 1 = $ S <br />"
"<a href='./?data1=0'> <input type = 'button' value = 'OFF'> </a>"
"<a href='./?data1=1'> <input type = 'button' value = 'ON'> </a>"
"<br /> <br /> LED de status 2 = $ S <br />"
"<a href='./?data2=0'> <input type = 'button' value = 'OFF'> </a>"
"<a href='./?data2=1'> <input type = 'button' value = 'ON'> </a>"
"<br /> </div> \ n </body> </html>"), statusLed1, statusLed2);
return bfill.position ();
void loop ()
palavra len = ether.packetReceive ();
palavra pos = ether.packetLoop (len);
if (pos)
if (strstr ((char *) Ethernet :: buffer + pos, "GET /? dados1 = 0")! = 0) {
Serial.println ("Led1 OFF");
statusLed1 = "OFF";
if (strstr ((char *) Ethernet :: buffer + pos, "GET /? dados1 = 1")! = 0) {
Serial.println ("Led1 ON");
digitalWrite (pinLed1, HIGH);
statusLed1 = "LIGADO";
if (strstr ((char *) Ethernet :: buffer + pos, "GET /? dados2 = 0")! = 0) {
Serial.println ("Led2 OFF recebido");
statusLed2 = "OFF";
if (strstr ((char *) Ethernet :: buffer + pos, "GET /? dados2 = 1")! = 0) {
Serial.println ("Led2 ON");
digitalWrite (pinLed2, HIGH);
statusLed2 = "ON";
ether.httpServerReply (mainPage ());
Depois de verificar a placa e a porta, faça o upload. Abra uma guia no navegador do seu computador e digite o endereço: 192.168.1.168
Em seguida, uma pequena teia aparecerá com os botões de controle dos LEDs. Clicar em cada botão faz uma nova solicitação para Arduino , com um URL diferente do original. Arduino captura a nova solicitação e usa a URL recebida para executar as ações apropriadas.
Com este exemplo e os da biblioteca, você está pronto para fornecer ao seu Arduino conectividade com a Internet.