Comunicação pela rede com o Módulo Ethernet ENC28J60

Comunicação pela rede com o Módulo Ethernet ENC28J60

Apresentamos hoje mais uma alternativa para ligação do seu Arduino à rede: o Módulo Ethernet ENC28J60, um módulo compacto que ao contrário do Arduino Ethernet Shield W5100 não tem slot para cartões e não é um Shield, mas de maneira alguma isso representa uma desvantagem, pois permite uma maior flexibilidade na montagem do seu Arduino em rede.

Módulo Ethernet ENC28J60 Arduino

O módulo é formado pela porta ethernet RJ45, o chip controlador ENC28J60 (daí o nome do módulo, datasheet), um cristal de 25Mhz e um conector de 10 pinos, o que torna prática a ligação desse módulo à diferentes tipos de microcontrolador.

Pinagem Ethernet ENC28J60:

A alimentação do módulo é feita com 3.3v e a disposição dos pinos você confere na imagem abaixo :

Pinagem Pinout Ethernet ENC28J60

A ligação desse módulo ao Arduino é feita via interface SPI. Na tabela abaixo mostramos a ordem de conexão dos pinos tanto para o Arduino Uno/Due, como para o Arduino Mega. Em uma ligação básica os pinos CLKOUT e WOL mostrados acima não são utilizados :

ENC28J60 - Tabela de ligação

Montagem Ethernet ENC28J60:

Vamos testar o módulo ENC28J60 montando o circuito abaixo e programando o Arduino para verificar o estado de portas analógicas, lendo os valores de um potenciômetro ligado à porta analógica A5 e de um sensor de temperatura LM35 ligado à porta A1. Todos esses componentes você encontra no Kit Arduino Start, à venda na FILIPEFLOP.

Diagrama Ligação Arduino ENC28J60

Programando Arduino com Ethernet ENC28J60:

Para enviar os dados do sensor e do potenciômetro para o Arduino, vamos utilizar duas bibliotecas, a ETHER_28J60 (download ETHER_28J60) e a etherShield (download ethershield). Descompacte os dois arquivos e coloque as pastas correspondentes dentro da pasta LIBRARIES da IDE do seu Arduino.

Essas bibliotecas são bem práticas pois permitem a criação de páginas html utilizando poucos comandos, como você pode ver no código abaixo.

A linha com o comando static uint8_t ip[4] = {192, 168, 1, 199} é a responsável por determinar o endereço IP da placa na sua rede. Adapte essa linha às especificações da sua rede local e conecte o módulo ao seu roteador ou hub utilizando um cabo de rede com conector padrão RJ45.

//Programa : Modulo ethernet ENC28J60 com LM35 e potenciometro
//Autor : FILIPEFLOP
#include "etherShield.h"
#include "ETHER_28J60.h"

//Define o MAC da placa de rede. Nao eh necessario alterar
static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24};
//Define o endereco IP da sua placa
static uint8_t ip[4] = {192, 168, 1, 199};

static uint16_t port = 80; 

ETHER_28J60 e;

int pin = 1; // Pino analogico para ligacao do LM35
int tempc = 0; // Variavel que armazena a temperatura em Celsius
// Variáveis para temperatura máxima e mínima
int maxtemp = -100,mintemp = 100; 
int i;

void setup()
{ 
  //Inicializa a placa com as configuracoes fornecidas
  e.setup(mac, ip, port);
}

void loop()
{
  //Calcula o valor da temperatura
  tempc = ( 5.0 * analogRead(pin) * 100.0) / 1024.0;

  //Armazena a temperatura máxima na variavel maxtemp
  if(tempc > maxtemp) {maxtemp = tempc;} 
  //Armazena a temperatura máxima na variavel mintemp
  if(tempc < mintemp) {mintemp = tempc;} 

  if (e.serviceRequest())
  {
    e.print("<H1>FILIPEFLOP - Teste ENC28J60</H1><br/>");
    e.print("<b>Valor potenciometro porta analogica 5 : ");
    e.print(analogRead(A5));
    e.print("<br/><br/>");
    e.print("Valor temperatura : ");
    e.print(tempc);
    e.print("&deg<br/><br/>");
    e.print("Temperatura minima : ");
    e.print(mintemp);
    e.print("&deg<br/>");
    e.print("Temperatura maxima : ");
    e.print(maxtemp);
    e.print("&deg<b/>");
    e.respond();
  }
  delay(100);
}

Teste o programa abrindo um browser e digitando na barra de endereços o IP que você configurou para a sua placa. Será aberta uma página parecida com essa:

Teste IP ENC28J60

Gostou? Ajude-nos a melhorar o blog atribuindo uma nota aos posts (estrelas no início ou no final do artigo) e visite nossa loja FILIPEFLOP!

8
Comunicação pela rede com o Módulo Ethernet ENC28J60
134 votos, 4.75 classificação média (95% pontuação)

Formado em Ciência da Computação pela Universidade de Mogi das Cruzes, atualmente responsável pelo departamento técnico da FILIPEFLOP.

Compartilhe este Post

