Arduino – Servidor Web [Problemas e Soluções]

Como comentei no post anterior chegou o meu Arduino Ethernet Shield.

Especificações:

http://arduino.cc/en/Main/ArduinoEthernetShield

O meu:

Como já comprei direto de um revendedor da Arduino, no caso foi meu Arduino UNO, este eu não adquiri deles e sim pelo Ebay como comentei no post anterior, pois o deles acompanhar um slot de SD Card e não me interessava integrado, tanto que comprei também o Modulo SD Card mas este ainda não veio.

Até ae tudo bem.

Em seguida integrei Arduino Ethernet Shield ao Arduino UNO e conectei a USB no UNO e o cabo de rede no Ethernet Shield, beleza nda de fumaça ou faísca :) *brincadeira. Até ae como disse estava tudo de vento em poupa.

Maravilha não? Próximo passo abrir a IDE do Arduino e abrir o exemplo do Ethernet > Web Server que eu abri diversas vezes para ver o código-fonte, finalmente iria abrir e por em pratica.

No caso mudei apenas o IP, o default é 192.168.1.177 mudei para 192.168.2.10, o resto deixei como default apenas para ter o prazer de ver o “bichinho” funcionando, ae verifiquei como na imagem acima para ver erro de sintaxe mas como era default sabia que não iria ter problema e dei um Upload para o Arduino.

Ae veio da surpresa depois de 15 segundos.

Pois é, ele não respondeu a requisições ICMP (Ping), nem abriu via Web, pensei em trezentas mil coisas, como:

  • Meu Firewall barrando
  • Cabo de Rede com problema
  • Fui enganado no Ebay (vendeu algo com problema)
  • Fiz burrada na configuração
  • Não é assim que integra Arduino UNO + Arduino Ethernet Shield

Sem contar que refiz, revisei, e testei diversos outros códigos da internet e nada, pensei no MAC Address, que aquele não seria o correto que eu deveria encontrar e usar o dele, mas não veio nada identificando isso, até que comecei e pesquisar e descobri algumas coisas.

  • Esse “não” é o Ethernet Shield do site
  • Nem mesmo é o mesmo controlador ethernet
  • E não precisa de MAC

Como descobri isso? Lendo este datasheet do controlador ethernet que vem nele o ENC28J60 da Microship.

http://ww1.microchip.com/downloads/en/devicedoc/39662a.pdf

Sendo que o Ethernet Shield do site oficial o controlador é o WIZnet iEthernet W5100, que é o que esta no Example > Web Server da IDE do Arduino.

Solução

Ae comecei a pesquisar sobre como implementar um código para o Ethernet Shield usando ENC28J60, e encontrei a solução de todos os problemas, apesar que não achei quase nada em portugues, muito menos nos foruns daqui, por isso escrevi este artigo.

Faça download do arquivo abaixo, que contem o ETHER_28J60.h

https://www.dropbox.com/sh/7n6b17hj6fcoc4t/j9Bnj9NVkg/ethershield_v1.1_for_arduino_v1.0.zip

Descompacte e copie a pasta ETHER_28J60 para a pasta libraries da IDE do Arduino no meu caso foi C:\arduino-1.0\arduino-1.0\libraries.

Em seguida abra a IDE e carregue o exemplo abaixo:

Um exemplo irá ser carregado, note que agora temos uma biblioteca nova a ETHER_28J60.h, essa foi toda a diferença, bom será criado um exemplo semelhante ao que esta abaixo, coloquei alguns comentários para facilitar, mudei o IP e a mensagem que irá surgir quando entrar com o IP via web.

Verifiquei as configurações esta tudo ok, vamos vamos realizar o upload e acompanhar se irá responder ao Ping.

Agora vamos ver se o navegador abre nossa aplicação web.

Abra o Mozilla Firefox e digite 192.168.2.10, este é meu IP digite o que você usar, e como no meu exemplo, retornou a seguinte:

Código-fonte Servidor Web Arduino utilizando ENC28J60 da Microship:

https://www.dropbox.com/sh/7n6b17hj6fcoc4t/4SJHsJGt6q/CodigoServerWebENC28J60.ino

Espero ter ajudado, pois foi algo que não achei tão documentado ainda, duvida ou sugestões entre em contato através do meu e-mail.

Até a próxima!

Share Button

CC BY-NC-SA 4.0 Arduino – Servidor Web [Problemas e Soluções] by Cleiton Bueno is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.