Pessoal, boa tarde!

Tenho um arduino Uno R3, um módulo ethernet ENC28j60 e já busquei várias bibliotecas do tipo: UIPethernet, ICMPPing.h entre outras para resolução do meu problema e não consigo. Tenho a intenção de fazer o meu Arduino através do módulo ethernet "pingar" (executar o ping) na minha máquina ou em qualquer outro dispositivo da minha rede e obter uma resposta. 

Das duas bibliotecas acima, vi que com a ICMPPing.h consigo fazer o que quero, porém ao que me parece ela é compatível somente com o módulo W5100 e não com o ENC28j60. Segue o link da biblioteca: 

http://playground.arduino.cc/Code/ICMPPing

Já a UIPethernet me parece que foi adaptada justamente para o ENC28j60 e a mesma tem suporte para execução do comando de ping, ou seja, suporte para ICMP.

http://forum.arduino.cc/index.php?topic=178024.0

https://github.com/ntruchsess/arduino_uip

Alguém pode me ajudar?

Obrigado.

Exibições: 2294

Responder esta

Respostas a este tópico

Desculpe a pergunta, mas qual seu objetivo em tentar obter resposta de outra máquina a ping?

Te pergunto isso porque devido à essa sua dificuldade, às vezes alguém consegue te sugerir um caminho alternativo que seja mais fácil.

Então imhugo, eu quero colocar o arduino para monitorar um equipamento de rede através do ping, e com base nos resultados obtidos através dos testes o arduino tomar uma decisão, a exemplo de um watchdog.

vc tem um linux ou sabe mexer com linux?

Sim sim! Alguma luz? uiashiaushuasiu

poxa aí sim...

perceba que isso que vou sugerir está longe de ser a ideal, é uma gambiarra que dá pra fazer caso vc não consiga implementar o ping via ethernet shield

1) no linux, crie um shell script reponsável por enviar ping ao equipamento alvo. Por exemplo, mande solicitar 4 ping e programe para monitorar as respostas obtidas. Se obtiver resposta, significa que o equipamento está online então o script finaliza

2) se não houver resposta, significa que o equipamento está offline. Então o shell script acessa o seu ethernet shield enviando uma requisição do tipo GET, por exemplo: http://192.168.0.X?equipamento1=off

(esse 192.168.0.x é o ip do arduino+ethernet shield)

3) ali no arduino, há um webserser aguardando conexões. Se vier uma conexão entrante com a string via GET equipamento1=off então faça o sketch executar alguma coisa que vc queira (tipo reiniciar o equipamento1)

Deu pra entender? o linux é quem ficaria pingando o equipamento de tempos em tempos. Se não houver resposta ao ping, então o linux se conecta ao webserver no arduino e então o arduino será capaz de fazer aquilo que deseja.

Use o cronjob para executar o shell script de tempos em tempos (tipo a cada 2minutos, por exemplo)

Entendi a dica, é bem interessante, viável em algumas aplicações. Mas neste caso queria algo local, a exemplo de um switch numa rede de transmissão que vai estar localizado em um poste no meio da cidade, quando ele travar o próprio arduino que vai estar instalado localmente junto com ele, vai fazer o reinicio físico do equipamento, não tendo a necessidade, dependendo da situação, de deslocar um técnico até o local, entende?

Pensando que o seu objetivo já está estabelecido, isto é, fazer o arduino pingar algum equipamento na rede, e que vc está com dificuldades de fazer o enc28j60 pingar o equipamento, e que vc também não conseguirá colocar um linux para intermediar esse processo, considere então adquirir um ethernet shield baseado no w5100

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço