Como comunicar com o Arduino Ethernet Shield W5100 217

Controlar sensores ou enviar informações remotamente é um dos grandes objetivos de quem mexe com Arduino. O Arduino Ethernet Shield W5100 é outro dispositivo dessa família, que além de possibilitar o acesso às informações na sua rede local, ainda pode ser conectado à internet e permitir o seu monitoramento de qualquer lugar do mundo.

Ethernet Shield W5100

Acoplando o Arduino Ethernet Shield W5100 ao seu Arduino, basta um simples cabo de rede para que, em poucos minutos, você passe a monitorar o estado de sensores, chaves e outros dispositivos à partir do browser do seu computador ou celular. Este Shield é baseado no ethernet chip Wiznet W5100 (datasheet) e fornece um endereço IP compatível com os protocolos TCP e UDP.

Confira um vídeo abaixo de como este projeto ficará ao final deste tutorial:

O primeiro passo deste tutorial para setar corretamente o seu shield ethernet é configurá-lo com um endereço IP válido da sua rede. Vamos mostrar como obter as informações de rede no Windows 7, mas você pode usar o mesmo princípio para outros sistemas operacionais.

Configuração IP:

Clique em INICIAR e, na caixa de diálogo, digite CMD. Em seguida pressione a tecla ENTER :

Windows 7 - Iniciar

Na janela de prompt de comando, digite “ipconfig /all” (sem as aspas) e aperte ENTER :

Prompt de comando - Ipconfig

O comando será executado e várias informações aparecerão na tela. Procure pela informação referente à sua placa de rede principal, semelhante à esta destacada na imagem, pois são essas informações que você irá precisar para configurar o shield : Endereço IP,  Máscara de sub-rede e Gateway Padrão :

IPConfig - Resultados

Esses três parâmetros são definidos logo no início do programa, e devem ser alterados de acordo com a configuração da sua rede :

IPAddress ip(192,168,1,88) : Troque por um endereço IP no mesmo formato daquele que você copiou na janela de prompt de comando, mas o último número deve ser diferente. Exemplo : o IP do nosso equipamento é 192.168.1.120, e no programa utilizamos o 192.168.1.88. Antes de usar qualquer endereço da rede, certifique-se que o mesmo ainda não está em uso por nenhum outro equipamento.

IPAddress gateway(192,168,1,1) : Utilize o mesmo endereço do Gateway Padrão que você obteve na janela de prompt de comando. No nosso caso, 192.168.1.1

IPAddress subnet(255,255,255,0) : Utilize o mesmo endereço referente à máscara de sub-rede, que você obteve na janela de prompt de comando : 255.255.255.0

Programando o Arduino:

Altere esses parâmetros citados acima de acordo com a sua configuração de rede, salve o programa e carregue-o no seu Arduino. Lembrando que a biblioteca Ultrasonic pode ser encontrada nesse link.

Enviando Informações pela Rede:

Encaixe o Arduino Ethernet Shield W5100 ao seu Arduino e ligue-o à um roteador ou hub usando um cabo de rede comum. Vamos usar o webserver embutido na placa para enviar ao browser duas informações sobre as portas do Arduino, uma informando sobre o estado (ligado/desligado) de um botão ligado à porta 3, e outro com informações sobre o Sensor Ultrasonico HC-SR04, ligado às portas 6 (pino trigger do sensor) e 7 (pino echo do sensor) :

Ethernet Shield e HC-SR04

Para testar o funcionamento, abra o browser no seu computador e digite na barra de endereços o IP que você configurou no programa. No nosso caso 192.168.1.88 :

Ethernet Shield - Browser

Você também pode acessar pelo celular :

Ethernet Shield - Acesso celular

As informações serão enviadas pelo webserver da placa ethernet à cada 2 segundos (veja no programa que esse tempo é configurável). Também podemos configurar no programa os comandos html para formatação, como por exemplo <font> para exibir o texto do título na cor vermelha, <b> para negrito e <u> para sublinhado. Você também pode utilizar outros comandos HTML.

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

Posts Relacionados