145 Comentários

  1. mauricio alves - 16 de maio de 2017

    tem alguma coisa errada. não consigo rodar o programa que estar na tela. copio e colo na ID e sempre aparece o mesmo erro. ja instaei versões anteriores da id e nada. alquem pod me ajudar ?

    o erro que aparece.

    Arduino: 1.8.2 (Windows 8), Placa:”Arduino/Genuino Uno”

    AVISO: A categoria ” na biblioteca UIPEthernet é invalida. Definindo para ‘Uncategorized’
    C:\Users\Mauricio\Desktop\sketch_may16a\sketch_may16a.ino:4:25: fatal error: ETHER_28J60.h: No such file or directory

    #include “ETHER_28J60.h”

    ^

    compilation terminated.

    exit status 1
    Erro compilando para a placa Arduino/Genuino Uno

    Este relatório teria mais informações com
    “Mostrar a saida detalhada durante a compilação”
    opção pode ser ativada em “Arquivo -> Preferências”

  2. Gustavo Caetano - 3 de maio de 2017

    Boa tarde,

    Como que faço para configurar este IP de acesso do módulo ?

    Abraços.

  3. jefferson - 1 de abril de 2017

    minha comunicação funcionou perfeitamente, mas ela funciona por um tempo e parece que trava, não responde mais a parte web, o que ´pode ser?

  4. G. Neto - 2 de dezembro de 2016

    Como inserir imagens nesse exemplo ?

  5. Maurício - 20 de novembro de 2016

    Olá, é possível comunicar um aplicativo desenvolvido no MIT App Inventor 2 á este módulo?

  6. Wender - 31 de outubro de 2016

    Boa tarde. Estou tentando fazer comunicação entre arduino e o enc28j60 e mais 2 arduinos como escravo via comunicação SPI. Gostaria de saber se há como fazer com que as versões recentre da IDE do arduino reconheça as bibliotecas do enc28j60.

  7. felipe - 3 de setembro de 2016

    boa tarde,

    segui passo a passo seu tutorial, mais no fim da esse erro, saberia me dizer oq eh?

    In file included from C:\Users\windons 7 pc\Documents\Arduino\libraries\etherShield/etherShield.h:25:0,

    from C:\Users\WINDON~1\AppData\Local\Temp\arduino_modified_sketch_155046\sketch_aug16a.ino:3:

    C:\Users\windons 7 pc\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.h:32:66: error: ‘prog_char’ does not name a type

    extern uint16_t fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);

    ^

    C:\Users\windons 7 pc\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.h:32:77: error: ISO C++ forbids declaration of ‘progmem_s’ with no type [-fpermissive]

    extern uint16_t fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);

    ^

    In file included from C:\Users\WINDON~1\AppData\Local\Temp\arduino_modified_sketch_155046\sketch_aug16a.ino:3:0:

    C:\Users\windons 7 pc\Documents\Arduino\libraries\etherShield/etherShield.h:34:65: error: ‘prog_char’ does not name a type

    uint16_t ES_fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);

    ^

    C:\Users\windons 7 pc\Documents\Arduino\libraries\etherShield/etherShield.h:34:76: error: ISO C++ forbids declaration of ‘progmem_s’ with no type [-fpermissive]

    uint16_t ES_fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);

    ^

    exit status 1
    Erro compilando para a placa Arduino/Genuino Mega or Mega 2560

    • Samuel - 13 de outubro de 2016

      Tive o mesmo problema. Resolvi instalando a velha versão 1.0.6 da IDE do Arduino. Essa nova ta dando problemas com essa e outras bibliotecas… Não é a solução ideal, mas funcionou pra mim kk

  8. Wagner - 18 de agosto de 2016

    Boa noite amigo, tenho um modulo ENC28J60 que não bate a nomenclatura , gostaria de saber se tem com me passar o esquema certo de ligação.

  9. jefferson luiz silva - 10 de agosto de 2016

    como consigo usar ele como server para receber os dados via GET e do mesmo modo enviar a resposta dos sensores por POSt para o php inserir no db mysql?

  10. Vinicius - 3 de agosto de 2016

    Este exemplo foi testado em algum Arduino Due? Crio eu que não funcione nesta placa, alguma sugestão para solucionar ou um post dedicado seria muito bom.

  11. jefferon - 1 de julho de 2016

    não conigo uar da erro.

    Arduino: 1.6.9 (Windows 7), Placa:”Arduino/Genuino Uno”

    In file included from C:\Program Files\Arduino\libraries\etherShield/etherShield.h:25:0,

    from C:\Users\Cliente\AppData\Local\Temp\arduino_modified_sketch_278148\HelloWorld.pde:3:

    C:\Program Files\Arduino\libraries\etherShield/ip_arp_udp_tcp.h:32:66: error: ‘prog_char’ does not name a type

    extern uint16_t fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);

    ^

    C:\Program Files\Arduino\libraries\etherShield/ip_arp_udp_tcp.h:32:77: error: ISO C++ forbids declaration of ‘progmem_s’ with no type [-fpermissive]

    extern uint16_t fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);

    ^

    In file included from C:\Users\Cliente\AppData\Local\Temp\arduino_modified_sketch_278148\HelloWorld.pde:3:0:

    C:\Program Files\Arduino\libraries\etherShield/etherShield.h:34:65: error: ‘prog_char’ does not name a type

    uint16_t ES_fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);

    ^

    C:\Program Files\Arduino\libraries\etherShield/etherShield.h:34:76: error: ISO C++ forbids declaration of ‘progmem_s’ with no type [-fpermissive]

    uint16_t ES_fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);

    ^

    C:\Users\Cliente\AppData\Local\Temp\arduino_modified_sketch_278148\HelloWorld.pde: In function ‘void loop()':

    C:\Users\Cliente\AppData\Local\Temp\arduino_modified_sketch_278148\HelloWorld.pde:39:56: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“FILIPEFLOP – Teste ENC28J60″);

    ^

    C:\Users\Cliente\AppData\Local\Temp\arduino_modified_sketch_278148\HelloWorld.pde:40:58: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“Valor potenciometro porta analogica 5 : “);

    ^

    C:\Users\Cliente\AppData\Local\Temp\arduino_modified_sketch_278148\HelloWorld.pde:42:25: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“”);

    ^

    C:\Users\Cliente\AppData\Local\Temp\arduino_modified_sketch_278148\HelloWorld.pde:43:35: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“Valor temperatura : “);

    ^

    C:\Users\Cliente\AppData\Local\Temp\arduino_modified_sketch_278148\HelloWorld.pde:45:29: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“&deg”);

    ^

    C:\Users\Cliente\AppData\Local\Temp\arduino_modified_sketch_278148\HelloWorld.pde:46:36: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“Temperatura minima : “);

    ^

    C:\Users\Cliente\AppData\Local\Temp\arduino_modified_sketch_278148\HelloWorld.pde:48:24: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“&deg”);

    ^

    C:\Users\Cliente\AppData\Local\Temp\arduino_modified_sketch_278148\HelloWorld.pde:49:36: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“Temperatura maxima : “);

    ^

    C:\Users\Cliente\AppData\Local\Temp\arduino_modified_sketch_278148\HelloWorld.pde:51:23: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“&deg“);

    ^

    exit status 1
    Erro compilando para a placa Arduino/Genuino Uno

    Este relatório teria mais informações com
    “Mostrar a saida detalhada durante a compilação”
    opção pode ser ativada em “Arquivo -> Preferências”

  12. Agostinho - 19 de junho de 2016

    Gostaria de enviar áudio através do protocolo RTSP, alguém sabe por onde iniciar?

  13. jefferson - 18 de junho de 2016

    nao estou conseguindo usar a biblioteca, alguem pode me ajudar

  14. Gustavo - 17 de junho de 2016

    Bom dia!,
    Não estou conseguindo compilar o exemplo deste modulo ethernet-enc28l60 usando as bibliotecas fornecidas neste site semprte aparece esta mensagem.
    warning: ‘prog_char’ is deprecated [-Wdeprecated-declarations]

    estou utilizando o ide do arduino 1.6.9 não sei se tem alguma incompatibilidade com este versão e no caso deste exemplo qual a versão da ide utilizada?

  15. Nathalia - 8 de junho de 2016

    Bom dia,

    Eu consigo utilizar esse modulo com o Raspberry PI?

  16. Bruno - 8 de maio de 2016

    O form da página ocultou várias linhas, para quem quiser, informe o email que eu envio o código completo junto com a biblioteca.

    Abraços.

    • JOSE AUGUSTO TEROSSI JUNIOR - 1 de junho de 2016

      Por favor, se puder me enviar ao arquivos, agradeço.
      Abraço

      ZÉ Augusto

      • Dangelo - 3 de junho de 2016

        favor se puder enviar os arquivos agradeço. Queria saber se alguem conseguiu usar o modulo SD e o EHERNET simultaneos? Se sim poderia me passsar um exemplo que funcione somente.

        • Bruno - 3 de junho de 2016

          Eu consegui fazer funcionar com o módulo Enc28j60 + sd card no arduino Uno R3. Se o blog quiser disponibilizar esse material, posso enviar pra todos baixarem. A biblioteca que usei é a ethercard.
          Eu liguei o Miso, Mosi, SCK do en28cj60 junto com o módulo do sdcard.
          Já o CS, você pode ligar do enc28j60 na porta 10 e o do modulo sd na porta 4 do arduino. Isso é configurado no ino. Se quiser me envia um email que eu te passo o código. brunoklar@gmail.com.

    • Rafael Paiva Garcia - 2 de junho de 2016

      Por favor, se puder me enviar ao arquivos, agradeço.
      Abraço

    • Bruno - 3 de junho de 2016

      Pessoal, neste link tem o projeto .INO e o conteúdo do SD Card pra vocês baixarem. Funcionou perfeitamente no meu projeto.
      https://github.com/lucadentella/enc28j60_tutorial/tree/master/_18_SDWebserver

      Abraços

    • Bruno - 4 de junho de 2016

      <!–
      Pra que está utilizando o módulo relé, segue a leitura da porta de cada relé para exibir no HTML do sd card:

      No "ino" do exemplo, localize a seguinte linha:
      BufferFiller bfill = ether.tcpOffset();
      bfill.emit_p(PSTR("HTTP/1.0 200 OK\r\nContent-Type: text/html\r\nPragma: no-cache\r\n\r\n"
      //abaixo estão os parâmetros de cada porta do relé. Neste caso estou utilizando um módulo com 4 relés.
      "$D$D$D$D"),digitalRead(2),digitalRead(3),digitalRead(5),digitalRead(6) );
      ether.httpServerReply(bfill.position());
      Serial.println(F("Done!"));

      no JavaScript do HTML, adicione o seguinte:

      $( document ).ready(function() {
      LerPinos();
      });
      function LerPinos() {
      //GET /switch.ino?
      $.get( “switch.ino?”, function(data) {
      var s2 = “Desligada”;
      var s3 = “Desligada”;
      var s5 = “Desligada”;
      var s6 = “Desligada”;

      if (data.substr(0, 1) == 0) {
      s2 = “Ligado”;
      } else {
      s2 = “Desligado”;
      }

      if (data.substr(1, 1) == 0) {
      s3 = “Ligado”;
      } else {
      s3 = “Desligado”;
      }

      if (data.substr(2, 1) == 0) {
      s5 = “Ligado”;
      } else {
      s5 = “Desligado”;
      }

      if (data.substr(3, 1) == 0) {
      s6 = “Ligado”;
      } else {
      s6 = “Desligado”;
      }

      $(“#statuspino2″).html(s2);
      $(“#statuspino3″).html(s3);
      $(“#statuspino5″).html(s5);
      $(“#statuspino6″).html(s6);
      });
      }

      Pino 2:
      Pino 3:
      Pino 5:
      Pino 6:

      –>

  17. Carlos - 4 de maio de 2016

    Existe uma biblioteca equivalente a enc28j60.h em C para utilizar no Atmel Studio, ao invés de programar com a IDE do Arduino?

  18. isael - 23 de abril de 2016

    bom dia amigo coloco o ip do meu roteador na biblioteca mais quando abro a pagina da web vai diretamente pra configuracao do roteador . me ajude. obg

  19. Ricardim - 3 de abril de 2016

    Galera o meu módulo não comunicava, até que pesquisando eu descobri que o pino SI em alguns módulos ethernet são ST ou MOSI. liguei no meu caso o ST na saída D11 do meu arduino e o módulo comunicou normalmente. Obrigado FLIP FLOP pelo tutorial, me ajudou bastante!

  20. Caio César - 25 de março de 2016

    Parece que os ENC28j60 fabricados atualmente funcionam com 5vcc, o da foto acima no tutorial está escrito na alimentação VCC enquanto a maioria dos que encontro por aí hoje estão marcados com 5v ao lado do GND.

  21. Marcio A. Pinheiro - 16 de março de 2016

    Olá boa tarde!
    Gostaria de saber se tem como fazer este módulo de ethernet faça uma requisição POST em um servidor PHP
    e se tem algum exemplo por ai

    Obrigado!

  22. WendelP - 12 de março de 2016

    O meu continua dando erro fatal

    Arduino: 1.5.8 (Windows 7), Placa:”Arduino Uno”

    sketch_mar12a.ino:3:25: fatal error: etherShield.h: No such file or directory
    compilation terminated.
    Erro compilando.

    Este relatório deveria ter mais informações
    “Mostrar saída verbosa durante a compilação”
    habilitado em Arquivo > Preferências.

  23. Angelo - 7 de março de 2016

    Utilizando Arduíno, é possível fazer transmissão dos dados salvos no cartão SD utilizando a porta Ethernet???

    • Carrie - 10 de maio de 2016

      Sim. Mas com esse módulo ethernet(28J60) você precisará de um módulo SD ligado ao sistema.
      Existem outras placas como a Ethernet R3/W5100 que já vem com o leitor do cartão SD acoplado. Só precisa adicionar a biblioteca e as funções. :D

      • FILIPE CAIO BATISTA CARVALHO - 12 de maio de 2016

        Certo, Carrie. Tem o ethernet shield que ja vem com o modulo SD na placa… Mas tem como usar somente os modulos ethernet e modulo SD diretamente no arduino, declarando pinos diferentes para os dois;: P
        Como isso ficaria.^;+_}_:§º

  24. Fernando - 2 de março de 2016

    O Assunto já é um pouco antigo, mas a dica é boa: fiz uma modificação na biblioteca da 28J60 para suportar a macro F() e assim poder utilizar a memória de armazenamento do arduino para as strings e não a memória RAM que se esgota rapidamente.

    Exemplo: ao invés de
    e.print(“ola mundo”);

    Utilize
    e.print_P(F(“ola mundo”));

    https://github.com/fg1998/Arduino_ETHER_28J60.h-with-print_P

    • LINDOLFO SILVEIRA KEMMERICH - 6 de março de 2016

      Ola.

      Estou confuso li que a biblioteca para o ENC28J60 e antiga e incompatível com as versões mais recentes da ide do Arduíno. Verdade que parece haver varias bibliotecas para downloads. A minha pergunta é: Qual delas devo
      usar? Tenho a Ide 1.6.7 instalado no meu computador (Francamente não estou nem um pouco com vontade de
      remove-la e instalar outra versão mais antiga).
      Essa biblioteca que foi indicada pelo tutorial funciona com a ide mais recente ?

      Tenho o Shield W5100 e ele funciona muito bem com a nova ide todavia gostaria de experimentar o ENC28J60 (Curiosidade…)

      Grato pela atenção

  25. pablo gomes - 10 de fevereiro de 2016

    Olá, estou criando um prototipo aqui e estou com problema deligação com o Arduino Micro R3 coloquei nas portas 10 a 13 ele reconhece a shild mas não consegue se conectar na rede..

    fico no aguardo.
    att

  26. Rafael Avila - 1 de fevereiro de 2016

    Boa noite, apenas uma pergunta um pouco besta pois sou iniciante no assunto.
    Posso utilizar outra porta Digital que não seja a D2 ?
    A porta D2 do meu Mega esta ocupada com um LCD TFT

    Obrigado pela ajuda

  27. MARCUS VINNICIUS - 14 de janeiro de 2016

    QUANDO LIGO A LAMPADA NO RELE .,A INTERNET CAI. DEPOIS DE ALGUNS ACIONAMENTOS..ALGUEM SABE IDENTIFICAR O PROBLEMA..A REDE SO VOLTA A FUNCIONAR QUANDO DESLIGO A LAMPADA DA TOMADA

    • guilherme - 14 de janeiro de 2016

      Estou tendo o mesmo problema, também no aguardo da resposta.

    • Emacs Dev Zone - 6 de fevereiro de 2016

      Eu teria que dar uma olhada na sua montagem para poder lhe responder com mais precisão, mas parece que esse problema é devido a “Ruido” infligido pelo Rele na hora do acionamento (principalmente se misturas as fontes e esquecer do diodo roda livre)… Você pode tentar alimentar o Rele com uma fonte separada e utilizar Opto acopladores para fazer o acionamento do Rele, isso isolaria fisicamente os circuitos Eletrônicos (arduino e o ENC28j60) dos circuitos elétricos (rele e lampada), o que resolveria o problema caso o mesmo fosse causado pelo “Ruido” gerado ao acionar o Rele (muita gente MESMO! reclama de problemas similares envolvendo Arduinos e Reles… rsrs)…

  28. WC3-P8 - 16 de dezembro de 2015

    Consigo trabalhar com esse módulo de forma semelhante ao shield ethernet: com requests e o envio de dados em uma string?

    • FILIPEFLOP - 16 de dezembro de 2015

      Boa tarde William,

      Consegue sim, a única coisa é que o programa vai ficar um pouco mais “pesado”, já que as funções de rede são tratadas por software.

      Abraço!

      Adilson – Equipe FILIPEFLOP

  29. René Gustavo - 8 de dezembro de 2015

    Fala galera, como vai?
    Usei várias bibliotecas com o ENC28J60, mas em qualquer caso, ou qualquer teste que eu faço, o host nunca é reconhecido, ou seja, nunca consigo acessar pelo IP que configuro. O curioso é que já testei em 2 redes diferentes e o problema continua. O IP nem aparece na lista dos conectados na rede.
    Alguém já teve esse mesmo problema e poderia me ajudar?

    Desde já, muito obrigado!

    • João - 8 de dezembro de 2015

      Preciso comprar este módulo, mas vou esperar reponderem para fazer a compra!

    • FILIPEFLOP - 9 de dezembro de 2015

      Bom dia René,

      Você já tentou ligar diretamente no seu computador para ver se ele reconhece o ENC28J60? Teste de ping funciona?

      Abraço

      Adilson – Equipe FILIPEFLOP

      • René Gustavo - 9 de dezembro de 2015

        Adilson, fiz estes testes mas não deu certo. Seguindo a dica de alguns, alimentado o módulo com 5V, ao invés de 3,3V, e deu certo.
        Mas aí vem a pergunta (por preocupação): isso não pode prejudicar o modulo? Tenho outra opção?

        Muito obrigado!

        • FILIPEFLOP - 14 de dezembro de 2015

          Oi René,

          A informação que eu tenho do fabricante é que o módulo funciona com 3.3V, mas pode acontecer de alterarem alguma coisa no hardware e ele funcionar com 5V.

          De qualquer forma, se a tensão de entrada é de 3.3 e você alimentar com 5V, isso realmente pode diminuir a vida útil do módulo.

          Abraço

          Adilson – Equipe FILIPEFLOP

  30. Hercules Campos - 28 de novembro de 2015

    Ola amigo, posso utlizar este exemplo para conectar o modulo ethernet direito em um PIC? Aqui ele esta conectado ao arduido. Posso utilizar estas mesmas linhas de programação para fazer esta ligacao?

    Obrigado pela ajuda

  31. Felipe Fonseca - 24 de novembro de 2015

    Olá! Estou aprendendo muito com seus posts, porém ao compilar o código “Hello World” no exemplo da bibliotec ENC28J60 aparece o seguinte erro:

    “error: ‘prog_char’ does not name a type

    uint16_t ES_fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);

    ^

    C:\Program Files (x86)\Arduino\libraries\etherShield/etherShield.h:34:76: error: ISO C++ forbids declaration of ‘progmem_s’ with no type [-fpermissive]

    uint16_t ES_fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);

    ^

    Usando biblioteca etherShield na pasta: C:\Program Files (x86)\Arduino\libraries\etherShield (legacy)
    Usando biblioteca ETHER_28J60 na pasta: C:\Program Files (x86)\Arduino\libraries\ETHER_28J60 (legacy)
    exit status 1
    Erro compilando.”

    Alguém saberia o que significa esse erro?

  32. balielo - 24 de novembro de 2015

    Ola
    quando tento compilar aparece um erro prog_char
    \arduino\_arduino\libraries\etherShield/ip_arp_udp_tcp.h:32:66: error: ‘prog_char’ does not name a type

  33. tuca ventura - 13 de novembro de 2015

    Belo post mas eu tenho uma duvida antes de efetuar a compra. Possuo um Arduino Uno e quero um modulo RTC i2c, um modulo ethernet e um modulo SD Card. Será que o uno tem portas suficientes para os 3 modulos?

    • FILIPEFLOP - 20 de novembro de 2015

      Bom dia Tuca,

      Não tenho detalhes do seu projeto, mas uma opção é você utilizar o shield ethernet W5100, que já tem o slot SD, assim você só precisa conectar o módulo RTC.

      Abraço!

      Adilson – Equipe FILIPEFLOP

      • FILIPE CAIO BATISTA CARVALHO - 12 de maio de 2016

        Beleza, Adilson. O Ethernet shield ja tem o slot sd embutido.Mas seria possivel ligar ambos os modulos, ethernet e sd no arduino, apenas declarando pinos diferentes para cada um¹¹ qual seria

  34. Vinicius Cesar - 1 de novembro de 2015

    Gostaria de saber qual a funçao do slot sd no modulo ethernet

  35. Eduardo - 9 de setembro de 2015

    Olá, desculpa se a pergunta é tosca, mas, fora a entrada para SD Card quais outras diferenças “gritantes” entre essa placa e a Ethernet Shield W5100? Pretendo adquirir uma dessas e estou pesquisando antes disso.

    Obrigado.

    • FILIPEFLOP - 10 de setembro de 2015

      Bom dia Eduardo,

      O uso vai depender da sua aplicação, mas a W5100 é mais simples de usar, tem o slot SD e funciona com a biblioteca nativa do Arduino. Já o ENC28J60 é mais compacto e tem várias bibliotecas para ele, mas nem todas funcionam como deveriam. Além disso, a tendência do ENC28J60 é consumir mais memória dos programas, pois grande parte do controle TCP/IP tem que ser feito via software, o que já não acontece com o W5100.

      Abraço!

      Adilson – Equipe FILIPEFLOP

      • Marcelo Damasceno - 28 de outubro de 2015

        Então, é por isso q o ENC28J60 as vezes para de responder? Pq ele consome muita memória?! O meu trava dps de um certo tempo, e só volta a funcionar quando dou reset no Arduino
        o W5100 tem algum problema com travamentos?

        • Adriano - 28 de outubro de 2015

          Marcelo,

          Bem, pode ser que sim, depende do seu sketch, mas também existe um problema conhecido com o próprio buffer do módulo que fez com que os desenvolvedores lançassem uma nova versão das bibliotecas baseados numa revisão do data sheet pela fabricante.

          A UIPEthernet tem uma versão recente (errata12) que aparentemente corrigiu esse problema. Consegui rodar meu programa por 1h30′ sem travar.

  36. Raul Cappellano - 31 de agosto de 2015

    Boa noite,

    tenho um Arduino DUE e preciso conectar e criar a programação para acessar o modulo ethernet HR911105 A 11/46. Você poderia me ajudar?

    Obrigado

  37. guilherme - 10 de agosto de 2015

    Conseguir utilizar o modulo com a biblioteca UIPETHERNET mas não consigo acessa através do wifi, o que pode ser isso?

    • Adriano Garcez - 10 de agosto de 2015

      No momento que você coloca o Arduino na rede com o módulo, você deveria acessá-lo da mesma forma pelo WiFi ou a cabo através do seu roteador, a não ser que haja alguma configuração específica para o WiFi que esteja impossibilitando a comunicação. Se puder, detalha melhor o problema.

      Por falar nisso, por um tempo tentei usar o Simulino pelo Wifi, mas não funcionava. Depois vi que o driver do Proteus só funciona com a conexão Ethernet.

  38. Everton - 1 de agosto de 2015

    Ola amigo, ótimo tutorial. Parabéns.
    Amigo, caso eu já esteja com a pagina aberta em um PC e fazendo a comunicação com o Arduino , e outro PC na rede quiser acessar o arduino ao mesmo tempo daria certo?
    Ou seja, mais de um computardor na rede acessando e se comunicando ao mesmo tempo com o arduino.

    Daria?

    • FILIPEFLOP - 7 de agosto de 2015

      Boa tarde Everton,

      Sim, é possível, pois segundo o fabricante esse módulo aceita várias conexões.

      Abraço

      Adilson – Equipe FILIPEFLOP

      • Eduardo Justi - 21 de agosto de 2015

        Filipe eu poderia extrair os dados mostrados no browser e salvalos em algum banco de dados? ou numa planilha por exemplo?
        Tem algum tutorial disso?
        Vlw

        • FILIPEFLOP - 24 de agosto de 2015

          Bom dia Eduardo,

          Você pode salvar esses dados em um cartão SD e depois jogar isso para dentro do Excel. Temos um tutorial sobre como gravar dados no cartão SD: blog.filipeflop.com/modulos/cartao-sd-com-arduino.html

          Abraço

          Adilson – Equipe FILIPEFLOP

  39. Wandeson - 19 de julho de 2015

    Gostaria de sabe se é possível mudar os pinos usados.

  40. Oderaldo - 8 de julho de 2015

    Comprei essa placa pensando que esse módulo poderia receber, via rede, do arduíno, um comando e responder uma ação através dos pinos. Ex acionar um relê que executaria uma função ou até ler um sensor de umidade e enviar ao arduíno via rede. Pelo que entendi não é assim que funciona? Desculpe a ignorância mas sou novo nisso.

  41. jhonatan - 1 de julho de 2015

    boa noite, minha duvida é se eu poderia usar esse ethernet shield com um modulo wireless(ou o modulo wireless nao precisa do shield?) juntamente com o arduino NANO seguindo o exemplo de conexao do UNO?

  42. Adriano Garcez - 16 de junho de 2015

    Achei a documentação dessa biblioteca do módulo ethernet e achei muito confusa: http://jeelabs.net/pub/docs/ethercard/index.html. Fiquei alguns meses usando ela e não consegui evoluir muito no meu trabalho. Mas ainda bem que consegui achar uma muito melhor; demorou, mas encontrei uma biblioteca que funciona exatamente igual ao ethernet shield W5100, logo, funciona com a documentação padrão encontrada no site Arduino. Só procurar UIPEthernet e partir pro abraço.

  43. COMUNICAÇÃO PELA REDE COM O MÓDULO ETHERNET ENC28J60 | idasCoisas.com | Comunidade voltada para a internet das coisas. - 27 de maio de 2015

    […] Um dos modos de comunicar o seu arduino com o mundo externo, é através do módulo ENC28J60. Segue abaixo um exemplo de aplicação postado no blog http://blog.filipeflop.com/modulos/modulo-ethernet-enc28j60-arduino.html. […]

  44. Rodrigo Sena - 12 de abril de 2015

    Felipe. vc tem algum tutoria que pega dados de um sensor por exemplo de temperatura e manda isso via essa placa de ethernet HanRun?

  45. Diego - 15 de março de 2015

    não funciona nem a pal fica dando erro.

    In file included from C:\Program Files (x86)\Arduino\libraries\etherShield/etherShield.h:25:0,
    from sketch_mar15c.ino:3:
    C:\Program Files (x86)\Arduino\libraries\etherShield/ip_arp_udp_tcp.h:32:66: error: ‘prog_char’ does not name a type
    extern uint16_t fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);
    ^
    C:\Program Files (x86)\Arduino\libraries\etherShield/ip_arp_udp_tcp.h:32:77: error: ISO C++ forbids declaration of ‘progmem_s’ with no type [-fpermissive]
    extern uint16_t fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);
    ^
    In file included from sketch_mar15c.ino:3:0:
    C:\Program Files (x86)\Arduino\libraries\etherShield/etherShield.h:34:65: error: ‘prog_char’ does not name a type
    uint16_t ES_fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);
    ^
    C:\Program Files (x86)\Arduino\libraries\etherShield/etherShield.h:34:76: error: ISO C++ forbids declaration of ‘progmem_s’ with no type [-fpermissive]
    uint16_t ES_fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);
    ^
    Erro compilando.

  46. daniel - 14 de março de 2015

    Ola .estou com problema e já tentei de tudo.É o seguinte o programa nao reconhece o comando #etherShild na primeira linha da ação global .Arduino: 1.6.1 (Windows 7), Placa:”Arduino Nano, ATmega328″

    sketch_mar28j60.ino:1:24: fatal error: ethershild.h: No such file or directory

    compilation terminated.

    Erro compilando.

    Este relatório deveria ter mais informações
    “Mostrar saída verbosa durante a compilação”
    habilitado em Arquivo > Preferências.

    //Autor : FILIPEFLOP
    #include “etherShield.h” esta e a linha que não reconhece
    #include “ETHER_28J60.h”

    //Define o MAC da placa de rede. Nao eh necessario alterar
    static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24};
    //Define o endereco IP da sua placa
    static uint8_t ip[4] = {192, 168, 1, 199};

    static uint16_t port = 80;

    ETHER_28J60 e;

    int pin = 1; // Pino analogico para ligacao do LM35
    int tempc = 0; // Variavel que armazena a temperatura em Celsius
    // Variáveis para temperatura máxima e mínima
    int maxtemp = -100,mintemp = 100;
    int i;

    void setup()
    {
    //Inicializa a placa com as configuracoes fornecidas
    e.setup(mac, ip, port);
    }

    void loop()
    {
    //Calcula o valor da temperatura
    tempc = ( 5.0 * analogRead(pin) * 100.0) / 1024.0;

    //Armazena a temperatura máxima na variavel maxtemp
    if(tempc > maxtemp) {maxtemp = tempc;}
    //Armazena a temperatura máxima na variavel mintemp
    if(tempc < mintemp) {mintemp = tempc;}

    if (e.serviceRequest())
    {
    e.print("FILIPEFLOP – Teste ENC28J60″);
    e.print(“Valor potenciometro porta analogica 5 : “);
    e.print(analogRead(A5));
    e.print(“”);
    e.print(“Valor temperatura : “);
    e.print(tempc);
    e.print(“&deg”);
    e.print(“Temperatura minima : “);
    e.print(mintemp);
    e.print(“&deg”);
    e.print(“Temperatura maxima : “);
    e.print(maxtemp);
    e.print(“&deg“);
    e.respond();
    }
    delay(100);
    }

  47. Alexandre Fonseca - 28 de fevereiro de 2015

    Saudações…

    Comprei a placa a poucos dias e já testei. No primeiro momento enfrentei problemas para complicar usando a biblioteca sugerida #include “etherShield.h” e #include “ETHER_28J60.h”.

    Basicamente ocorria erros de compilação – vasculhando a rede descobri que esta biblioteca é conhecida por incompatibilidades com algumas IDE do Arduino. Provavelmente era meu caso daí procurei uma que compilasse…

    Achei o link abaixo talvez seja últil para quem estiver com problemas para compilar seu projeto:

    http://www.tweaking4all.com/hardware/arduino/arduino-enc28j60-ethernet/

    Finalmente atenção ao tamanho dos fios de conexão entre o SPI do seu controlador e a placa controladora Ethernet. Fiz no primeiro momento cabos muito grandes e a comunicação não funcionou. A solução foi apenas reduzir o comprimento para no máximo 10cm.

    Estou usando com sucesso a Biblioteca #include a placa funciona muito bem. Bacana a iniciativa de oferecer um produto de excelente qualidade e baixo custo.

    Abraço!

  48. Cristiano Ripi - 24 de fevereiro de 2015

    Boa tarde, Filipe.

    tentei compilar seu programa porém ele apareceu estas mensagens de erro, oque pode ser?

    Arduino: 1.6.0 (Windows 7), Placa:”Arduino Uno”

    In file included from C:\Program Files\Arduino\libraries\etherShield/etherShield.h:25:0,
    from iniciandonet.ino:3:
    C:\Program Files\Arduino\libraries\etherShield/ip_arp_udp_tcp.h:32:66: error: ‘prog_char’ does not name a type
    extern uint16_t fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);
    ^
    C:\Program Files\Arduino\libraries\etherShield/ip_arp_udp_tcp.h:32:77: error: ISO C++ forbids declaration of ‘progmem_s’ with no type [-fpermissive]
    extern uint16_t fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);
    ^
    In file included from iniciandonet.ino:3:0:
    C:\Program Files\Arduino\libraries\etherShield/etherShield.h:34:65: error: ‘prog_char’ does not name a type
    uint16_t ES_fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);
    ^
    C:\Program Files\Arduino\libraries\etherShield/etherShield.h:34:76: error: ISO C++ forbids declaration of ‘progmem_s’ with no type [-fpermissive]
    uint16_t ES_fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);
    ^
    Erro compilando.

    Este relatório deveria ter mais informações
    “Mostrar saída verbosa durante a compilação”
    habilitado em Arquivo > Preferências.

  49. frank - 23 de janeiro de 2015

    Como seria para transferir dados recebidos na serial do arduino e enviar pela internet, tipo o envio de uma url e senha?

  50. Raphael Gasperi - 6 de janeiro de 2015

    Bom dia Filipe, com esse seu programa apenas consigo acessar pela rede interna, para acessar de fora preciso colocar um gateway, com esse modulo ENC28J60, nao consegui achar o comando para colocar o gateway,

    Sabe me informar como faço para colocar um Gateway ?

  51. Ivanluiz - 27 de novembro de 2014

    Adilson, mas um excelente post.
    Poderiamos usar esse módulo com um arduino pro mini ? Como seriam as conexões ?
    Obrigado.

    • FILIPEFLOP - 27 de novembro de 2014

      Boa noite Ivan,

      Muito obrigado. Eu preciso testar para te dar uma reposta mais precisa, mas olhando a pinagem do Pro Mini (nesse link : http://i.stack.imgur.com/oOtkU.png), me parece que você pode usar os mesmos pinos : 10, 11, 12, 13, reset, 2, 3.3V e GND.

      Se quiser testar e depois contar pra gente se funciona, seria legal. :-)

      Abraço !

      Adilson – Equipe FILIPEFLOP

  52. ramon duarte - 5 de novembro de 2014

    Gostaria de saber como faço a leitura da web para o arduino, tipo pretendo desligar e liga led ou lampadas. Otimo Blog,comprei meu kit no filipe flop.

  53. Guilherme Oliveira - 31 de outubro de 2014

    Posso usar para ligar e desligar relês? fora da minha rede interna ? Tipo da faculdade acionar aqui em casa?
    Se possível, onde encontro tutoriais sobre isso?

  54. Gustavi - 9 de outubro de 2014

    Boa tarde Filipe, estou usando esse módulo para fazer o controle de um relê, eu consigo abrir a página normalmente e posso ligar e desligar o relê sem problemas mas após alguns minutos ou quando eu atualizo a página várias vezes, o módulo perde a conexão e não volta mais, tem alguma idéia do que possa estar acontecendo? Obrigado!

  55. Jefferson Luiz Silva - 5 de outubro de 2014

    cara comprei o módulo enc28j60,baixei a livraria, conectei certo a pinagem e nada não tem cristo q faça eu conseguir acessar o bichinho q q pode ser?

    segue código exemplo da própria livraria.

    // A simple web server that always just says “Hello World”

    #include “etherShield.h”
    #include “ETHER_28J60.h”

    static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24}; // this just needs to be unique for your network,
    // so unless you have more than one of these boards
    // connected, you should be fine with this value.

    static uint8_t ip[4] = {172,16,100,177}; // the IP address for your board. Check your home hub
    // to find an IP address not in use and pick that
    // this or 10.0.0.15 are likely formats for an address
    // that will work.

    static uint16_t port = 80; // Use port 80 – the standard for HTTP

    ETHER_28J60 ethernet;

    void setup()
    {
    ethernet.setup(mac, ip, port);
    }

    void loop()
    {
    if (ethernet.serviceRequest())
    {
    ethernet.print(“Hello World”);
    ethernet.respond();
    }
    delay(100);
    }

  56. Douglas Alcino - 1 de outubro de 2014

    Olá,

    Sou iniciante em Arduino e fiz 03 projetos:
    01: 4 Leds com Controle Remoto e Display LCD (Tudo funciona e informa os dados no LCD)
    02: 6 Leds com Ethernet Shield sem Display LCD (Tudo funciona e faz até integração com o APP Android que crei)
    03 4 Leds com Ethernet Shield e Display LCD (Os dados não são exbinidos pelo LCD)
    Minas pergunta é: O Shiel acoplado ao Arduino Uno usa portas específicas?
    Fazendo com que um ou outro não funcione?
    O LCD assim que ativamos o Ethernet Shield ele morre, seria energia ou o conflito de pinagem mesmo?

    Agradeço qualquer ajuda.

    Em tempo:
    Sem dúvida o site mais objetivo do Arduino que já visitei, faremos mutias aquisições com vocês.

    Forte abraço,

    • FILIPEFLOP - 2 de outubro de 2014

      Boa tarde Douglas,

      Você está usando o ENC28J60 ou o W5100 ? No caso do W5100, provavelmente você está usando as mesmas portas do display, por isso o conflito.

      Se você está usando o LCD com os pinos padrão do Arduino, deve estar utilizando as portas 12, 11, 5, 4, 3 e 2 :

      LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

      Nesse caso, tente trocar as portas 12 e 11 por 6 e 7, por exemplo :

      LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

      Abraço !

      Adilson – Equipe FILIPEFLOP

  57. Cesar Goulart - 1 de outubro de 2014

    Boa tarde. Meus parabéns… excelente post.
    É possível enviar email do arduino para um endereço de email pre-programado informando alguma coisa?
    Como posso fazer isso e se existe alguma a fonte de pesquisa para eu estudar?

  58. Mr Pontes - 20 de setembro de 2014

    amigos , gostei muito do post, mas fiquei com uma duvida, eu injetando um pacote de bytes na porta serial do arduino conseguiria mandar esses mesmo pacote via tcp?

    e também se há uma limitação no tamanho desse pacote?

    • FILIPEFLOP - 22 de setembro de 2014

      Boa noite Mr Pontes !

      Consegue sim, você pode programar o Arduino para ler o pacote da serial e replicar esse pacote via ethernet. Só não tenho informações sobre alguma limitação no tamanho.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  59. Samuel Gonçalves - 17 de setembro de 2014

    Boa noite! Meu caro, gostaria de saber se o módulo e o shield possuem muitas diferenças na prática! Consigo fazer basicamente a mesma coisa com ambos?

    • FILIPEFLOP - 22 de setembro de 2014

      Boa noite Samuel,

      Teoricamente os 2 funcionam da mesma maneira. A vantagem do W5100 shield é que você pode usar a própria biblioteca Ethernet do Arduino, sem ter que instalar nenhuma biblioteca adicional. O Shield também tem o slot para cartão SD, que pode ser um bônus interessante.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  60. zanin - 5 de setembro de 2014

    Módulo de fácil instalação, ao contrário do dito pelos fóruns afora.
    Porém suporta poucos comandos e.print. Não é possível inserir comandos html/css complexos por falta de “espaço”.
    Para obter comandos via web então, tem que ser econômico.
    Um exemplo funcional de 2 botões controlando 2 portas. Qualquer linha além disso o módulo cai.

    char* params;
    if (params = e.serviceRequest())
    {
    e.print(” a { color:black; } “);
    e.print(“Temp“);
    e.print(t);
    e.print(” `C”);

    while (strcmp(params, “?led1=on&led2=off”) == 0)
    {
    digitalWrite(outputPin, LOW);
    digitalWrite(anotherOutputPin, HIGH);
    e.print(“LAMP1 ONLAMP2 OFF“);
    break;
    }
    while (strcmp(params, “?led1=off&led2=on”) == 0)
    {
    digitalWrite(outputPin, HIGH);
    digitalWrite(anotherOutputPin, LOW);
    e.print(“LAMP1 OFFLAMP2 ON“);
    break;
    }
    while (strcmp(params, “?led1=off&led2=off”) == 0)
    {
    digitalWrite(outputPin, HIGH);
    digitalWrite(anotherOutputPin, HIGH);
    e.print(“LAMP1 OFFLAMP2 OFF“);
    break;
    }
    while (strcmp(params, “?led1=on&led2=on”) == 0)
    {
    digitalWrite(outputPin, LOW);
    digitalWrite(anotherOutputPin, LOW);
    e.print(“LAMP1 ONLAMP2 ON“);
    break;
    }
    e.respond();
    }

  61. luciano mesquita - 28 de agosto de 2014

    Olá!
    Posso ativar reles pelo acesso via ip web?

  62. DANILO - 26 de agosto de 2014

    Meu irmão, perfeito.. Poxa.. Estou há uma semana, todos os dias tentando fazer isso pegar e esse post foi minha salvação… Perfeito muito bom… Obrigado mesmo.. Muito grato!

  63. Eduardo - 24 de agosto de 2014

    Você tem ou conhece algum código já pronto que grave e mostre as informações de rede cadastradas pelo webserver na EEPROM? veja os exemplos: http://forum.arduino.cc/index.php/topic,55044.0.html

  64. roberto - 31 de julho de 2014

    Comprei a placa, instalei ela e colei o programa porem esta dando um erro:
    sketch_jul31a.ino:4:25: error: ETHER_28J60.h: No such file or directory
    sketch_jul31a:13: error: ‘ETHER_28J60′ does not name a type
    sketch_jul31a.ino: In function ‘void setup()':
    sketch_jul31a:24: error: ‘e’ was not declared in this scope
    sketch_jul31a.ino: In function ‘void loop()':
    sketch_jul31a:37: error: ‘e’ was not declared in this scope

    • roberto - 31 de julho de 2014

      Eu fexei o programa e abri de novo, mas agora deu esse erro:

      ETHER_28J60\enc28j60.c.o: In function `enc28j60WriteBuffer':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/enc28j60.c:97: multiple definition of `enc28j60WriteBuffer’
      etherShield\enc28j60.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/enc28j60.c:97: first defined here
      ETHER_28J60\enc28j60.c.o: In function `enc28j60ReadBuffer':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/enc28j60.c:78: multiple definition of `enc28j60ReadBuffer’
      etherShield\enc28j60.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/enc28j60.c:78: first defined here
      ETHER_28J60\enc28j60.c.o: In function `enc28j60WriteOp':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/enc28j60.c:66: multiple definition of `enc28j60WriteOp’
      etherShield\enc28j60.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/enc28j60.c:66: first defined here
      ETHER_28J60\enc28j60.c.o: In function `enc28j60SetBank':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/enc28j60.c:114: multiple definition of `enc28j60SetBank’
      etherShield\enc28j60.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/enc28j60.c:114: first defined here
      ETHER_28J60\enc28j60.c.o: In function `enc28j60Write':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/enc28j60.c:134: multiple definition of `enc28j60Write’
      etherShield\enc28j60.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/enc28j60.c:134: first defined here
      ETHER_28J60\enc28j60.c.o: In function `enc28j60clkout':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/enc28j60.c:157: multiple definition of `enc28j60clkout’
      etherShield\enc28j60.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/enc28j60.c:157: first defined here
      ETHER_28J60\enc28j60.c.o: In function `enc28j60ReadOp':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/enc28j60.c:46: multiple definition of `enc28j60ReadOp’
      etherShield\enc28j60.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/enc28j60.c:46: first defined here
      ETHER_28J60\enc28j60.c.o: In function `enc28j60Read':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/enc28j60.c:126: multiple definition of `enc28j60Read’
      etherShield\enc28j60.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/enc28j60.c:126: first defined here
      ETHER_28J60\enc28j60.c.o: In function `enc28j60PacketSend':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/enc28j60.c:274: multiple definition of `enc28j60PacketSend’
      etherShield\enc28j60.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/enc28j60.c:274: first defined here
      ETHER_28J60\enc28j60.c.o: In function `enc28j60getrev':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/enc28j60.c:270: multiple definition of `enc28j60getrev’
      etherShield\enc28j60.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/enc28j60.c:270: first defined here
      ETHER_28J60\enc28j60.c.o: In function `enc28j60PacketReceive':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/enc28j60.c:299: multiple definition of `enc28j60PacketReceive’
      etherShield\enc28j60.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/enc28j60.c:299: first defined here
      ETHER_28J60\enc28j60.c.o: In function `enc28j60PhyWrite':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/enc28j60.c:142: multiple definition of `enc28j60PhyWrite’
      etherShield\enc28j60.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/enc28j60.c:142: first defined here
      ETHER_28J60\enc28j60.c.o: In function `enc28j60Init':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/enc28j60.c:161: multiple definition of `enc28j60Init’
      etherShield\enc28j60.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/enc28j60.c:161: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `checksum':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:56: multiple definition of `checksum’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:56: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `init_ip_arp_udp_tcp':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:97: multiple definition of `init_ip_arp_udp_tcp’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:97: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `eth_type_is_arp_and_my_ip':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:111: multiple definition of `eth_type_is_arp_and_my_ip’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:111: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `eth_type_is_ip_and_my_ip':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:130: multiple definition of `eth_type_is_ip_and_my_ip’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:130: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `make_eth':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:154: multiple definition of `make_eth’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:154: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `make_eth_ip_new':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:167: multiple definition of `make_eth_ip_new’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:167: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `fill_ip_hdr_checksum':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:183: multiple definition of `fill_ip_hdr_checksum’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:183: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `make_ip_tcp_new':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:203: multiple definition of `make_ip_tcp_new’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:203: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `make_ip':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:243: multiple definition of `make_ip’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:243: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `make_tcphead':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:262: multiple definition of `make_tcphead’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:262: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `get_tcp_data_pointer':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:422: multiple definition of `get_tcp_data_pointer’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:422: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `init_len_info':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:431: multiple definition of `init_len_info’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:431: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `fill_tcp_data_p':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:445: multiple definition of `fill_tcp_data_p’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:445: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `fill_tcp_data':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:461: multiple definition of `fill_tcp_data’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:461: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `arp_packet_is_myreply_arp':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:587: multiple definition of `arp_packet_is_myreply_arp’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:587: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `tcp_get_dlength':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:701: multiple definition of `tcp_get_dlength’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:701: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `tcp_client_send_packet':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:608: multiple definition of `tcp_client_send_packet’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:608: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `make_arp_request':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:534: multiple definition of `make_arp_request’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:534: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `make_tcp_ack_with_data':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:507: multiple definition of `make_tcp_ack_with_data’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:507: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `make_tcp_ack_from_any':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:476: multiple definition of `make_tcp_ack_from_any’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:476: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `make_tcp_synack_from_syn':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:399: multiple definition of `make_tcp_synack_from_syn’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:399: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `make_udp_reply_from_request':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:367: multiple definition of `make_udp_reply_from_request’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:367: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `make_echo_reply_from_request':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:351: multiple definition of `make_echo_reply_from_request’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:351: first defined here
      ETHER_28J60\ip_arp_udp_tcp.c.o: In function `make_arp_answer_from_request':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/ip_arp_udp_tcp.c:328: multiple definition of `make_arp_answer_from_request’
      etherShield\ip_arp_udp_tcp.c.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.c:328: first defined here
      ETHER_28J60\etherShield.cpp.o: In function `EtherShield':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/etherShield.cpp:12: multiple definition of `EtherShield::EtherShield()’
      etherShield\etherShield.cpp.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/etherShield.cpp:12: first defined here
      ETHER_28J60\etherShield.cpp.o: In function `EtherShield':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/etherShield.cpp:12: multiple definition of `EtherShield::EtherShield()’
      etherShield\etherShield.cpp.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/etherShield.cpp:12: first defined here
      ETHER_28J60\etherShield.cpp.o: In function `EtherShield::ES_tcp_get_dlength(unsigned char*)':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/etherShield.cpp:95: multiple definition of `EtherShield::ES_tcp_get_dlength(unsigned char*)’
      etherShield\etherShield.cpp.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/etherShield.cpp:95: first defined here
      ETHER_28J60\etherShield.cpp.o: In function `EtherShield::ES_tcp_client_send_packet(unsigned char*, unsigned int, unsigned int, unsigned char, unsigned char, unsigned char, unsigned int, unsigned int, unsigned char*, unsigned char*)':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/etherShield.cpp:90: multiple definition of `EtherShield::ES_tcp_client_send_packet(unsigned char*, unsigned int, unsigned int, unsigned char, unsigned char, unsigned char, unsigned int, unsigned int, unsigned char*, unsigned char*)’
      etherShield\etherShield.cpp.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/etherShield.cpp:90: first defined here
      ETHER_28J60\etherShield.cpp.o: In function `EtherShield::ES_arp_packet_is_myreply_arp(unsigned char*)':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/etherShield.cpp:85: multiple definition of `EtherShield::ES_arp_packet_is_myreply_arp(unsigned char*)’
      etherShield\etherShield.cpp.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/etherShield.cpp:85: first defined here
      ETHER_28J60\etherShield.cpp.o: In function `EtherShield::ES_make_arp_request(unsigned char*, unsigned char*)':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/etherShield.cpp:81: multiple definition of `EtherShield::ES_make_arp_request(unsigned char*, unsigned char*)’
      etherShield\etherShield.cpp.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/etherShield.cpp:81: first defined here
      ETHER_28J60\etherShield.cpp.o: In function `EtherShield::ES_make_tcp_ack_with_data(unsigned char*, unsigned int)':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/etherShield.cpp:77: multiple definition of `EtherShield::ES_make_tcp_ack_with_data(unsigned char*, unsigned int)’
      etherShield\etherShield.cpp.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/etherShield.cpp:77: first defined here
      ETHER_28J60\etherShield.cpp.o: In function `EtherShield::ES_make_tcp_ack_from_any(unsigned char*)':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/etherShield.cpp:73: multiple definition of `EtherShield::ES_make_tcp_ack_from_any(unsigned char*)’
      etherShield\etherShield.cpp.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/etherShield.cpp:73: first defined here
      ETHER_28J60\etherShield.cpp.o: In function `EtherShield::ES_get_tcp_data_pointer()':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/etherShield.cpp:70: multiple definition of `EtherShield::ES_get_tcp_data_pointer()’
      etherShield\etherShield.cpp.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/etherShield.cpp:70: first defined here
      ETHER_28J60\etherShield.cpp.o: In function `EtherShield::ES_init_len_info(unsigned char*)':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/etherShield.cpp:65: multiple definition of `EtherShield::ES_init_len_info(unsigned char*)’
      etherShield\etherShield.cpp.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/etherShield.cpp:65: first defined here
      ETHER_28J60\etherShield.cpp.o: In function `EtherShield::ES_make_tcp_synack_from_syn(unsigned char*)':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/etherShield.cpp:61: multiple definition of `EtherShield::ES_make_tcp_synack_from_syn(unsigned char*)’
      etherShield\etherShield.cpp.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/etherShield.cpp:61: first defined here
      ETHER_28J60\etherShield.cpp.o: In function `EtherShield::ES_make_echo_reply_from_request(unsigned char*, unsigned int)':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/etherShield.cpp:57: multiple definition of `EtherShield::ES_make_echo_reply_from_request(unsigned char*, unsigned int)’
      etherShield\etherShield.cpp.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/etherShield.cpp:57: first defined here
      ETHER_28J60\etherShield.cpp.o: In function `EtherShield::ES_eth_type_is_ip_and_my_ip(unsigned char*, unsigned int)':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/etherShield.cpp:52: multiple definition of `EtherShield::ES_eth_type_is_ip_and_my_ip(unsigned char*, unsigned int)’
      etherShield\etherShield.cpp.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/etherShield.cpp:52: first defined here
      ETHER_28J60\etherShield.cpp.o: In function `EtherShield::ES_make_arp_answer_from_request(unsigned char*)':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/etherShield.cpp:48: multiple definition of `EtherShield::ES_make_arp_answer_from_request(unsigned char*)’
      etherShield\etherShield.cpp.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/etherShield.cpp:48: first defined here
      ETHER_28J60\etherShield.cpp.o: In function `EtherShield::ES_eth_type_is_arp_and_my_ip(unsigned char*, unsigned int)':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/etherShield.cpp:44: multiple definition of `EtherShield::ES_eth_type_is_arp_and_my_ip(unsigned char*, unsigned int)’
      etherShield\etherShield.cpp.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/etherShield.cpp:44: first defined here
      ETHER_28J60\etherShield.cpp.o: In function `EtherShield::ES_init_ip_arp_udp_tcp(unsigned char*, unsigned char*, unsigned char)':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/etherShield.cpp:40: multiple definition of `EtherShield::ES_init_ip_arp_udp_tcp(unsigned char*, unsigned char*, unsigned char)’
      etherShield\etherShield.cpp.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/etherShield.cpp:40: first defined here
      ETHER_28J60\etherShield.cpp.o: In function `EtherShield::ES_enc28j60PacketReceive(unsigned int, unsigned char*)':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/etherShield.cpp:35: multiple definition of `EtherShield::ES_enc28j60PacketReceive(unsigned int, unsigned char*)’
      etherShield\etherShield.cpp.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/etherShield.cpp:35: first defined here
      ETHER_28J60\etherShield.cpp.o: In function `EtherShield::ES_enc28j60PhyWrite(unsigned char, unsigned int)':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/etherShield.cpp:31: multiple definition of `EtherShield::ES_enc28j60PhyWrite(unsigned char, unsigned int)’
      etherShield\etherShield.cpp.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/etherShield.cpp:31: first defined here
      ETHER_28J60\etherShield.cpp.o: In function `EtherShield::ES_enc28j60clkout(unsigned char)':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/etherShield.cpp:27: multiple definition of `EtherShield::ES_enc28j60clkout(unsigned char)’
      etherShield\etherShield.cpp.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/etherShield.cpp:27: first defined here
      ETHER_28J60\etherShield.cpp.o: In function `EtherShield::ES_enc28j60Init(unsigned char*)':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/etherShield.cpp:23: multiple definition of `EtherShield::ES_enc28j60Init(unsigned char*)’
      etherShield\etherShield.cpp.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/etherShield.cpp:23: first defined here
      ETHER_28J60\etherShield.cpp.o: In function `EtherShield::ES_fill_tcp_data(unsigned char*, unsigned int, char const*)':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/etherShield.cpp:18: multiple definition of `EtherShield::ES_fill_tcp_data(unsigned char*, unsigned int, char const*)’
      etherShield\etherShield.cpp.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/etherShield.cpp:18: first defined here
      ETHER_28J60\etherShield.cpp.o: In function `EtherShield::ES_fill_tcp_data_p(unsigned char*, unsigned int, char const*)':
      C:\Users\cce\Documents\Arduino\libraries\ETHER_28J60/etherShield.cpp:14: multiple definition of `EtherShield::ES_fill_tcp_data_p(unsigned char*, unsigned int, char const*)’
      etherShield\etherShield.cpp.o:C:\Users\cce\Documents\Arduino\libraries\etherShield/etherShield.cpp:14: first defined here

      • FILIPEFLOP - 11 de agosto de 2014

        Boa tarde Roberto,

        Isso parece ser conflito de bibliotecas. Você não tem mais de uma com o mesmo nome na pasta ? Pode ser isso.

        Abraço.

        Adilson – Equipe FILIPEFLOP

      • Marcelo Campos - 14 de maio de 2015

        sei que o post é antigo mas, fica pra registro p/ ajudar quem tiver este problema:

        O Erro ao compilar é devido à versão do Arduino IDE, use a 1.5.6 r2 que dá certo, tentei usar com versão mais recente e da o mesmo problema

        Marcelo Campos

  65. Afonso Turcato - 25 de julho de 2014

    Parabéns pelo POST!

    Porém, encontrei um problema no código quando utiliza-se com o Arduino MEGA.
    Parece q a biblioteca ETHER_28J60 possui o pino CS fixo no 10.
    Assim, não basta apenas trocar a pinagem conforme a tabela acima.

    Após muito tempo, encontrei esses dois sites q explicam certinho como funcionam as principais bibliotecas para o módulo ENC28J60. Espero q ajude as pessoas q estão precisando utilizá-lo com o Arduino MEGA.

    http://www.tweaking4all.com/hardware/arduino/arduino-enc28j60-ethernet/
    http://en.code-bude.net/2013/06/22/how-to-use-enc28j60-ethernet-shield-with-arduino-mega-2560/

    Obs.:
    1) o meu módulo ENC28J60 apenas funcionou qndo eu alimentei ele com 5V!!!
    2) estou utilzando a biblioteca EtherCard com o pino 53 como CS.

  66. fernanda - 15 de julho de 2014

    Bom, dia .

    eu comprei o modulo ethernet enc28J60 da flipflop eu tento usar ele como websever e webclint e nao consigo .
    tem como me dar uma orientação ??

    nessa tag da biblioteca e.serviceRequeste é a mesma função de sever.available ?????

  67. Rodrigo - 2 de julho de 2014

    Boa tarde, estou começando um projeto de um alarme + automação residencial. Não sei se utilizo pic ou um arduino mega. O bom é que o modulo para rede é barato!
    Obrigado pelo tutorial!

  68. Junior Zancan - 1 de julho de 2014

    Olá, seria possível postar um tutorial de como fazer ao contrário? Recebendo comandos do cliente. Por exemplo, passando os dados via GET ou POST.

  69. Yan Patrick - 1 de julho de 2014

    Boa noite filipeflop, dá para guardar esses dados no banco de dados ?

  70. Athus - 30 de junho de 2014

    Olá FilipeFlop, partindo um pouco mais a fundo, devo perguntar: Como faço pra capturar esses valores numa aplicação Android? E como faço pra permitir que o servidor receba comandos enviados pelo aplicativo para acionar dispositivos?

    • FILIPEFLOP - 30 de junho de 2014

      Boa noite,

      Você pode utilizar JAVA ou PHP, à princípio, para fazer esse tipo de comunicação. Não temos nenhum projeto pronto nesse sentido.

      Abraço.

      Adilson – Equipe FILIPEFLOP

      • guilherme - 10 de agosto de 2015

        Utilizando a biblioteca UIP conectado a um roteador wi-fi, mas ele não aparece nos conectados ao dhcp do modulo e so consigo acessa-lo quando conecto o computador ao roteador diretamente pelo cabo.

Deixe uma resposta