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

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

Módulo Ethernet ENC28J60 Arduino

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

Pinagem Ethernet ENC28J60:

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

Pinagem Pinout Ethernet ENC28J60

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

ENC28J60 - Tabela de ligação

Montagem Ethernet ENC28J60:

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

Diagrama Ligação Arduino ENC28J60

Programando Arduino com Ethernet ENC28J60:

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

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

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

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

Teste IP ENC28J60

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

Posts Relacionados

145 Comentários

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

    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 FILIPEFLOP

      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.

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

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

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

  5. 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 FILIPEFLOP

  6. 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.filipeflop.com/pd-6b7f4-fonte-ajustavel-protoboard.html?ct=3d60a&p=2&s=1

      Abração

      Hobbert

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

      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

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

    1. Boa tarde Eduardo,

      Infelizmente não temos essa informação.

      Grato.

      Adilson – Equipe FILIPEFLOP

  9. 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 FILIPEFLOP

  10. 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 FILIPEFLOP

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

  12. 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 FILIPEFLOP

  13. 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 FILIPEFLOP

  14. 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 FILIPEFLOP

  15. 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 FILIPEFLOP

  16. 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 FILIPEFLOP

  17. 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 FILIPEFLOP

      1. Boa Noite Filipe, obrigado pela resposta.

        Ela apresenta o mesmo problema.

  18. 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 FILIPEFLOP

  19. 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 FILIPEFLOP

  20. 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 FILIPEFLOP

  21. 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 FILIPEFLOP

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

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

    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 FILIPEFLOP

  24. 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 FILIPEFLOP

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

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

    compilation terminated.

    Erro compilando.

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

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

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

    static uint16_t port = 80;

    ETHER_28J60 e;

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

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

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

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

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

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

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

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

  29. 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 FILIPEFLOP

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

  31. 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 FILIPEFLOP

  32. 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 FILIPEFLOP

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

          Abraço

          Adilson – Equipe FILIPEFLOP

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

  34. 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 FILIPEFLOP

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

      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.

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

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

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

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

        Danilo Mendes Dominé
  40. 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 FILIPEFLOP

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

      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 FILIPEFLOP

  42. 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 FILIPEFLOP

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

  44. 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 FILIPEFLOP

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

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

      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… : )

        DIM Eltro/Eletronic
  47. 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
  48. 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.

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

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

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

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

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

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

      Rafael Paiva Garcia
    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:

  55. 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 FILIPEFLOP

    2. Nathalia, por favfor,

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

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

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

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

  59. 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(“FILIPEFLOP – 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.

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

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

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

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

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

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

  66. Como inserir imagens nesse exemplo ?

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

  68. Boa tarde,

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

    Abraços.

  69. 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”

Trackbacks and Pingbacks

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

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *