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.
Tags:
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.
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
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por