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

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 do Módulo 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.  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 : MakerHero
#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>MakerHero - 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? Deixe seu comentário logo abaixo.

Faça seu comentário

Acesse sua conta e participe

198 Comentários

  1. O que seria este erro? Obrigado!

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

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

    from D:\UNINTER\Engenharia de Produção\Aulas e Conteudos\2018\AUTOMAÇÃO INDUSTRIAL\Experimentos\Bibliotecas\sketch_mar26a\sketch_mar26a.ino:3:

    C:\Users\Jean\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);

    ^

    In file included from D:\UNINTER\Engenharia de Produção\Aulas e Conteudos\2018\AUTOMAÇÃO INDUSTRIAL\Experimentos\Bibliotecas\sketch_mar26a\sketch_mar26a.ino:3:0:

    C:\Users\Jean\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);

    ^

    D:\UNINTER\Engenharia de Produção\Aulas e Conteudos\2018\AUTOMAÇÃO INDUSTRIAL\Experimentos\Bibliotecas\sketch_mar26a\sketch_mar26a.ino: In function ‘void loop()’:

    D:\UNINTER\Engenharia de Produção\Aulas e Conteudos\2018\AUTOMAÇÃO INDUSTRIAL\Experimentos\Bibliotecas\sketch_mar26a\sketch_mar26a.ino:39:56: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    D:\UNINTER\Engenharia de Produção\Aulas e Conteudos\2018\AUTOMAÇÃO INDUSTRIAL\Experimentos\Bibliotecas\sketch_mar26a\sketch_mar26a.ino:40:58: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    D:\UNINTER\Engenharia de Produção\Aulas e Conteudos\2018\AUTOMAÇÃO INDUSTRIAL\Experimentos\Bibliotecas\sketch_mar26a\sketch_mar26a.ino:42:25: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    D:\UNINTER\Engenharia de Produção\Aulas e Conteudos\2018\AUTOMAÇÃO INDUSTRIAL\Experimentos\Bibliotecas\sketch_mar26a\sketch_mar26a.ino:43:35: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    D:\UNINTER\Engenharia de Produção\Aulas e Conteudos\2018\AUTOMAÇÃO INDUSTRIAL\Experimentos\Bibliotecas\sketch_mar26a\sketch_mar26a.ino:45:29: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    D:\UNINTER\Engenharia de Produção\Aulas e Conteudos\2018\AUTOMAÇÃO INDUSTRIAL\Experimentos\Bibliotecas\sketch_mar26a\sketch_mar26a.ino:46:36: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    D:\UNINTER\Engenharia de Produção\Aulas e Conteudos\2018\AUTOMAÇÃO INDUSTRIAL\Experimentos\Bibliotecas\sketch_mar26a\sketch_mar26a.ino:48:24: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    D:\UNINTER\Engenharia de Produção\Aulas e Conteudos\2018\AUTOMAÇÃO INDUSTRIAL\Experimentos\Bibliotecas\sketch_mar26a\sketch_mar26a.ino:49:36: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    D:\UNINTER\Engenharia de Produção\Aulas e Conteudos\2018\AUTOMAÇÃO INDUSTRIAL\Experimentos\Bibliotecas\sketch_mar26a\sketch_mar26a.ino:51:23: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    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”

    1. Olá Jean!

      É um problema com a biblioteca, irei verificar porque está ocorrendo.

      Abraços!
      Vinícius – Equipe MakerHero

    2. Olá Jean!

      Iremos corrigir o link, tente utilizar esta biblioteca aqui: https://github.com/FelipeOld/ENC28J60

      Abraços!
      Vinícius – Equipe MakerHero

  2. Boa Tarde!

    Erros:

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

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

    from C:\Users\Beto\AppData\Local\Temp\arduino_modified_sketch_998374\backSoon.ino:3:

    C:\Users\Beto\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.h:32:66: error: ‘prog_char’ does not name a type; did you mean ‘putchar’?

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

    ^~~~~~~~~

    putchar

    In file included from C:\Users\Beto\AppData\Local\Temp\arduino_modified_sketch_998374\backSoon.ino:3:0:

    C:\Users\Beto\Documents\Arduino\libraries\etherShield/etherShield.h:34:65: error: ‘prog_char’ does not name a type; did you mean ‘putchar’?

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

    ^~~~~~~~~

    putchar

  3. Olá prof:adilson me chamo leandro sou de são Paulo
    Estou tentando usar o arduino para o meu projeto
    De red can automotiva poderia me ajudar por favor
    Meu contato 11979621220

    1. Olá Leandro,

      Obrigado por ter compartilhado a sua ideia com a gente 🙂

      Você pode lançar a sua ideia e dúvidas na nossa comunidade do Facebook, por lá o pessoal Maker está compartilhando conhecimento e projetos. Veja só: https://www.facebook.com/groups/272908123918982

      Abraços!
      Vinícius – Equipe MakerHero

  4. Bom dia Adilson.
    Não consigo compilar para o Arduino Mega 2560. No meu caso, preciso que seja o Mega porque meu sketch usa muita memória. Fiz as ligações conforme a tabela, mas compilando o seu sketch aparece o erro:

    ” exit status 1″
    “Erro compilando para a placa Arduino Mega or Mega 2560”

    Alguma sugestão para resolver o problema?

    1. Olá Orion,

      Você realizou a instalação das bibliotecas? A falta de bibliotecas pode ser o motivo desse erro.

      Abraços!
      Vinícius – Equipe MakerHero

  5. Olá,

    Estou pensando em usar um sensor desse para uma pequena aplicação com uma camera IP e um PIC.

    Porém me surgiu uma duvida de principiante em Ethernet. Eu preciso ter um roteador para operar os dois, ou se eu ligar a camera e o modulo na mesma fiação, mas com IP`s diferentes, ele funcionaria?

    Pergunto porque não tenho espáco para um roteador.

    Desde já Agradeço.

    Víctor

  6. Ola Adilson tudo bem?
    Adilson, tem como a porta ser obtida atraves de algum parametro, eu vejo em todos os exemplos que a porta é fixa e não consigo obter uma porta de através de alguma rotina de programação. Ela é sempre fixa?

    1. Olá Valmir,

      Qual seria o objetivo de obter a porta por parâmetro ou rotina de programação?

      A porta é parte do endereço, onde os demais sistemas conectados a rede devem buscar a sua aplicação.

      Abraço!
      Vinícius – Equipe MakerHero

  7. Ola,,,

    Muito bom. Eu gostaria de comunicar o meu plc em Ethernet com esta placa, e esta placa fazer a interface de comunicação com um drive de motor de passo, ex. enviar pwm desta placa par o drive de motor de passo. isto é possível ?

    1. Olá Marcio,

      Acredito que para comunicar um Arduino e CLP o ideal é usar a comunicação RS485, não Ethernet. Ai sim você conseguirá controlar o driver de motor de passo.

      Abraço!
      Rosana – Equipe MakerHero

  8. 1. Banco de dados MySQL com Arduino e Shield Ethernet W5100 – Registrando temperatura em um banco de dados
    Vi esse exemplo: https://portal.vidadesilicio.com.br/banco-de-dados-mysql-arduino-shield-ethernet-w5100/

    2. Como posso usar o código para o Módulo Ethernet – Enc28j60, para armazenamento de dados também.

    3. Fazendo uma simples tabela: MEDIDA, TEMPERATURA(Cº), DATA e HORA

    4. Obrigado pelo trabalho. Eu estava precisando para fazer um desenvolvimento de comunicação do meu Protótipo, Projeto integrador da Faculdade. Que DEUS continue te abençoando.

  9. Excelente!!!! Vocês da MakerHero são muito profissionais!!! Estou procurando um módulo ethernet com a homologação da anatel para integrar com arduino ou PIC, pode ser só com fio. Vocês sabem de algum que seja homologado?

    Obrigado!

    1. Olá!

      A princípio, o módulo HLK-RM04 é homologado.

      Abraços!
      Diogo – Equipe MakerHero

  10. Prezado(os)! Vejo aqui que essa postagem é de 2014, mas achei interessante, visto que sou iniciante em Arduino. E talvez por causa disso não consegui transmitir os dados do sensor (substitui o LM35 por um LDR) para a internet. O sketch compilou normal – utilizo um IDE versao 1.5.6-r2), também carrega normal, mas não visualizo os dados na página da internet. Para minha rede utilizo o endereço IP 192.168.15.10 (ou final 12). Podem me ajudar? Utilizo uma placa ENC28J60 marca HanRun HR911105A 13/15 conectada num Arduino MEGA.

    1. Olá, Nalber,

      O que você gostaria de medir nesse caso? A página abre certinho mas não há valores? Acredito que se o caso for esse, alguma coisa no seu código está impedindo a leitura, já que, a princípio, ao menos valores analógicos seriam lidos.

      Abraços!
      Diogo – Equipe MakerHero

      1. Desde já agradeço por responder. Na verdade não abre a página na internet – não deixei isso claro na mensagem. Quero medir intensidade luminosa pelo sensor LDR, apenas para testar o sketch e depois utilizá-lo para medir outras grandezas.

        1. Olá!

          Aparentemente pode ser um problema com o IP informado. Seria interessante se você trouxesse sua dúvida para nosso fórum, assim poderemos te ajudar com mais facilidade!

          https://www.makerhero.com/forum/

          Abraços!
          Diogo – Equipe MakerHero

          1. Ok. Obrigado! Vou postar no fórum.

  11. como obter os endereços dos dispositivos ligados na rede, semelhante ao comando arp -a ?

    1. Olá João,

      Acho que existe um código exemplo dentro da biblioteca que é usada nesse tutorial.

      Abraço!
      Rosana – Equipe MakerHero

  12. Ola,
    Excelente explicacao.
    Como seria o esquema para conexao com o ESP32 ?
    Abracos,

    Marco

    1. Olá Marco,

      Acredito que não seja possível fazer essa conexão :/

      Abraço!
      Rosana – Equipe MakerHero

  13. Boa Tarde!

    Parece que existe um conflito nas bibliotecas que constam aqui na página com alguma atualização da IDE.

    https://github.com/FelipeOld/ENC28J60

  14. como faço para ligar e desligar um rele através deste modulo???

  15. Bom dia Adilson. Muito interessante este post! Acredita ser possível usar esse módulo em placas com ARM ou ARM CORTEX e não apenas em ambiente ARDUINO? Pergunto pois os sinais SPI disponíveis no conector se encaixam perfeitamente no nosso HW de expansão SPI. Hoje usamos ambiente KEIL para a compilação dos FWs. Agradeço se puder esclarecer esta dúvida. Abs!

    1. Olá Xavier!

      Acredito que seja possível. É bom se atentar aos pinos para realizar a alimentação e a comunicação corretamente. E cuidados com os pinos não conectados da placa também.

      Abraços!

      André – Equipe MakerHero

      1. Boa tarde André. Grato pelo retorno. Tens conhecimento do que precisaria ser feito em termos de SW/FW neste caso (usando um processador ARM/CORTEX)? O HW não me preocupa pois tanto os níveis elétricos como a interface SPI atual da minha placa funciona certinho. Agradeço se puder me dar uma dica. Dando certo, é com a própria FF que eu trataria a questão de compra dos módulos? Temos um consumo mensal de cerca de 100 placas … sei que é pouco mas já é um começo. Só preciso que dê certo essa comunicação. Abs! Xavier

        1. Olá Xavier!

          Para ser sincero contigo, por mais que veja as compatibilidades e afins, o ideal é comprar um shield e fazer o teste. Enquanto não for feito esse teste não tens como ter total certeza que o projeto irá funcionar.

          Com essas placas, por exemplo, é possível utilizar a comunicação SPI, e tem bastante material sobre:
          https://www.makerhero.com/produto/placa-de-desenvolvimento-samd21-sparkfun/

          https://www.makerhero.com/produto/teensy-3-6/

          Você pode utilizá-las para validar a ideia.

          Sobre a compra em maiores quantidades, você pode mandar um e-mail para [email protected] que sem dúvida irão te atender muito bem!

          Abraços!

          André – Equipe MakerHero

  16. Gostaria de conectar meu aruino ao cloud mqtt com este modulo, vi nos exemplos como coloca-lo em rede mas não sei se ele se conectaria a Internet para publicar e subscrever,e nem como, tem como me ajudar??? com esp8266 já fiz, tem muita documentação na net, mas gostaria de usar este modulo tbm e não sei como???

  17. é possível usar essa Shield com internet ipv6? se sim, como ficaria o código?

    1. Olá Gustavo!

      É possível, mas precisa de uma implementação bem complexa de código.

      Abraços!

      André – Equipe MakerHero

  18. Boa tarde!

    Não estou conseguindo compilar o código acima. O seguinte erro é apresentado:

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

    In file included from C:\Users\Insipiron 15\Desktop\Programas\ARDUINO\libraries\etherShield/etherShield.h:25:0,

    from C:\Users\Insipiron 15\Documents\Arduino\SENSOR_UMIDADE_E_TEMPERATURA\SENSOR_UMIDADE_E_TEMPERATURA.ino:3:

    C:\Users\Insipiron 15\Desktop\Programas\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\Insipiron 15\Desktop\Programas\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\Insipiron 15\Documents\Arduino\SENSOR_UMIDADE_E_TEMPERATURA\SENSOR_UMIDADE_E_TEMPERATURA.ino:3:0:

    C:\Users\Insipiron 15\Desktop\Programas\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\Insipiron 15\Desktop\Programas\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\Insipiron 15\Documents\Arduino\SENSOR_UMIDADE_E_TEMPERATURA\SENSOR_UMIDADE_E_TEMPERATURA.ino: In function ‘void loop()’:

    C:\Users\Insipiron 15\Documents\Arduino\SENSOR_UMIDADE_E_TEMPERATURA\SENSOR_UMIDADE_E_TEMPERATURA.ino:39:56: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“MakerHero – Teste ENC28J60”);

    ^

    C:\Users\Insipiron 15\Documents\Arduino\SENSOR_UMIDADE_E_TEMPERATURA\SENSOR_UMIDADE_E_TEMPERATURA.ino:40:58: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

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

    ^

    C:\Users\Insipiron 15\Documents\Arduino\SENSOR_UMIDADE_E_TEMPERATURA\SENSOR_UMIDADE_E_TEMPERATURA.ino:42:25: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“”);

    ^

    C:\Users\Insipiron 15\Documents\Arduino\SENSOR_UMIDADE_E_TEMPERATURA\SENSOR_UMIDADE_E_TEMPERATURA.ino:43:35: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“Valor temperatura : “);

    ^

    C:\Users\Insipiron 15\Documents\Arduino\SENSOR_UMIDADE_E_TEMPERATURA\SENSOR_UMIDADE_E_TEMPERATURA.ino:45:29: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“&deg”);

    ^

    C:\Users\Insipiron 15\Documents\Arduino\SENSOR_UMIDADE_E_TEMPERATURA\SENSOR_UMIDADE_E_TEMPERATURA.ino:46:36: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“Temperatura minima : “);

    ^

    C:\Users\Insipiron 15\Documents\Arduino\SENSOR_UMIDADE_E_TEMPERATURA\SENSOR_UMIDADE_E_TEMPERATURA.ino:48:24: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“&deg”);

    ^

    C:\Users\Insipiron 15\Documents\Arduino\SENSOR_UMIDADE_E_TEMPERATURA\SENSOR_UMIDADE_E_TEMPERATURA.ino:49:36: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“Temperatura maxima : “);

    ^

    C:\Users\Insipiron 15\Documents\Arduino\SENSOR_UMIDADE_E_TEMPERATURA\SENSOR_UMIDADE_E_TEMPERATURA.ino: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”

    Poderia me auxiliar?

    Obrigado!
    Raphael Martin

  19. Olá Felipe, tentei testa o código e da erro na biblioteca #include “etherShield.h”, por acaso vc tem ele mais atualizada?

  20. A biblioteca ethershield

    está com erro interno.

  21. Olá meu módulo éhttps://www.makerhero.com/produto/modulo-ethernet-enc28j60/
    como sugerido por voces funcionaria com este teste acima, mas não está funcionando, o seguinte erro acontece:

    Arduino: 1.8.5 (Windows 8.1), Placa:”Arduino/Genuino Uno”

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

    from C:\Users\Marciore\Documents\Arduino\rede_enc28j60\rede_enc28j60.ino:3:

    C:\Users\Marciore\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);

    ^

    In file included from C:\Users\Marciore\Documents\Arduino\rede_enc28j60\rede_enc28j60.ino:3:0:

    C:\Users\Marciore\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);

    ^

    exit status 1
    Erro compilando para a placa Arduino/Genuino Uno
    Biblioteca inválida encontrada em C:\Users\Marciore\Documents\Arduino\libraries\Adafruit_NeoPixel_Library-master: C:\Users\Marciore\Documents\Arduino\libraries\Adafruit_NeoPixel_Library-master
    Biblioteca inválida encontrada em C:\Users\Marciore\Documents\Arduino\libraries\FastLED-master: C:\Users\Marciore\Documents\Arduino\libraries\FastLED-master
    Biblioteca inválida encontrada em C:\Users\Marciore\Documents\Arduino\libraries\Adafruit_NeoPixel_Library-master: C:\Users\Marciore\Documents\Arduino\libraries\Adafruit_NeoPixel_Library-master
    Biblioteca inválida encontrada em C:\Users\Marciore\Documents\Arduino\libraries\FastLED-master: C:\Users\Marciore\Documents\Arduino\libraries\FastLED-master

    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”

    1. O meu também está com esse erro alguém sabe como resolver??

  22. Boa noite. Acabei de comprar da loja de vocês o modulo ENC28J60 embora o modelo que me foi enviado possui 12 pinos de conexão e não 10 como mostra o exemplo acima gostaria de saber como fica a conexão com o modulo de 12 pinos ?

    1. Boa tarde,

      Infelizmente ainda não temos nenhum post mostrando esse novo módulo, mas você pode obter maiores informações neste link.

      Basicamente, a ligação é:

      Arduino Module
      digital 12 SO
      digital 11 ST
      digital 13 SCK
      digital 8 CS
      5V 5V
      Gnd GND

      Abraço!

      Adilson – Equipe MakerHero

  23. Ja testei esse e mais outros codigos envolvendo essa conexao com enc28j69, mas nenhum deles está sendo compilado pela IDE do arduino (arduino mega 2560). Vc tem alguma dica para dar quanto à isso?

    1. Os erros são sempre os mesmos. Por exemplo, segue abaixo esse codigo pequeno (peguei esse codigo pq o erro fica menor):

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

      static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24};
      static uint8_t ip[4] = {192, 168, 1, 15};
      static uint16_t port = 80;
      ETHER_28J60 ethernet

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

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

      COM O ERRO:
      In file included from C:\Program Files (x86)\Arduino\libraries\etherShield/etherShield.h:25:0,

      from C:\Program Files (x86)\Arduino\libraries\ETHER_28J60\examples\HelloWorld\HelloWorld.pde: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);

      ^

      In file included from C:\Program Files (x86)\Arduino\libraries\ETHER_28J60\examples\HelloWorld\HelloWorld.pde: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\ETHER_28J60\examples\HelloWorld\HelloWorld.pde: In function ‘void loop()’:

      C:\Program Files (x86)\Arduino\libraries\ETHER_28J60\examples\HelloWorld\HelloWorld.pde:28:42: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

      ethernet.print(“Hello World”);

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

  24. Olá!

    como faço para o ardino com placa ethernet virar uma remote I/O d um plc? no caso um controllogix da rockwell?

    e possivel isso usando a ethernet?

  25. Oi tudo bem ?

    Meu nome é Nivaldo de Arruda.
    Encontrei um tutorial sobre automação com arduíno. Acabei comprando a placa enc28j60 etherShield.

    Minha aplicação não funciona por muito tempo. Fica funcionando uns 20 minutos e para de responder, minha página não abre mais.

    Meu roteador está no endereço: 192.168.0.1 e estou utilizando o ip na placa: 192.168.0.15

    O mac também modifiquei.

    O que acontece ? agradeço a atenção.

  26. tentei rodar o programa, mas, da erro

    1. Salve, Carlos!

      Tive vários erros na hora de rodar esses exemplos e acabei optando por alterar algumas coisinhas na própria biblioteca. Para mim, as alterações resolveram todos os problemas, upei a minha versão pro git se quiser dar uma olhada e um feedback seria ótimo!

      Link da minha versão:
      https://github.com/TeixeiraRafael/ENC28J60-libs

      Abraço!

      1. Ajudou muito aqui na compilação colega!
        Obrigado

  27. Olá MakerHero, tudo bem?
    ao tentar rodar o código fornecido, mesmo com a biblioteca instalada, tenho o seguinte erro:
    sketch_sep29a.ino:3:25: error: etherShield.h: No such file or directory
    tem alguma forma de resolver esse problema ?
    att,

    1. Franco, se você estiver usando Linux o erro acontece porque o a classe tenta incluir um arquivo chamado “etherShield.h” como “EtherShield.h”, esse E maiúsculo faz toda a diferença em sistemas case-sensitive (como é o caso do linux). Fiz algumas alterações na bilbioteca que resolveram todos os pequenos bugs que eu encontrei, deixo aqui o link da minha versão :

      https://github.com/TeixeiraRafael/ENC28J60-libs

      Se não resolver, certifique-se que o local em que as bibliotecas estão extraídas está correto, tente adicionar a biblioteca ao projeto manualmente na aba Sketch > Incluir Biblioteca > Adicionar bilbioteca .ZIP

      Boa sorte, abraço!

  28. 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:UsersMauricioDesktopsketch_may16asketch_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”

  29. Boa tarde,

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

    Abraços.

  30. 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?

    1. Estou tendo o mesmo problema, e não acho solução em lugar algum, estou quase desistindo de utilizar esse módulo.

  31. Como inserir imagens nesse exemplo ?

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

  33. 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.

  34. boa tarde,

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

    In file included from C:Userswindons 7 pcDocumentsArduinolibrariesetherShield/etherShield.h:25:0,

    from C:UsersWINDON~1AppDataLocalTemparduino_modified_sketch_155046sketch_aug16a.ino:3:

    C:Userswindons 7 pcDocumentsArduinolibrariesetherShield/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:Userswindons 7 pcDocumentsArduinolibrariesetherShield/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:UsersWINDON~1AppDataLocalTemparduino_modified_sketch_155046sketch_aug16a.ino:3:0:

    C:Userswindons 7 pcDocumentsArduinolibrariesetherShield/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:Userswindons 7 pcDocumentsArduinolibrariesetherShield/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

    1. 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

  35. 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.

  36. 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?

  37. 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.

  38. não conigo uar da erro.

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

    In file included from C:Program FilesArduinolibrariesetherShield/etherShield.h:25:0,

    from C:UsersClienteAppDataLocalTemparduino_modified_sketch_278148HelloWorld.pde:3:

    C:Program FilesArduinolibrariesetherShield/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 FilesArduinolibrariesetherShield/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:UsersClienteAppDataLocalTemparduino_modified_sketch_278148HelloWorld.pde:3:0:

    C:Program FilesArduinolibrariesetherShield/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 FilesArduinolibrariesetherShield/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:UsersClienteAppDataLocalTemparduino_modified_sketch_278148HelloWorld.pde: In function ‘void loop()’:

    C:UsersClienteAppDataLocalTemparduino_modified_sketch_278148HelloWorld.pde:39:56: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“MakerHero – Teste ENC28J60”);

    ^

    C:UsersClienteAppDataLocalTemparduino_modified_sketch_278148HelloWorld.pde:40:58: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

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

    ^

    C:UsersClienteAppDataLocalTemparduino_modified_sketch_278148HelloWorld.pde:42:25: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“”);

    ^

    C:UsersClienteAppDataLocalTemparduino_modified_sketch_278148HelloWorld.pde:43:35: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“Valor temperatura : “);

    ^

    C:UsersClienteAppDataLocalTemparduino_modified_sketch_278148HelloWorld.pde:45:29: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“&deg”);

    ^

    C:UsersClienteAppDataLocalTemparduino_modified_sketch_278148HelloWorld.pde:46:36: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“Temperatura minima : “);

    ^

    C:UsersClienteAppDataLocalTemparduino_modified_sketch_278148HelloWorld.pde:48:24: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“&deg”);

    ^

    C:UsersClienteAppDataLocalTemparduino_modified_sketch_278148HelloWorld.pde:49:36: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

    e.print(“Temperatura maxima : “);

    ^

    C:UsersClienteAppDataLocalTemparduino_modified_sketch_278148HelloWorld.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”

    1. Utillize a versao Arduino 1.5.6-r2.

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

  40. nao estou conseguindo usar a biblioteca, alguem pode me ajudar

    1. acredito que para este exemplo teria que utilizar a ide do arduino versão 1.6.5

  41. 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?

    1. Eu estava com esse problema, tive que instalar a versao Arduino 1.5.6-r2. Funcionou.

  42. Bom dia,

    Eu consigo utilizar esse modulo com o Raspberry PI?

    1. Boa tarde Nathalia,

      Eu achei um tutorial para o Raspberry Pi A+ que você pode usar como base para a placa que você tem: https://gajdicookbook.wordpress.com/2015/02/25/rasberry-pi-a-with-internet/

      Abraço!

      Adilson – Equipe MakerHero

    2. Nathalia, por favfor,

      Quais as ferramentas de programação você está usando com a Rasp?

      Jose Augusto Terossi Junior
  43. 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.

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

      ZÉ Augusto

      JOSE AUGUSTO TEROSSI JUNIOR
      1. 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.

        1. 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. [email protected].

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

    3. 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

    4. <!–
      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 OKrnContent-Type: text/htmlrnPragma: no-cachernrn"
      //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:

      –>

      1. Pino 2:
        Pino 3:

        Pino 5:

        Pino 6:

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

  45. 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

  46. 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!

  47. 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.

  48. 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!

  49. 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.

    1. anda a /programa /include library/ add ZIP library/ , selecciona el archivo comprimido que bajaste antes (esta el enlace en esta pagina) normalmente esta enla carpeta /descargas, y dale botón ABRIR, eso será suficiente para que quede incluido en tu biblioteca de arduino

    2. Utilize a IDE Arduino Versão 1.5.6-r2.

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

    1. 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. 😀

      1. 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.^;+_}_:§º

        FILIPE CAIO BATISTA CARVALHO
  51. 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

    1. 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

      LINDOLFO SILVEIRA KEMMERICH
      1. Bom dia,

        Para versões mais recentes da IDE, tente uma biblioteca como a Ethercard: https://github.com/jcw/ethercard

        Abraço.

        Adilson – Equipe MakerHero

      2. Sim, é totalmente compatível com a 1.6.7, que foi a versão que eu usei. A única vantagem que vejo na EN28J60 é que ela é geralmente encontrada como breakout board, enquanto a W5100 é como shield do arduino Uno. Como estou usando o Mini Pró e quero economizar espaço, quis continuar com a 28J60. A biblioteca que está no meu github não é muito evoluida, tanto que nem um método para usar char* na PROGMEM existia, e foi essa a minha modificação.,

        []´s
        Fernando

      3. Aqui fala sobre essa incompatibilidade e tambem tem o Download dessa mesma biblioteca só que modificada para a versão moderna da IDE do Arduino…

        http://emacsdevzone.blogspot.com.br/2016/01/modulo-enc28j60-com-arduino-biblioteca.html

        Nesse blog que te passei tambem tem varios exemplos, tipo como fazer botões e pagina de login e ta bem explicado para ficar facil de entender… : )

  52. 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

  53. 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

    1. Bom dia Rafael,

      Ele usa a porta 2 por causa da interrupção do Arduino (https://www.arduino.cc/en/Reference/AttachInterrupt)

      Você pode tentar usar a porta 3, mas vai precisar mexer na biblioteca.

      Abraço.

      Adilson – Equipe MakerHero

  54. 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

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

    2. 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)…

      1. Estou alimentando o relé separadamente através de uma bateria e mesmo assim ele cai após algumas ativações.

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

    1. 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 MakerHero

  56. 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!

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

    2. 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 MakerHero

      1. 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!

        1. 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 MakerHero

  57. 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

    1. Bom dia,

      Não, a programação para o PIC é diferente.

      Abraço

      Adilson – Equipe MakerHero

  58. 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)ArduinolibrariesetherShield/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)ArduinolibrariesetherShield (legacy)
    Usando biblioteca ETHER_28J60 na pasta: C:Program Files (x86)ArduinolibrariesETHER_28J60 (legacy)
    exit status 1
    Erro compilando.”

    Alguém saberia o que significa esse erro?

    1. Eu tive esse mesmo problema quando tava tentando fazer um servidor de intra net, pelo que pesquisei este Erro é por que essa biblioteca foi desenvolvida em 2010 e por isso tem incompatibilidade com a versão mais nova da IDE do arduino um Cara Modificou ela pra funcionar na IDE nova Arduino…. Aqui tem a versão modificada pra Download no final da pagina>>>
      http://emacsdevzone.blogspot.com.br/2016/01/modulo-enc28j60-com-arduino-biblioteca.html#more

      Ao acho que o pessoal do Filipiflop bem que podia colocar esta biblioteca para download aqui também, pois um monte de gente tem esse mesmo problema… Ainda bem que alguém deu um jeito, ou meu servidor não teria saído do papel…kkkk…

      1. Muito Obrigado!

        Tive o mesmo problema do Felipe Fonseca, ao usar a nova Biblioteca, foi sem erro algum!

  59. Ola
    quando tento compilar aparece um erro prog_char
    arduino_arduinolibrariesetherShield/ip_arp_udp_tcp.h:32:66: error: ‘prog_char’ does not name a type

  60. 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?

    1. 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 MakerHero

      1. 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

        FILIPE CAIO BATISTA CARVALHO
  61. Gostaria de saber qual a funçao do slot sd no modulo ethernet

    1. Boa tarde Vinicius,

      Você pode utilizar o slot SD para gravação de arquivos, logs, etc. Ele funciona independente do Ethernet Shield.

      Abraço!

      Adilson – Equipe MakerHero

  62. 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.

    1. 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 MakerHero

      1. 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?

        1. 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.

  63. 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

    1. Bom dia Raul,

      No post mostramos a forma de ligação do módulo ao Arduino Due. Verifique a tabela de conexão dos pinos, por favor.

      Abraço

      Adilson – Equipe MakerHero

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

    1. 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.

  65. 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?

    1. Boa tarde Everton,

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

      Abraço

      Adilson – Equipe MakerHero

      1. 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

        1. 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.www.makerhero.com/modulos/cartao-sd-com-arduino.html

          Abraço

          Adilson – Equipe MakerHero

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

    1. Boa tarde,

      Da interface SPI não, apenas o pino CS.

      Abraço

      Adilson – Equipe MakerHero

  67. 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.

    1. Não. O módulo serve para conectar o Arduino na rede, não como I/O. Estarão fisicamente conectados, como o texto explica.

  68. 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?

    1. boa tarde Jhonatan,

      Qual módulo wireless vc vai usar ?

      Adilson – Equipe MakerHero

  69. Achei a documentação dessa biblioteca do módulo ethernet e achei muito confusa. 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.

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

  71. não funciona nem a pal fica dando erro.

    In file included from C:Program Files (x86)ArduinolibrariesetherShield/etherShield.h:25:0,
    from sketch_mar15c.ino:3:
    C:Program Files (x86)ArduinolibrariesetherShield/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)ArduinolibrariesetherShield/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)ArduinolibrariesetherShield/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)ArduinolibrariesetherShield/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.

  72. 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 : MakerHero
    #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("MakerHero – 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);
    }

  73. 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!

    1. Boa tarde Alexandre,

      Muito obrigado pelas informações.

      Abraço !

      Adilson – Equipe MakerHero

  74. 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 FilesArduinolibrariesetherShield/etherShield.h:25:0,
    from iniciandonet.ino:3:
    C:Program FilesArduinolibrariesetherShield/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 FilesArduinolibrariesetherShield/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 FilesArduinolibrariesetherShield/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 FilesArduinolibrariesetherShield/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.

    1. Esse erro de compilação aconteceu comigo usando a versão da IDE 1.6.0 (não sei em outras tem esse problema).

      Solução: mude nas linhas onde tem ‘prog_char’ para ‘char’. Note pelas mensagens que o erro ocorre em vários lugares.

      1. Estou com o mesmo problema. Só trocar o tipo já resolve?

    2. Olá.

      Acabei de postar um comentário sobre erros de compilação… veja este link:

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

      Lá tem três opções de biblioteca – para mim está funcionando a EtherCard.h mas não testei a arduino_uip-Ethernet porque a primeira já funcionou!

      A recomendada aqui no blog realmente não compila na minha IDE. Tenho a versão 1.0.6 usando hardware TEENSYDUINO v3.1. Funciona perfeitamente.

      Abraço.

    3. Boa tarde Cristiano,

      Realmente na versão 1.6.0 da IDE acontece esse erro. Provavelmente é algum conflito com as bibliotecas existentes. Na versão 1.0.6 esse erro não acontece.

      Abraço.

      Adilson – Equipe MakerHero

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

  76. 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 ?

    1. Boa noite Raphael,

      Tente as informações desse post : http://nathanhein.com/2013/02/getting-arduino-online-with-an-enc28j60/

      Abraço.

      Adilson – Equipe MakerHero

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

    1. 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 MakerHero

  78. 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.

    1. Bom dia Ramon,

      Estamos estudando a montagem de um post nesse sentido.

      Abraço.

      Adilson – Equipe MakerHero

  79. 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?

    1. Bom dia Guilherme,

      Pode usar sim, inclusive fora da sua rede interna, utilizando a internet, por exemplo.

      No momento não temos tutoriais para indicar.

      Grato.

      Adilson – Equipe MakerHero

  80. 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!

    1. Boa tarde,

      Veja se utilizando o mesmo programa apresentado no post o problema permanece, por favor.

      Grato.

      Adilson – Equipe MakerHero

      1. Boa Noite Filipe, obrigado pela resposta.

        Ela apresenta o mesmo problema.

  81. 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);
    }

    1. Boa tarde Jefferson,

      Você adaptou o programa à faixa de endereços IP da sua rede ?

      Grato.

      Adilson – Equipe MakerHero

  82. 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,

    1. 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 MakerHero

  83. 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?

    1. Boa tarde César.

      Muito obrigado. É possível sim. Por favor dê uma olhada nesse tutorial :

      http://wiki.mcselec.com/How_to_send_an_Email_with_Arduino_and_Ethernet_Shield_(W5100)

      Abraço.

      Adilson – Equipe MakerHero

  84. 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?

    1. 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 MakerHero

  85. 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?

    1. 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 MakerHero

  86. 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();
    }

    1. ihh o formulario de resposta comeu (incorporou à página) meus códigos html. Mas passando o mouse e vendo os links da pra entender.

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

    1. Boa tarde Luciano,

      Sim, relés, sensores, lâmpadas e qualquer outro tipo de dispositivo que você possa controlar pelo Arduino.

      Abraço.

      Adilson – Equipe MakerHero

  88. 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!

    1. Obrigado Danilo !

      Abraço.

      Adilson – Equipe MakerHero

  89. 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.

    1. Boa tarde Eduardo,

      Infelizmente não temos essa informação.

      Grato.

      Adilson – Equipe MakerHero

  90. 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

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

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

      1. 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 MakerHero

      2. 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

        1. mano vc vai pro ceu, mto obrigado

  91. 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.

    1. Passei pelo mesmo problema que você. Na verdade optei por não usar a ENC28J60. Usei a uIP que encontrei nesse tutorial:
      http://myhowtosandprojects.blogspot.com.br/2014/03/getting-arduino-online-via-hr911105a.html

      E sobre usar 5V aconteceu o mesmo comigo. Só funcionava a 5 volts. Porém percebi que o circuito estava ficando quente demais e usei um módulo externo 3.3 para alimentar a Ethernet ao invés da energia do arduino. Funcionou perfeitamente. Usar em 5V pode não queimar o circuito mas danificará antes do tempo. (Só não se esqueça que quando usar duas fontes diferentes conectar os “GND”s delas):
      https://www.makerhero.com/pd-6b7f4-fonte-ajustavel-protoboard.html?ct=3d60a&p=2&s=1

      Abração

      Hobbert

  92. 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 ?????

    1. Boa noite,

      Não, olhando os códigos das 2 bibliotecas, creio que seja o client.available() o equivalente ao e.serviceRequest()

      Abraço.

      Adilson – Equipe MakerHero

  93. 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!

  94. 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.

  95. Boa noite MakerHero, dá para guardar esses dados no banco de dados ?

  96. Olá MakerHero, 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?

    1. 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 MakerHero

      1. 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.

Trackbacks and Pingbacks

  1. […] shield é baseado no chip ENC29J60. Já usamos um módulo com esse chip neste post. O shield usa protocolo SPI para comunicação com Arduino, mas não precisamos nos preocupar com […]