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!
Arduino – Servidor Web [Problemas e Soluções] by Cleiton Bueno is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.