217 Comentários

  1. Bom dia, tentei usar esse programa, mas esta dando erro na seguinte linha:
    Ultrasonic ultrasonic(PINO_TRIGGER, PINO_ECHO);

    erro: ‘Ultrasonic’ does not name a type

    Sou iniciante em programação, portanto não sei o que pode estar errado.

    1. Bom dia Matheus !

      Isso me parece ser um erro na instalação da biblioteca. Você instalou corretamente ? Não esqueça que você precisar sair e entrar na IDE novamente para que a biblioteca seja reconhecida.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  2. Bom dia, tentei usar esse programa, mas esta dando erro na seguinte linha:
    Ultrasonic ultrasonic(PINO_TRIGGER, PINO_ECHO);

    erro: ‘Ultrasonic’ does not name a type

    Sou iniciante em programação, portanto não sei o que pode estar errado.

    1. Bom dia Matheus !

      Isso me parece ser um erro na instalação da biblioteca. Você instalou corretamente ? Não esqueça que você precisar sair e entrar na IDE novamente para que a biblioteca seja reconhecida.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  3. Bom dia!
    Tenho um servidor que está pronto para receber as informações do arduino:
    http://189.20.93.243:11003/ImgSensor/rst/valsensor.ashx?valor=45&sensor=8445456

    Só preciso denominar um nome/id para o sensor e o valor que está captando (exemplo: sensor: 1, valor: 23).
    Já consegui fazer o processo na rede interna,ethernet, mas não consigo enviar as informações para a internet.
    Se pudesse me ajudar eu agradeceria!

    Obs: Arduino Uno R3, Shield Ethernet, posso receber a informação com Json.

    1. Boa tarde Renan,

      Acessei o link e vi algumas informações sobre o sensor. Você já conseguiu resolver ou você quer disponibilizar os dados em outro formato ?

      Adilson – Equipe FILIPEFLOP

      1. Um projeto desses seria muito bom, pois ele possibilita você guardar as informações em um banco de dados ou usar validações avançadas no PHP.

    2. Bom dia amigo

      vi que você desenvolveu um projeto parecido com o que estou fazendo.

      Quero enviar um Json para um servidor que tenho na nuvem.. você poderia me ajudar? Gostaria de saber como você fez essa comunicação.. estou usando o arduino mega + shield ethernet W5100.

      Abraço!

  4. Bom dia!
    Tenho um servidor que está pronto para receber as informações do arduino:
    http://189.20.93.243:11003/ImgSensor/rst/valsensor.ashx?valor=45&sensor=8445456

    Só preciso denominar um nome/id para o sensor e o valor que está captando (exemplo: sensor: 1, valor: 23).
    Já consegui fazer o processo na rede interna,ethernet, mas não consigo enviar as informações para a internet.
    Se pudesse me ajudar eu agradeceria!

    Obs: Arduino Uno R3, Shield Ethernet, posso receber a informação com Json.

    1. Boa tarde Renan,

      Acessei o link e vi algumas informações sobre o sensor. Você já conseguiu resolver ou você quer disponibilizar os dados em outro formato ?

      Adilson – Equipe FILIPEFLOP

  5. Boa noite.
    Tentei rodar este programa e aparece erro na seguinte linha:
    long microsec = ultrasonic.timing();
    tentei encontrar a causa, mas não consegui .
    Você poderia me auxiliar?

    1. Boa tarde Franciane,

      Você instalou a biblioteca Ultrasonic ?

      Adilson – Equipe FILIPEFLOP

      1. Instalei sim por isso não compreendo este erro.

      2. coloque a palavra timing com a primeira letra maiúscula. Desta forma, “ultrasonic.Timing()”, funcionará.

        Marlon Garcia Grando
    2. Olá Amigo,

      No meu caso eu tive que retirar uma outra biblioteca que utilizava o HCSR e deixar somente a bilioteca dele citada no site. Quando for trabalhar com outra biblioteca é necessário reverter a situação.

      Abs.

      Márcio Bortoletto Fessel
  6. tem como mudar o modo de vizualização da pagina no celular sem aquela pagina grande do servidor,uma uma tela especifica para esse sensor.

    1. Bom dia Sidnei,

      O que pode ser feito é criar um aplicativo para celular para ler esses valores e exibir em algum layout específico.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  7. Boa Noite.

    Faz dois dias que adquiri o módulo de internet W5100, bom conectei ele no meu roteador e ele esta “pingando”, porém a pagina do server nao abre de jeito nenhum, quando eu abro a serial o server nao esta “memorizando meu ip” ele atribui um numero totalmente diferente. Gostaria de saber se ja aconteceu algo assim?

    1. Boa noite,

      Imagino que você tenha configurado um endereço IP compatível com a sua rede. Pode me explicar um pouco melhor sobre esse problema do server não estar memorizando o IP ?

      Grato.

      Adilson – Equipe FILIPEFLOP

  8. boa noite

    primeiro_teste:15: error: ‘Ultrasonic’ does not name a type
    primeiro_teste.ino: In function ‘void loop()’:
    primeiro_teste:36: error: ‘ultrasonic’ was not declared in this scope
    primeiro_teste:38: error: ‘Ultrasonic’ has not been declared

    Isso que dizer que não estalei a biblioteca provavelmente como visto acima…

    O que é IDE?

    1. Boa noite João,

      IDE é o ambiente de programação do Arduino. Verifique o local onde o seu programa está instalado e coloque a biblioteca dentro da pasta LIBRARIES.

      Adilson – Equipe FILIPEFLOP

  9. Boa noite, eu consegui fazer a comunicação pela rede normalmente, mas quando desconecto o o cabo usb e deixo o arduino alimentado apenas pela fonte de alimentação e o cabo de rede conectado não consigo mais ler os dados dos sensores ligados, vocês saberiam me dizer qual o problema?

    Obrigado, ótimo post.

    1. Boa tarde Gustavo,

      O Arduino deveria se comportar da mesma maneira, enviando dados para o browser quando você o alimenta com fonte externa.

      Você verificou se a placa não perdeu a conexão com o roteador quando você trocou a USB pela fonte ?

      Abraço.

      Adilson – Equipe FILIPEFLOP

  10. Boa noite!
    Estou com dificuldade, pois meu computador só está liberando o ipv6: e aparentemente não consigo conectar ao computador, se uso o ip do próprio shield a programação dá certo e consigo comunicar no computador, entretanto não consigo abrir a leitura no navegador

    1. Boa tarde Vinicius,

      Realmente o shield usa as configurações do IPv4. Por favor verifique se este protocolo está habilitado no seu computador.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  11. Como faço para criar os botões no celular para controlar o arduino?

    1. Boa tarde,

      Essa parte envolve programação, e depende do tipo de celular que você vai utilizar. De qualquer forma, existem vários programas gratuitos que fazer esse tipo de controle.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  12. Excelente, post.

    A hora que estou só utilizando o arduino uno o ultrasonic funciona perfeito, a hora que coloco a shield ethernet ele começa passar outros valores, que não corresponde com a medida. exemplo 0.03 ou 0.02

    Porque isso ocorre?

    1. Boa tarde Junior,

      Obrigado. Tente trocar a porta onde o sensor ultrasonico está ligado, ou se puder, verifique se o problema acontece com outro sensor.

      Grato.

      Adilson – Equipe FILIPEFLOP

  13. Adorei o post!
    Você teria algo semelhante, mas usando a internet 3G (ou 2G)?
    Obrigada!

    1. Boa tarde Ana,

      Em breve estaremos publicando um artigo sobre shield GSM.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  14. Ola Filipe, Muito Bom seu Site, tire uma duvida não entendi estes valores para configurar o IP
    IPAddress ip( 11,12,13,88); //Define o endereco IP ( não seria 192.168.1.88 ?)
    IPAddress gateway(11,12,13,1); //Define o gateway

  15. Boa tarde a todos!

    estou com dificuldades de acessar o meu arduino pela internet. quando estou conectado na minha rede loca consigo controlar, porem quando saiu da rede local e entro por outra rede, a pagina nao abre!
    ja config modem modelo: technicolor td5130, nele criei uma porta 80. ja tentei a 8080 e nada

    byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
    IPAddress ip(000,000,0,000);
    IPAddress gateway(000,000,000,0000); //Define o gateway
    IPAddress subnet(255, 255, 255, 0);
    EthernetServer server(80);

    desde ja agraadeço!

    1. Ola Marcos!

      Neste caso voce deve fazer uma configuração no seu roteador para que direcione ao ip do shiled todas as requisiçoes que ele receber na porta WAN (IP Externo) .

      Exemplo:
      Se voce configurou seu shield na porta 9090, deve fazer uma configuração no roteador para que direcione ao ip do shield todas as requisições recebidas na porta 9090 Wan (Ip Externo). O acesso deve sempre ser feito de fora pra dentro usando o ip externo. (que normalmente é dinamico)

      Obs: Se sua internet é do tipo domestica, procure nao utilizar as portas 80 e 8080, (preferencialmente nenhuma porta de aplicação conhecida) pois os provedores normalmente mantem estas portas fechadas propositalmente.

  16. Muito bom seus posts.
    Estou pensando em fazer uma ligação entre 2 placas uno ou mega com ethernet shield em ambas e fazer elas se comunicarem.
    exemplo de aplicação: Na casa coloco botoeiras e display para as funções e monitoramento em uma das placas,, e no canil coloco a outra placa com o módulo de relés fazendo as funções acionadas pela primeira placa. ou seja… uma placa comanda um painel e a outra executa os comandos e devolve o status dos sensores, sendo a sua ligação via rede, assim posso usar um cabo de rede, fibra ótica, ou até mesmo a internet para controlar, independente da distancia em que estejamos.
    Fazer com uma placa e usar a WEB para isto já aprendemos aqui, mas tenho ideia de fazer um painel, sem computador.

    1. Boa tarde Luiz,

      Obrigado. Realmente é um tipo de aplicação interessante, mas também poderia ser feita com módulos wireless.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  17. Obrigado amigo,segui seu tutorial e funcionou de primeira! Muito obrigado

    1. Boa tarde Arthur,

      Muito obrigado ! Estamos à disposição.

      Abraço.

      Adilson – Equipe FILIPEFLOP

    1. Oi Danilo,

      Ainda não temos exemplos como esse, utilizando programação em PHP/HTML para verificar o estado das portas do Arduino.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  18. Olá,
    Estou com um problema, eu segui todos os passos e mesmo assim ele não mostra as informações, quando eu coloco o IP na barra de endereços ele aparece “Não é possível conectar-se”. Se puder me ajudar agradeço.

  19. Gostaria de saber se consigo enviar as informações pra internet, não só a rede interna, como faço isso?

    1. Simples, basta você liberar uma porta de conexão no seu modem direcionada para o IP em que o arduino se encontra.

      abs. Victor.

  20. Olá Filip, ótimo exemplo.

    Mas como faço para ler a informação recebida via http?
    Por exemplo uma informação para ligar um Led ou pagá-lo.

    Vc poderia postar um pequeno exemplo, por favor?

    Obrigado.

    1. Boa tarde Warley,

      Ainda estamos montando um post com informações nesse sentido.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  21. Olá FILIPEFLOP, Tenho um arduino UNO e um arduino MEGA 2560 e um EthernetShield w500 , quando ligo o arduino + ethernetshield na fonte e tento acessar o webserver pelo navegador ele não abre, só depois que aperto o botao reset ele consegue acessar o webserver, ja testei com os dois arduinos, e varios codigos porem acontece a mesma coisa, só apertando o botão reset uma vez para funcionar. quem tiver uma solução agradeço…

  22. Boa noite, gostaria de saber se alguém já criou alguma aplicação com o Ethernet Shield sem gerar uma página Web (html), simplesmente usando o Shield como uma interface de rede?

  23. Boa tarde,

    Sou novo em Arduino, pretendo montar um projeto com ethernet shield, já procurei em diversos sites várias programações distintas, mas sempre encontro o mesmo “erro”, ao digitar o IP no meu navegador a página acusa erro,acredito que seja um problema de comunicação e não na placa, pois ao conectar o cabo de rede acusa que está pingando. Alguém poderia me auxiliar? Muito Obrigado!

    1. Boa noite Warley,

      Você está ligando o cabo ao ethernet shield por meio de um roteador ? Experimente ligar diretamente no computador.

      Adilson – Equipe FILIPEFLOP

      1. Bom dia Filipe,

        Em alguns sites, ví que o roteador pode estar bloqueando minha comunicação, mas não tentei ligá-lo diretamente no PC, para isso devo seguir o mesmo procedimento anteriormente? em questões de configurações?
        Obrigado.

        1. Boa noite Warley,

          Talvez você tenha que efetuar algumas alterações na parte de TCP IP da placa de rede do seu computador, provavelmente terá que utilizar IP fixo.

          Abraço.

          Adilson – Equipe FILIPEFLOP

  24. Boa noite,
    Eu montei no protoboard um exemplo de acionamento remoto, quando estou dentro da minha rede, ou seja, compartilhando o mesmo roteador, consigo enviar e receber dados do arduino através da W5100, porém quando mudo para 3G ou uso outra rede no meu celular, eu só consigo enviar dados para o Arduíno, mas fico sem o feedback. Você tem uma solução para esse problema?

    Grato

    Julio

    1. Boa noite Julio,

      Sem conhecer detalhes da sua rede fica difícil, mas aparentemente é algum problema de roteamento/firewall ou alguma outra configuração, que está bloqueando os dados de saída da sua rede.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  25. Ola Filipe Flop , gostaria de saber se eu tenho que configurar um programa de localhost no meu computador antes de rodar a pagina? Porque quando eu coloco no meu navegador 192.168.1.110 , ele não abre nada e da um erro na pagina.
    Também gostaria de saber se tem como eu fazer toda parte de programação da pagina web pelo dreamweaver , e configurar la no dw o ip que esta o arduino , será que funciona?

    1. Boa noite Felipe,

      Você consegue “pingar” a placa normalmente ?

      Adilson – Equipe FILIPEFLOP

  26. Bom dia,

    É possível utilizar o código acima para envio de twitter?
    No exemplo da biblioteca do twitter, onde é utilizado apenas o mac e IP (Ethernet.begin(mac, ip), o twitter é enviado normalmentePorém, quando utilizo no código as instruções “EthernetServer server(80)” e “server port”server.begin()”, a rotina deixa de funcionar.
    Acredito que tenha algum conflito entre os nomes e porta definidos nas bibliotecas Ethernet e Twitter. Também poderia ser algum problema na versão do IDE ou consumo de memória do Arduino.
    Já tentei alterar a porta do Ethernet Server, mas não funcionou.
    Estou utilizado o Arduino Uno e IDE 1.0.6

  27. Olá, comprei um a
    Arduino Mega + Ethernet Shield w1500 , já consegui acender leds pela intranet, porem não sei como controla-lo pela internet geral.
    Gostaria que me ajudassem.

    1. Cara, vc precisa fazer uma rota – pesquise sobre NAT – do seu roteador para o arduino.

  28. Olá, comprei um arduino mega + shield w1500, consigo acender leds pela intranet. porém não sei como controlar pela internet geral, por favor me ajudem!

  29. Qual o procedimento para localizar o MAC na Shield Ethernet?

  30. esse envio de informaçoes pela rede funciona exatamente igual com o ARDUINO GSM GPRS SHIELD ?

  31. Boa noite, vocês poderiam ensinar como fazer o acionamento de um pino pela internet?

    Agradeço desde já

  32. Boa Noite equipe FILIPEFLOP
    GOSTARIA DE SABER QUAL A POSSIBILIDADE DE LIGAR TRÊS SENSORES ULTRASSÔNICO EM UM ARDUÍNO UNO E SE É POSSÍVEL LIGAR TRÊS SAÍDAS RESPECTIVAMENTE???

    CORDIALMENTE

    Josirlei Alves Ramos
  33. Boa tarde!
    Utilizo Arduino Mega 2560 e um Shield ethernet r3, fiz as modificações de acordo com minha rede, pluguei no roteador, mas não funcionou, a pagina não é encontrada, sem sucesso com ping também.
    O que pode ser?

  34. Olá, fiz passo a passo conforme este tutorial, meu problema era que inicialmente funcionava somente na intranet e não na internet, porém um amigo conseguiu com meu arduino comunicar da casa dele normalmente pela internet, descobri que o problema é meu roteador que não está permitindo. Gostaria de saber como alterar meu roteador para permitir o acesso pela internet. já fiz corretamente as configurações no meu roteador em NAT-> Virtual Server, e criei a rota de desvio para o arduino. Já tentei conectar diretamente no pc, mudar a porta e nada faz com que o roteador permita acesso pela internet, só permite pela intranet.

  35. Boa Noite, gostaria de uma ajuda para finalizar um trabalho de controle de reservatorio hidráulico,
    preciso acessar dados dos sensores utrassonico e de temperatura de servidor e cliente e jogalos na pagina html atualizando de tempos em tempo.
    aguardo feed back

    Moise Abdul Jr. Manganão
  36. olá equipe comprei tres sensores com vcs e estou com dificuldade de obter respostas em saídas diferentes no Arduíno uno , soando buzzers de diferentes notas para saber quando é direita e esquerda será que poderiam me ajudar com esta questão da linguagem estou tentando com a biblioteca new ping mais sem sucesso?

    Josirlei Alves Ramos
  37. Eu tentei fazer usando um ethernet shild ligado ao um Arduino Uno, mais não consigo pingar e nem a página abre. o que pode ser?

    1. Bom dia Guilherme,

      Verifique as configurações de rede. Se possível, faça um teste ligando diretamente o cabo (de rede) do computador para o Arduino, assim vc elimina eventuais problemas com roteadores que possam afetar a comunicação.

      Abraço.

      Adilson – Equipe FILIPEFLOP

      1. Fiz exatamente como vc falo, mas continua dando o mesmo erro, não ligando as luzes da ethernet.

        1. Bom dia Guilherme,

          Aparentemente há algum problema com a sua placa. Quando é ligado o cabo de rede, as luzes da ethernet já começam a piscar.

          Adilson – Equipe FILIPEFLOP

          1. Pois é, e foi na FilipFlop que comprei ela, como ffaço para trocar?

            Guilherme Barbosa
  38. Boa tarde.

    Esse shield w5100, suporta PoE? Caso seja possivel utilizar PoE com ele, eu consigo alimentar o shield e a placa arduino apenas com a energia do cabo de rede?

    1. Boa tarde Kelson,

      Não suporta POE.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  39. É possível obter o IP via DHCP?

    1. Boa tarde Leandro,

      É possível sim, dê uma olhada neste link: http://forum.wiring.co/index.php?topic=87.0

      Abraço.

      Adilson – Equipe FILIPEFLOP

  40. Boa Tarde, acabei de adquirir meu shield ethernet e estranhei que no lugar do pino Vin, veio escrito 9v… Independente da tensao de alimentação dele, sempre vou ter 9v nesse pino?

  41. Muito obrigado! Aqui funfou legal… agora começar a incrementar este código! Muda muito para que em vez de eu usar o navegador usar um sistema supervisorio SCADA?

  42. Amigo Felipe, você fez testes sobre a estabilidade deste shield ethernet? comigo uma semana ligado, um dia fui testar e o mesmo estava totalmente travado sendo necessário reiniciar o arduino .. pode nos falar sobre sua experiência com shiel ethernet, qual vc recomenda para ser utilizados em projetos e não apenas em testes de bancada?

    1. Boa tarde Elizeu,

      O problema pode não estar necessariamente no Ethernet Shield, mas talvez no Arduino ou até mesmo na fonte de alimentação (picos de tensão).

      Abraço

      Adilson – Equipe FILIPEFLOP

  43. Eu gostaria de saber aonde eu devo inserir os comandos HTML na programação pra poder montar o site.

    1. Bom dia Ariel,

      Nesse exemplo do post o código HTML é colocado dentro do programa do Arduino.

      Abraço

      Adilson – Equipe FILIPEFLOP

  44. Olá! Não dá de abrir o site criado para monitorar o sensor com outro IP?

    abraço,

    Tiago

  45. Agradeço a informação, eu comprei uma placa Ethernet Shield W5100 e vários terminais do chip W5100 estão com terminais interligados com solda, no total existe 14 terminais 2 a 2 interligado, estou com receio de alimentar a placa e queimar o chip. gostaria da informação se isso é normal na placa Ethernet W5100.
    Agradeço muito a atenção.
    Marcus Del Rey.

    1. Boa tarde Marcus,

      Isso é normal, na própria foto do anúncio aparece essa interligação. Pode ligar sem problemas.

      Abraço

      Adilson – Equipe FILIPEFLOP

  46. boa noite Felipe, estou com um problema com uma determinada versão do ethernet shield WS 51000 – 14/10, percebi que as placas que eu utilizava anteriormente possui o número 14/16 ou 14/20 e funcionam perfeitamente, quando embarco o mesmo código utilizando a placa 14/10 o ethernet shield não funciona na rede.
    Gostaria de saber o que significa essa númeração (em cima do conector RJ 45) ?
    Se alguém passou por alguma situação parecida, agradeço a ajuda.

    Abraço,

    Steven

  47. Boa tarde!!
    Estou tentando fazer uma aplicação, mais sou novo com Arduino. Precisa comunicar o Arduino com Java web para gravar leituras rfid em um sistema, estou utilizando uno e Ethernet e rfid com tags. O sistema ja tem muitas coisas para gravar com as tags. só que não estou conseguindo comunicar.

  48. El programa no me compila me podrias ayudar

    1. Boa tarde Fabio,

      Qual erro ele está apresentando ?

      Adilson – Equipe FILIPEFLOP

    2. en el void loop el error de compilacion me lo da en cmMsec = ultrasonic. convert(microsec, Ultrasonic::CM);
      pero si lo borro o lo quito me compila pero no me sensa espero me ayude

      1. Buenos días,

        Parece que es un problema con la instalación de la biblioteca. Está utilizando la misma biblioteca se muestra en este artículo?

        ¡Saludos!

      2. si la misma la grabo en otro computador y me da el mismo error me señala el error
        que es: cmSec=ultrasoni.convert(microsec,Ultrasonic::CM); y mas abajo me dice
        class ultrasonic has no membre named “convert

        1. uso la mismo biblioteca que aparece en el articulo y no me funciona ,

  49. Salve Adilson,

    eu como tenho outros usuários na rede preciso de um pouco de segurança, tipo uma tela de login sabe, vc tem algum exemplo pra me passar como ficaria esse código ou onde entraria o script da tela de login?

    não precisarei colocar nada no meu roteador ou servidor né, vai ficar tudo dentro do arduino os códigos certo?

    existe alguma limitação ou capacidade de dados para inserir dentro do arduino, tipo, posso montar um script html e css com botões e login e etc pra ficar mais encorpado no caso de eu usar reles?

    obrigado desde ja mais uma vez meu caro!
    abraço!

    1. Bom dia,

      Eu não tenho nenhum post pronto sobre isso, mas já usei algo parecido com as informações guardadas em um banco de dados MySQL e as informações mostradas em uma página usando PHP. Nesse caso, as informações ficariam no seu servidor/banco de dados, e o Arduino iria apenas consultar essas informações.

      Abraço!

      Adilson – Equipe FILIPEFLOP

      1. Perfeito, era tudo que eu precisava!
        Muito obrigado mais uma vez..!

      2. boa tarde…
        Estou fazendo um trabalho de graduaçao e preciso de um prototipo, a turma resolveu usar um arduino UNO e sugeriu usar banco de dados do MySQL, tem um tutorial de como usar isso (interrogaçao)

        Preciso de uma ajuda pra concluir o projeto, sera bastante simples, preciso criar um banco de dados onde tennha alguns nomes e senhas de usuarios, onde cada usuario teria um tempo de 10 min para usar o determinado serviço, para isso preciso criar esse banco de usuarios no MySQL e linkar com o arduino, é aí que vem problema, somos leigos nesse assunto e buscando alguns foruns na rede, ficamos totalmente confusos, pode ajudar por favor (interrogaçao)

  50. Felipe preciso de uma ajuda sua , meu ethernet shield ao eu consultar o ip pelo cmd ele me fornece o seguinte ip
    Endereço de ipv4 configuração automática …169.254.93.234
    Mascara de sub-rede……………………………………….255.255.0.0
    gateway padrão………………………………………………..200.175.5.139

    Sendo assim eu não consigo configurar na mesma range do meu roteador , como eu faço para alterar esse ip ?

    1. Bom dia Renato,

      Esse provavelmente é o IP do seu computador, correto ? Os dois tem que estar na mesma rede para funcionar. Você ligou o shield direto no computador ou está usando o roteador?

      Abraço

      Adilson – Equipe FILIPEFLOP

      1. Bom dia ,
        Como eu faço para alterar o IP do ethernet Shield Filipe ? Tem como mudar ?

        1. Bom dia Renato,

          Sim, você pode mudar as informações de IP, Gateway e máscara de rede nas linhas 20, 21 e 22 do programa apresentado.

          Abraço

          Adilson – Equipe FILIPEFLOP

        2. Eu intendi u que voce quis dizer , gostaria de saber se o ip do próprio ethernet shield eu consigo mudar ? pois o ip do meu roteador é diferente do mesmo range do ethernet shield .

          1. Boa tarde,

            Sim, é só mudar essas informações nas linhas 20, 21 e 22 do programa e colocar de acordo com a faixa de IP do seu roteador.

            Abraço.

            Adilson – Equipe FILIPEFLOP

  51. Ola amigos, compre recentemente este shield, estou efetuando testes, e hora funciona, a as vezes o browser fica aguardando e não há resposta, trabalho com redes e outros dispositivos hosts, porem esse shield é instável ou o meu pode estar com erros?

  52. Olá Pessoal
    Gostaria de uma ajuda de vocês, eu configurei meu arduino uno e placa de rede tudo funcinou perfeitamente, porem quando ligo a placa de rede em um switch com VLAN (Virtual Local Area Network) ele não funciona!!!
    Observei o seguintes problemas:
    1. O switch não aprende o endereço MAC da placa de rede do arduino (teste feito com switch DELL e CISCO)
    2. Mesmo cadastrando o mac static no switch não consegui comunicação
    3. Se deixo o meu pc e arduino na mesmo VLAN funciona
    A minha duvida é se está faltando alguma biblioteca ou se faltou habilitar algum parâmetro?
    OBS. A configuração usada é a mesma de exemplo daqui do site.
    Abraço.

    1. Bom dia Barbosa,

      Me parece mais uma questão de configuração da sua rede/roteador do que os parâmetros da placa no Arduino. De qualquer forma, tente utilizar todos os parâmetros de IP disponíveis na configuração do shield: endereço IP, máscara de rede e default gateway.

      Abraço

      Adilson – Equipe FILIPEFLOOP

      1. bom dia Adilson.

        Eu conseguir fazer a comunicação cadastrando o MAC da placa de rede na interface do switch que ele está ligado, pelo comportamento deu a entender que o MAC não enviado ou algum diferença no quadro de ethernet que não consegui colocar tag da VLAN, mas se tentar fazer a comunicação na mesma VLAN funciona tranquilo. vou ver se faço novos teste com captura de pacote e ver algo de diferente.
        qualquer novidade eu posto aqui a solução.

        Obrigado
        Abraço

  53. Boa noite, obrigado pela explicação , tenho uma dúvida … queria usar 4 sensores ultrassônicos, ao invés de eu mostrar a distãncia deles conforme a explicação, queria mostrar OCUPADO ou LIVRE para cada sensor ou aparecer uma bolinha vermelha para ocupado ou verde para livre. poderia me ajudar ???

    1. Bom dia Igor,

      Creio que você pode usar as informações deste post: http://www.arduinoecia.com.br/2013/12/controle-de-vagas-de-estacionamento-com.html

      Abraço

      Adilson – Equipe FILIPEFLOP

  54. Ola Filipe achei muito interessante, mas gostaria de uma ajuda sua preciso fazer um sensor de temperatura no arduino que comunique com o telegram , tipo que mande messagens para o telegram com a temperatura mas só quando essa passar o limite estipulado no arduino, obrigado

    1. estou com o mesmo projeto, gostaria de saber se obteve algum progresso.

  55. Ola tenho que fazer um tcc com essas função 1 alarme com sensor PIR, 1 motor servo simulando portão basculante 90°, 10 ledes para acender um comado de cada vez,1 motor DC simulando ventilador ,sensor LDR para acender 3 ledes quando escurece, É com Arduíno mega e Ethernet shield e rele alguém tem como me ajudar não manjo de arduíno?

  56. boa tarde
    pretendo ligar um motor através da pagina web. como poderei fazer?
    o projeto é semelhante mas em vez de ter o sensor tenho um motor

    José Pedro Cerqueira
    1. Boa tarde José,

      Creio que esse post vai te ajudar: http://blog.filipeflop.com/arduino/automacao-residencial-com-arduino-acenda-lampadas-pela-internet.html

      Abraço!

      Adilson – Equipe FILIPEFLOP

  57. Oi, meu nome é Fábio e gostaria de uma ajuda, tenho um certo conhecimento em arduino, não muito, estou tentando desenvolver um projeto pra faculdade, automação residencial, a principio gostaria de controlar as luzes de uma casa por andar, e por hora: acender por sensor de luminoside e/ou das 18:00 as 06:00.
    estive pensando em usar o controle das horas por modulo RTC DS1307, o que vcs poderiam me indicar?
    agradeço se puderem me indicar uma direção, estou sem saber por onde começar.

  58. Bom dia Filipe !!

    Como seria feito o cód no começo utilizando um sensor de força resistivo?
    Não estou conseguindo por ele ..

    Abraço !!!
    Yago Maia

  59. Olá Amigo,
    Fiz tudo conforme orientação acima porém deu um erro na compilação, segue abaixo:

    This report would have more information with
    “Show verbose output during compilation”
    enabled in File > Preferences.
    Arduino: 1.0.6 (Windows NT (unknown)), Board: “Arduino Mega (ATmega1280)”
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp: In member function ‘int EthernetClass::begin(uint8_t*, long unsigned int, long unsigned int)’:
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp:19: error: ‘class SPIClass’ has no member named ‘beginTransaction’
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp:19: error: ‘SPISettings’ was not declared in this scope
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp:22: error: ‘class SPIClass’ has no member named ‘endTransaction’
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp:30: error: ‘class SPIClass’ has no member named ‘beginTransaction’
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp:34: error: ‘class SPIClass’ has no member named ‘endTransaction’
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp: In member function ‘void EthernetClass::begin(uint8_t*, IPAddress, IPAddress, IPAddress, IPAddress)’:
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp:68: error: ‘class SPIClass’ has no member named ‘beginTransaction’
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp:68: error: ‘SPISettings’ was not declared in this scope
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp:73: error: ‘class SPIClass’ has no member named ‘endTransaction’
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp: In member function ‘int EthernetClass::maintain()’:
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp:89: error: ‘class SPIClass’ has no member named ‘beginTransaction’
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp:89: error: ‘SPISettings’ was not declared in this scope
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp:93: error: ‘class SPIClass’ has no member named ‘endTransaction’
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp: In member function ‘IPAddress EthernetClass::localIP()’:
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp:107: error: ‘class SPIClass’ has no member named ‘beginTransaction’
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp:107: error: ‘SPISettings’ was not declared in this scope
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp:109: error: ‘class SPIClass’ has no member named ‘endTransaction’
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp: In member function ‘IPAddress EthernetClass::subnetMask()’:
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp:116: error: ‘class SPIClass’ has no member named ‘beginTransaction’
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp:116: error: ‘SPISettings’ was not declared in this scope
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp:118: error: ‘class SPIClass’ has no member named ‘endTransaction’
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp: In member function ‘IPAddress EthernetClass::gatewayIP()’:
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp:125: error: ‘class SPIClass’ has no member named ‘beginTransaction’
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp:125: error: ‘SPISettings’ was not declared in this scope
    C:UsersvbandeiraDocumentsArduinolibrariesEthernetsrcEthernet.cpp:127: error: ‘class SPIClass’ has no member named ‘endTransaction’

    Você pode me ajudar??

    Abração

  60. Meu shield Ethernet funciona bem na rede local, isto é, consigo acessá-lo e obter/transmitir informações se meu celular estiver na minha rede wi-fi. Outrossim, qdo estou utilizando a rede 3G, não consigo acessar o shield. O 3G está funcionando bem, pois acesso a internet normalmente.
    A configuração da GVT é:

    Endereço de IP Local: 192.168.25.1
    Endereço de IP Público: 177.98.213.19
    Gateway Padrão: 179.184.126.83
    DNS primário: 200.175.5.139
    DNS secundário: 200.175.182.139

    usei no meu sketch o seguinte:

    IP: 192.168.25.36
    GATEWAY: 179.184.126.83
    SUBNET: 255.255.255.0

    Qdo coloco o IP público 177.98.213.xx, não funciona de forma alguma.

    O que devo fazer?

    1. aparentemente voce esta usando um ip errado como gateway, voce deve usar preferencialmente o ip do modem…

      e deve configurar o modem, para que quando voce solicite algo no ip externo em uma determinada porta, o modem redirecione para o ip do shield na porta configurada no shield.

      1. Para acessar o Arduino na internet, coloquei o IP público no sketch e no endereço no Safari do celular. Assim, consegui. Às vezes, precisei tentar algumas vezes.
        O problemq que surgiu, foi a GVT, às vezes, mudar o IP Público da minha rede, mas já estou tentando solucionar esse problema.
        Gnd abç.
        dionizio

    2. ola…
      Qual o roteador 3g você esta utilizando para acoplar com o w5100?

      Obrigado

  61. Filipe boa noite !!

    Filipe estou tentando conectar a minha shield w510 na ethernet, sem usar internet só que não consigo fazer a cominicação do IP, a programação passa certinho para a ARDUINO só que quando conecto no roteador da como limitado e quando entro com o IP que configurei o shield ele não abre nada. O que posso estar fazendo errado? tenho que configurar o roteador ou apenas conectar nas portas 11 ou 2 e fazer a conexão pelo PC mesmo?

  62. Pessoal, não estou conseguindo conectar o Shield a internet para usar o App “Blynk”. Pelas minhas pesquisas o endereço mac precisa ser exclusivo da shield, correto?
    Contudo ao usar esse endereço mac, a placa não é reconhecida. A configuração de IP, DNS estão em ordem.

    O que posso fazer para corrigir? Vocês recomendam outro mac address?
    Aguardo retorno.
    Abraço, Equipe FelipeFlop!

    1. **FilipeFlop =)

    2. Bom dia Irwin,

      Creio que o problema seja outro, já que dificilmente você terá na sua rede um MAC igual ao do Ethernet Shield. Você falou em conectar pela internet. Pela rede local está ok ?

      Abraço.

      Adilson – Equipe FILIPEFLOP

  63. Olá.
    tenho a necessidade de um (na verdade varios) dispositivo pequeno e barato que responda a pings em uma rede.
    minha pergunta é: se eu configurar esse shield com um arduino; colocando um ip/mask compativel com a rede; e depois ligar o shield sem o arduino e conecta-lo na rede; ele mantem armazenada a configuração de ip/mask para ficar respondendo ao ping?

    1. Bom dia Moura,

      Não fiz esse teste ainda, mas eu acho que no seu caso o mais adequado seria um módulo ESP8266. é pequeno, barato e consome pouquíssima energia.

      Abraço

      Adilson – Equipe FILIPEFLOP

    2. O Shield de rede é como uma placa de rede de um computador…. ele não funciona sozinho, é um acessório do ARDUINO.

      É no ARDUINO que fica gravado o programa, onde fica o processador… onde fica a fonte…. o shield, nada disso tem…

      depois de configurar o ip de um placa de rede no windows ou linux…. e voce tirar a placa do computador…. ela continua pingando…..?????

      1. Adilson:
        O modulo é wifi. preciso de um dispositivo que seja wired RJ45.

        Luiz:
        obrigado pela confirmação. minha duvida é se ele seria uma opção econômica para substituir o que é usado hoje. caso você não conheça, existe conversores ethernet específicos, que são placas inicialmente acessíveis somente com um software proprietário. através dele você configura um ip, mask e gate para a placa. dai e só manter ele alimentado que consegue pingar. o problema é que estas placas estão na faixa de R$400 cada. apesar de um arduino e um shield ser mais barato, o tamanho e complexidade da solução impactam.
        de todo modo obrigado a todos.

        1. Me explica direito o que você está precisando.

  64. Bom dia, gostaria de fazer uma central para monitorar dados de vários shield’s ao mesmo tempo. Alguém saberia se existe um software pronto ou alguma forma de fazer isso?

  65. Boa Noite,
    Muito bom o tutorial.

    Eu estou com um projeto para enviar para um Web server a IDde uma TAG RFID;
    Comprei um leitor MRfc 522 e falta agora um componente para conectar o arduino a internet.

    Tenho medo de comprar uma placa que use as mesma portas da leitora RFid, sabe me informar se a desse tutorial é adequada para a minha demanda?

    Obrigado desde já.

    1. Bom dia Victor,

      Você pode tentar utilizar o módulo ESP8266 no seu projeto, já que ele se comunica com o Arduino via serial.

      Abraço!

      Adilson – Equipe FILIPEFLOP

  66. olá, porque é necessário fazer a alteração do ultimo numero do ip adress?

    1. Boa tarde Heitor,

      Essa alteração deve ser feita para evitar conflitos de endereço na rede. Cada dispositivo da rede deve ter um endereço único.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  67. Bom Dia

    Eu fiz tudo como diz no post, alterei o ultimo digito do IP para 88, não tenho equipamento a usar esse IP, passo o programa para o Arduíno e a placa de ethernet pisca as luzes verdes como se estivesse a comunicar, no entanto no browser diz que não é possível apresentar página.
    gostaria de uma ajuda?

  68. Estou tentando conectar meu shield w510 ao roteador d’link dir 615 mas quando do um ping da “Host de destino inacessível.” o que tenho que fazer para conectar.

    Quando conecto no meu outro roteador, d’link dir 600, ele conecta, só que esse roteador esta com defeito !!!! mas isso me fez pensar que seja alguma configuração no dir 615.

    Anderson Silva de Albuquerque
    1. Estou com o mesmo problema que o seu, Anderson.
      Conseguiu resolver?

      João Paulo Lemos Escola
  69. Seria possível utilizar o Arduino para ler o estado de um push button e enviar esse resultado para um servidor Web Dedicado através do Módulo Ethernet?

    1. Boa tarde Felipe,

      Por favor dê uma olhada neste link: http://www.arduinoecia.com.br/2013/06/ethernet-shield-wiznet-w5100-parte-2.html

      Abraço!

      Adilson – Equipe FILIPEFLOP

  70. boa noite, tenho um arduino com wifi e queria aceder a pagina de configuraçao do prorpio arduino, ja tentei por ip e por cabo e nao deixa parece que bloqueai o acesso ao pagina dele, oque posso fazer? para voltar a entrar na pagina web do prorpio arduino

    1. Bom dia Ricardo,

      Qual placa Arduino você está usando e a qual página de configuração você está tentando acessar ?

      Abraço

      Adilson – Equipe FILIPEFLOP

      1. boas adilson, arduino yun e quero aceder a pagina para configurar o wifi do arduino e ja tentei com o ip de origem dele nao da, estou a ser bloqueado por ele nao deixa entrar

        1. Bom dia Ricardo,

          Infelizmente não temos esse modelo de Arduino para testar. Talvez os outros leitores do blog consigam ajudar.

          Abraço.

          Adilson – Equipe FILIPEFLOP

  71. Ola amigo!!! parabéns eu esto aprendendo muito .
    eu estou começando agora no mundo fantástico do arduino
    espero aprender mais e mais com você ! . grato

  72. BOA NOITE!!! é possivel colocar o HTML no cartão de memória no W5100

  73. BOA NOITE DE NOVO ESTOU TENTANDO ABRIR UMA PORTA PARA ACESSO ESTERNO MAS NÃO ESTOU CONSEGUINDO SEGUNDO INFORMAÇÕES LIDA NA INTERNET É QUE OS PROVEDORES (VIVO) OU (NET) NÃO ESTÃO DEIXANDO ABRIR NENHUMA PORTA SE PUDER DAR UMA AJUDA EU AGRADECERIA AS PROGRAMAÇÃO NO MEU ROTEADOR JÁ REALIZEI SÓ QUE NÃO ABRE A PORTA DESEJADA QUE ESTOU PROGRAMANDO. DESDE JÁ AGRADEÇO.

    1. Boa noite. Antes de tudo, verifique se localmente você acessa. Se acessar, então está tudo certo com sua configuração do arduino. Após isso, você precisa configurar um NAT no seu modem.

      Geralmente os modem tem um campo NAT, onde vc especifica a porta de entrada (interface wan do roteador), a porta de entrada (porta que você deseja oferecer ao mundo externo) e a porta redirecionada (a que responde na sua rede local).

      Depois entre no site meuip e verifique seu ip válido. Feito isso, tente acessar de uma rede diferente da sua.

      Tente colocar uma porta 8080, uma vez que o modem também utiliza a porta oitenta para sua interface de configuração.

      Feito isso, se funcionar, seria legal vc criar uma conta no no-ip e instalar um cliente de dns dinamico em algu ma máquina da sua rede interna. Assim, vc não precisa ficar verificando o ip toda vez.

      Espero ter ajudado.

      1. SÓ PARA SABER DEU CERTO – NO ROTEADOR CONFIGUREI O IP EXTERNO 172……. PARA 192.168.0.99 E A PORTA 57000 PARA 80 ERA AQUI QUE ESTAVA O ERRO NÃO ESTA COLOCANDO A PORTA DO ARDUINO ESTAVA REPETINDO A PORTA EXTERNA SÓ DEMOREI 2 MESES PARA DESCOBRIR ISSO. MAS UM DETALHE O MEU IP EXTERNO DA NET JÁ FAZ 15 DIAS QUE NÃO MUDA – MAS VOU TENTAR ABIR UMA CONTA NO (((NO-IP.ORG))) OBRIGADO!!!

    2. BOA TARDE
      DESDE JÁ AGRADEÇO INTERNAMENTE ESTA TUDO FUNCIONANDO JÁ TESTEI EM CASA É NET E TAMBÉM JÁ TESTEI NO MEU ESCRITÓRIO É VIVO – TAMBÉM JÁ DESCOBRI O MEU IP PELO MEU IP.COM.BR.
      A PRINCIPIO NO MEU ROTEADOR CONFIGUREI A PORTA 8880.
      AGORA COMO PROGRAMAR O NAT NO MEU MODEM NÃO SEI COMO CONFIGURAR O MEU MODEM. COMO EU DESCUBRO O IP DO MODEM DESDE JÁ OBRIGADO MAIS UMA VEZ.

  74. meu ethernet shield com o mega funciona bleleza na minha rede, porém não inicializa o cartão MicroSD.
    Script:

    #include
    #include
    #include

    byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
    IPAddress ip(192,168,1,199);
    IPAddress gateway(192,168,1,2);
    IPAddress subnet(255,255,255,0);

    EthernetServer server(8000);

    File webFile;

    #define REQ_BUF_SZ 40
    char HTTP_req[REQ_BUF_SZ] = { 0 };
    char req_index = 0;

    const int carga1 = 9;
    int flag1 = 0;

    void setup() {
    pinMode(53, OUTPUT);

    Ethernet.begin(mac, ip, gateway, subnet);
    server.begin();

    Serial.begin(9600);

    Serial.println(“Inicializando cartao MicroSD…”);
    if (!SD.begin(4)) {
    Serial.println(“ERRO – Inicializacao do cartao falhou!”);
    return;
    }
    Serial.println(“SUCESSO – Cartao MicroSD inicializado.”);

    if (!SD.exists(“index.htm”)) {
    Serial.println(“ERRO – index.htm nao foi encontrado!”);
    return;
    }
    Serial.println(“SUCESSO – index.htm encontrado.”);
    }

    void loop() {
    EthernetClient client = server.available();

    if (client) {
    boolean currentLineIsBlank = true;
    while (client.connected()) {
    if (client.available()) {

    char c = client.read();

    if (req_index < (REQ_BUF_SZ – 1)) {
    HTTP_req[req_index] = c;
    req_index++;
    }

    if (c == 'n' && currentLineIsBlank) {
    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html");
    client.println("Connection: close");
    client.println();

    if (StrContains(HTTP_req, "ajax_carga1")) {
    LerDados(client);
    }

    if (StrContains(HTTP_req, "ajax_LerDados")) {
    SetCarga1(client);
    }
    else {

    webFile = SD.open("index.htm");
    if (webFile) {
    while (webFile.available()) {
    client.write(webFile.read());
    }
    webFile.close();
    }
    }
    Serial.println(HTTP_req);
    req_index = 0;
    strClear(HTTP_req, REQ_BUF_SZ);
    break;
    }

    if (c == 'n') {
    currentLineIsBlank = true;
    }
    else if (c != 'r') {
    currentLineIsBlank = false;
    }
    }
    }

    delay(1);

    client.stop();
    }
    }

    void SetCarga1(EthernetClient novoCliente) {
    if (flag1 = 0){
    digitalWrite(carga1, HIGH);
    flag1 = 1;
    }
    else{
    digitalWrite(carga1, LOW);
    flag1 = 0;
    }
    }

    void LerDados(EthernetClient novoCliente) {
    novoCliente.print(flag1);

    novoCliente.print("|");
    }

    char strClear(char *str, char length){
    for(int i = 0; i len) {
    return 0;
    }

    while (index < len) {
    if (str[index] == sfind[found]) {
    found++;
    if (strlen(sfind) == found) {
    return 1;
    }
    }
    else {
    found = 0;
    }
    index++;
    }
    return 0;
    }

    Me ajudem por favor, já estou quase desistindo do arduíno 🙁

    Douglas Raetê Mancini Sanches
  75. como faço para comandar via rede não so monitorar usado o websever da placa? vi o outro tutorial de altomação residencial, mas não sei mexer no css e sei pouco de programação, faço mais é adaptação de codigos.
    é preciso usar o css para colocar m botão na pagina?
    alguem tem algum tutorial que possar me encaminhar para eu pegar uma base disso?

  76. Estou tendo problema com a Library ICMP_ping. Alguem pode me ajudar?

    Arduino: 1.6.9 (Windows 10), Placa:”Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)”

    C:Program Files (x86)Arduinolibrariesicmp_pingICMPPing.cpp: In member function ‘void ICMPPing::receiveEchoReply(const ICMPEcho&, ICMPEchoReply&)’:

    C:Program Files (x86)Arduinolibrariesicmp_pingICMPPing.cpp:173:83: error: invalid conversion from ‘uint8_t* {aka unsigned char*}’ to ‘uint16_t {aka unsigned int}’ [-fpermissive]

    W5100.read_data(_socket, (uint8_t *)buffer, ipHeader, sizeof(ipHeader));

    ^

    In file included from C:Program Files (x86)Arduinolibrariesicmp_pingICMPPing.h:12:0,

    from C:Program Files (x86)Arduinolibrariesicmp_pingICMPPing.cpp:10:

    C:Program Files (x86)ArduinolibrariesEthernetsrc/utility/w5100.h:142:8: error: initializing argument 2 of ‘void W5100Class::read_data(SOCKET, uint16_t, volatile uint8_t*, uint16_t)’ [-fpermissive]

    void read_data(SOCKET s, volatile uint16_t src, volatile uint8_t * dst, uint16_t len);

    ^

    C:Program Files (x86)Arduinolibrariesicmp_pingICMPPing.cpp:181:76: error: invalid conversion from ‘uint8_t* {aka unsigned char*}’ to ‘uint16_t {aka unsigned int}’ [-fpermissive]

    W5100.read_data(_socket, (uint8_t *)buffer, serialized, dataLen);

    ^

    In file included from C:Program Files (x86)Arduinolibrariesicmp_pingICMPPing.h:12:0,

    from C:Program Files (x86)Arduinolibrariesicmp_pingICMPPing.cpp:10:

    C:Program Files (x86)ArduinolibrariesEthernetsrc/utility/w5100.h:142:8: error: initializing argument 2 of ‘void W5100Class::read_data(SOCKET, uint16_t, volatile uint8_t*, uint16_t)’ [-fpermissive]

    void read_data(SOCKET s, volatile uint16_t src, volatile uint8_t * dst, uint16_t len);

    ^

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

    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”

  77. o link para a biblioteca está offline?

    1. Não, eu baixei a biblioteca, quando mando verificar o código já da essa msg abaixo.

    2. Bom dia Guilherme,

      Não, o link está ok.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  78. Filipe, estava penando para encontrar algum vídeo que me ajudasse com este assunto, vi alguns muitos extensos e esse em 1 minuto já conseguiu me ajudar bastante! Muito obrigado

    A pergunta é se é possível adicionar mais de 1 sensor ultrassonico nesse esquema?

    Outra coisa, posso usar outros sensores (como por exemplo o LDR) também?

    1. Boa noite Bruno,

      Sim, teoricamente você pode usar qualquer tipo de sensor, e é possível adicionar mais um sensor ultrassônico ou um ldr.

      Abraço!

      Adilson – Equipe FILIPEFLOP

  79. A arquitetura deste projeto seria algo assim: http://s32.postimg.org/pnqwg1nsl/arquitetura.png ?

  80. Boa tarde,

    quais portas o Ethernet Shield utiliza para que eu nao coloque em conflito com outros componentes?

  81. Estou tentando instalar o Shield mas está dando o erro abaixo quando carreguei o programa indicado na sua página.
    Pode me ajudar?

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

    C:UsersOSVALDODocumentsArduinoPrograma_ShieldPrograma_Shield.ino:7:24: fatal error: Ultrasonic.h: No such file or directory

    #include

    ^

    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”

    1. você tem que instalar a biblioteca Ultrasonic.h…….

      o erro é simples, básico e esta bem explicado.. “No such file or directory”…

      O programa usa a biblioteca Ultrasonic, que você pode baixar aqui. Descompacte a pasta Ultrasonic e coloque-a dentro da pasta LIBRARIES da IDE do Arduino. —> https://github.com/filipeflop/Ultrasonic

    2. Bom dia Osvaldo,

      Por favor verifique a instalação da biblioteca Ultrasonic, esse erro é apresentado quando a biblioteca não está sendo encontrada pela IDE.

      Abraço!

      Adilson – Equipe FILIPEFLOP

  82. Bom dia,

    Como faço para localizar o IP do meu shield arduino? Tentei fazer uma busca atraves do nmap antes e depois de colocar o arduino na rede, mas ele NUNCA aparece. Apessar disso os LED de PWR, Link, 100M e FULLD estão acessos sem problema.

    Fico no aguardo 😉

    1. VOCE QUER O SEU IP OU O MAC SE FOR IP É VOCE QUEM ESCOLHE PARA VERIFICAR UM DISPONÍVEL DIGITA IPCONFIQ EU ESCOLHI O 192.168.0.99 DEU CERTO E PORTA 80
      VEJA O PROGRAMA DO FILIPEFLOP QUE FUNCIONA – LUIZ – BOA SORTE VAI PRECISAR

    2. Estou procurando o IP do arduino especificamente porque não consigo definir um IP qualquer que seja diferente dos utilizados na rede.

  83. Boa tarde, para eu redirecionar a porta, tenho que colocar o endereço externo da minha máquina ou da placa ethernet shield, não estou conseguindo redirecionar ? meu roteador é D-Link dir600

    1. É COMPLICADO MESMO…. PRIMEIRO DESCUBRA O SEU IP EXPERTO, SEGUNDO CRIE UMA PORTA QUALQUER 57678 ( IP EXTERNO/57678) NO SEU ROTEADOR DEVE COLOCAR ESTA PORTA ESTERNA 57678 QUE VAI DIRECIONAR PARA O SEU IP INTERNO 192.XXX.XXX.99 MAIS A PORTA QUE VOCE PROGRAMOU NO ARDUINO NO MEU CASO FOI A (((80)))) AGORA É UMA PROGRAMAÇÃO DO SEU ROTEADOR CADA ROTEADOR É DE UM MODO ESTA PROGRAMAÇÃO; PARA TESTE TUDO TEM QUE ESTA LIGADO INCLUSIVE O ARDUINO JÁ FUNCIONANDO NA REDE INTERNA.

      LUIZ BENEDITO CYPRIANO
  84. Bom dia, tentei usar esse programa, mas esta me mandando o seguinte erro:
    Erro: exit status 1
    Erro compilando para a placa Arduino/Genuino Uno

  85. Boa noite, utilizei esse exemplo há algumas semanas e funcionou normalmente. Hoje eu fui tentar de novo e parou de funcionar, tentei com o apache ligado no xampp e com ele desligado mas a página não carrega. O código não apresenta nenhum erro, só não consigo acessar pagina no navegador

  86. Eu comprei um Shield desse
    estou usando no Mega sem problemas e sem adaptações com cabos externos.

    Porém preciso saber quais pinos (portas) que ele ocupa no Mega, pois vou precisar adicionar mais um shield sobreposto e talvez tenha que reconfigurar a biblioteca de um deles.

    Obrigado desde já

  87. É possivel alimentar o Arduino através dessa placa com um PoE?
    Se sim, qual a voltagem e amperagem ideal?

    Samuel Henrique de Souza Silva
  88. Boa noite! É possível usar 2 shield juntos? preciso do ethernet e do motor shield L293, tem como encaixar o ethernet no arduino mega e o motor shield no ethernet e usa-los?

  89. Não consigo colocar shield ethernet Wiznet na minha rede
    Não consigo ping.
    Consigo ping ligando cabo de rede direto no pc, mas com o roteador não. Testei o programa deste tutorial e o webserver, acontece a mesma coisa.
    Nos dois programas mantive o MAC Adress, gateway e máscara, só mudei IP para 192.168.25.200.

    Meu roteador é GVT PowerBox
    IP do meu roteador 192.168.25.1

    1. Bom dia, o mac address do arduino não pode ser igual ao do computador.

    2. É COMPLICADO MESMO…. PRIMEIRO DESCUBRA O SEU IP EXPERTO, SEGUNDO CRIE UMA PORTA QUALQUER 57678 ( IP EXTERNO/57678) NO SEU ROTEADOR DEVE COLOCAR ESTA PORTA ESTERNA 57678 QUE VAI DIRECIONAR PARA O SEU IP INTERNO 192.XXX.XXX.99 MAIS A PORTA QUE VOCE PROGRAMOU NO ARDUINO NO MEU CASO FOI A (((80)))) AGORA É UMA PROGRAMAÇÃO DO SEU ROTEADOR CADA ROTEADOR É DE UM MODO ESTA PROGRAMAÇÃO; PARA TESTE TUDO TEM QUE ESTA LIGADO INCLUSIVE O ARDUINO JÁ FUNCIONANDO NA REDE INTERNA.

    3. Acho que o Luiz Cypriano, confundiu ainda mais você..

      No caso do teste em sua rede interna o roteador nada mais é que um HUB.. uma ligação entre o PC e o Arduino, nada tem haver o ip eXterno ou configuração do roteador ou portas do roteador.

      A sua configuração deve estar mais ou menos assim no seu programa:

      byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //mac do arduino
      IPAddress ip(192,168,25,200); //Define o endereco IP
      IPAddress gateway(192,168,25,1); //Define o gateway
      IPAddress subnet(255, 255, 255, 0); //Define a máscara de rede

      De uma olhada na sua “subnet” verifique se é 255.255.255.0 ou 255.255.0.0, e faça as alterações pertinentes.

      Teste os cabos usados tanto do PC para o Modem e do Arduino para o Modem…
      ping do PC para o modem e depois do PC para o arduino… se os 2 estiverem ligados e os 2 cabos testados, não tem erro. vai pingar….

      Qualquer coisa posta o seu código e o resultado do ipconfig /all que lhe ajudo melhor.

  90. Boa noite galera,
    estou tendo problemas para acessar minha página na rede interna,
    o ip que eu coloco esta livre, já chequei através do modem
    *byte ip[] = { 192, 168, 0, 30};
    ou, como já tentei também
    *IPAddress ip( 192,168, 0, 30);
    *IPAddress gateway( 192, 168, 0, 1);
    *IPAddress subnet( 255, 255, 255, 0);
    Só que quando vou monitorar pela porta 9600 através dos comandos
    *Serial.begin(9600);
    *Serial.print(“server is at “);
    *Serial.println(Ethernet.localIP());
    ele apresenta um ip completamente diferente do que eu configurei, no caso, “server is at 223.171.255.253”

    Alguém pode dar uma força?

  91. oi pessoal preciso de ajuda para configurar meu roteador d link dir 600.
    já olhei vários videos na net mas ainda não senti firmeza nas informações que obtive.
    na rede interna aqui de casa consegui fazer funcionar meu w5100 liga e desliga lampada
    o problema esta no abrir porta no roteador para controlar de outra rede.
    por favor me ajudem roberto

    1. VEJA O MEU COMENTÁRIO ABAIXO

      LUIZ BENEDITO CYPRIANO
  92. Seria possível fazer algo parecido com sensor LDR ou sensor Infravermelho?

  93. ola galera, preciso comunicar minha Ethernet shield w5100 com meu arduino mega 2560 de forma que eu consiga manipular variaveis especificas dentro do meu arduino pelo android, ou pelo computador o que estiver mais facil, como posso fazer isso?

    Fabricio Henrique de souza
  94. Fiz um projeto bem parecido de um contador de acesso com sensor IR e usando o seu código como base, só conseguir acesso a página através do IP depois de liberar no firewall do windows 10

  95. Como fazer para verificar a conexão?

  96. Muito legal , eu sei que tem 2 alternativas de abrir o codigo html, direto pelo codigo do arduino ou também passando um arquivo.html pra dentro de um micro sd, gostaria de saber se é possivel usar um site que esteja em um servidor meu e com ele acessar o arduino

    1. digamos que teria uma 3a alternativa, onde você usa o site remoto, como você quer fazer, e comunica com o arduino através de webservice.

      1. e como seria feito isso? pra comunicar com o arduino e o site

          1. Muito legal mesmo, mas nesse link ele não está usando conexão com um servidor estou querendo saber isso.

            Thiago Dantas Soares
    2. Dá uma lida em todo o exemplo.. coloca pra rodar.. vai ver que sim.. ele usa o celular ou o computador como servidor..

      mas se você esta procurando mais mastigado.. de como hospedar em um servidor html e fazer rodar… realmente, não é o link…

  97. Este shield tem um defeito de fabricação (pelo menos o que eu recebi). Ele funciona perfeitamente conectado ao computador, direto. Se por acaso utilizar um swith um pouco mais moderno (os jurassicos funcionam), ele já não comunica mais. Essa placa tem um resistor de 510 Ohm (511) na conexão do cabo de rede ao invés do especificado no datasheet (49.9 Ohm). Então muitos switches não conseguem se comunicar devido a impedância.

    1. Bom dia Marcel!
      Achou alguma maneira de resolver isso ou não tem o que fazer mesmo? Estive olhando minha shield e também tem um resistor 511 na entrada da porta lan.

    2. Olha isso Marcel
      http://imgur.com/a/JrPFD
      Segundo o cara funcionou, ele fez somente a troca dos resistores, peguei essa informação direto do fórum do arduino.
      http://forum.arduino.cc/index.php?topic=351477.15

  98. Boa tarde, gostaria de saber se e possivel colocar 2 shield de rede no mesmo arduino e ficar em brigde pois quero entrar e sair com a rede sobre ele.

  99. Olá… Comprei o Arduino Shield e a placa mega, mas eu estou tendo um problema sério, não consigo efetuar gravação no MicroSD de maneira alguma. Será que vocês poderiam me dar uma ajuda?

  100. Como faço para guardar esses valores do sensor em um banco de dados ?????

    1. Desenvolva um web service REST que faça isso para você, é a maneira mais simples na minha opinião.

    2. Opa amigo, você pode desenvolver para armazenar via SDCard..

  101. Boa tarde,
    gostaria de saber se tem algum tutorial que me ajude a acessar o Arduíno por rede externa.

    Conectei ele no roteador e quero acessa-lo. Pelo meu not, que esta na rede cabeada.

    Como faço?

    Tentei o no ip, mas falaram que preciso do ip estático?

    Stella Azevedo Marques
    1. Olá, se vc quer acessar ele de uma rede externa vc precisa de um IP estático ou de um dns que grave o seu ip, dyndns é uma opção, lá vc configura um host e faz um link com o seu ip externo atual, baixa um aplicativo no computador q vai de tempos em tempos sincronizar o seu ip com o dyndns. Ai vc consegue acessar remotamente através desse ip

      1. Obrigada pela resposta. Você poderia me indicar esse programa que faz a sincronização do meu ip com o no dydns? vc sabe me informar se o Dydns tem versão grátis?
        Desde já, obrigada.

        Stella Azevedo Marques
  102. Amigo, vc pode me ajudar a adaptar o código pois eu preciso comunicar com outro arduino de modo que quando o estado da porta de”entrada” mudar o segundo arduino recebe o comando e muda o estado da porta tbm.

    ou seja

    ao inves de mostrar o estado da porta via browser ele manda esta informação para outro arduino.

    os dois arduinos estarao com ethernet shield e a comunicação sera via rede ethernet.

    obrigado

  103. Biblioteca não está mais disponível para download, atualizar url. Obg

  104. Bom dia, comprei a alguns dias a shield ethernet pelo site, quando conecto a shield em meu arduino ao alimentar o arduino via cabo usb o mesmo não liga assim como não da sinal na shield ao conectar o cabo rj45, outro teste realizado foi retirar a shield do arduino e testar o arduino ligando no cabo usb e o mesmo ligou normarmente e gravou o codigo acima.
    O que poderia fazer a mais como teste?

    1. Opa, amigo
      qual é a fonte que você está do adpator para ligar USB x Energia ??
      ligar somente o arduino não funciona ??
      qual é a versão do seu arduino ?? ( o ethernet funciona com UNO eo MEGA )
      abraço

  105. Bom dia, sabe me dizer qual é o limite do cartão Micro-SD que o shield suporta? até quantos GB?
    Desde já obrigado.

    Carlos Vinícius Ferrareze
    1. Amigão, eu utilizo um SDCard de 4GB… porém a rotina que eu faço … sempre apago!

  106. Olá estou desenvolvendo aquele projeto “CONTROLE DE ACESSO RFID + ARDUINO” Alguem sabe como utilizo o mesmo só que com Ethernet Shield ?

    1. Amigão, não entendi … Seja mais especifico na sua dúvida
      Abraço!

  107. Bom dia ao utilizar o shield no arduino, perco alguma GPIO?

    1. Olá Vanderlei,

      Perde algumas apenas. Os pinos de interface SPI.

      Veja no seguinte link uma tabela mostrando a relação de pinos de alguns shields mais comuns para Arduino:
      https://playground.arduino.cc/Main/ShieldPinUsage

      Giovanni Bauermeister
  108. Gostaria de saber como faço para criar a pagina web que sera usada pra comunicar com a ethernet shield.

    1. Olá Henrique.
      Analisando o código você encontra as linhas que geram a página Web (linhas 60 até 81).
      Essas linhas você pode customizar de acordo com suas necessidades.

      Giovanni Bauermeister

Deixe uma resposta

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