ENC28J60 - Testando a conexão de internet

526 views
Skip to first unread message

Edwaldo Queiroz

unread,
Mar 1, 2014, 4:19:48 PM3/1/14
to Arduino, arduin...@googlegroups.com
Boa noite pessoal.

Vou montar um circuito para verificar a disponibilidade da internet e, em caso negativo, reiniciar o modem.

Acontece que a sala onde ficam o modem e o roteador, eventualmente, fica ocupada e inacessível e, na maioria das vezes, quando a internet da tiut, temos que desligar o modem, esperar 1 minuto (==zicas do Velox) e só então religar. Nem dá para reiniciar o modem pelo navegador.

Outra situação é quando não tem ninguém na empresa para reiniciar o processo e ficamos sem acesso remoto às máquinas ou alguns serviços.

Enfim... o que preciso é testar a conexão da internet. Se falhar, o Arduino liga um relé, que nesse caso, desligará a rede elétrica do modem e roteador.

Alguém pode me ajudar com algum código que simplesmente teste a conexão da internet?

Precisa testar a cada 5 minutos e, caso falhe, posso implementar o acionamento tantas portas quanto necessário, como apaga LED de OK, aciona Relé, pisca LED de alerta.

Testei vários códigos de exemplos de bibliotecas e postagem pela net e não obtive resultado.

Desde já agradeço a atenção.
 
---
Edwaldo Queiroz
(31) 8779-3313
seug...@gmail.com

Otavio Augusto

unread,
Mar 3, 2014, 7:20:55 AM3/3/14
to arduin...@googlegroups.com
Presumo que vc vai usar um ethertnet shield. Verifique nas bibliotecas
do arduino sobre ping. Nunca testei mas tem esta aqui :
http://playground.arduino.cc/Code/ICMPPing
estes 2 ips som bons para testar:
8.8.8.8
200.130.2.3

Como pode haver perdas de pacotes principalmente no horário de pico do
uso da internet
tenha uma tolerância.
Faça a função ping que retorna sucesso ou falha mas depois de enviar
uns 10 pacotes e dar como falha se perder somente 100% deles.
daí o resto do código é acionar um rele ou não de acordo com o resultado.
> --
> Participe dos projetos de nossa comunidade.
> Visite http://arduino-minas.github.com
> Você tem um artigo e quer compartilhar com o grupo?
> Entre em contato com os administradores do site ou da lista.
> ---
> Você está recebendo esta mensagem porque se inscreveu no grupo "Arduino
> Minas Gerais" dos Grupos do Google.
> Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie
> um e-mail para arduino-mina...@googlegroups.com.
> Visite este grupo em http://groups.google.com/group/arduino-minas.
> Para ver esta discussão na web, acesse
> https://groups.google.com/d/msgid/arduino-minas/CAHstii54FoDtAGruYJjq1X6upyda-hZvV-x4cvk83j%3DfZp7iSw%40mail.gmail.com.
> Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
Otavio Augusto
---------------------
Consultor de TI
Citius Tecnologia
31 37761866
31 88651242
http://www.citiustecnologia.com.br

Edwaldo Queiroz

unread,
Mar 3, 2014, 9:25:32 AM3/3/14
to Arduino, arduin...@googlegroups.com
@Otávio Carneiro

Quero deixar o Arduino trabalhando de forma autônoma.

Eu baixei todas bibliotecas sugeridas para a placa ENC28J60 e executei seus exemplos e confesso, não tive capacidade técnica de obter algum resultado próximo do que quero.

A placa funciona. Cheguei a abrir as páginas dos exemplos, mas os exemplos de ping não retornam nenhum resultado.

Um dos exemplos que testei, foi o pings.ino, anexo, que baixei aqui: https://codeload.github.com/jcw/ethercard/zip/master
Esse imprime no monitor serial dos IPs e a mensagem de falha de acesso do setup e depois fica parado. Eu reduzi os tempos de execução dos exemplo.

@Otavio Augusto

Tentei utilizar o ICMPPing, mas ele só da suporte à shield W5100 e estou utilizando a ENC28J60

Quanto aos testes, vou fazer um laço de FOR que faça 5, ou mais, testes e, em caso de erro, aciona o relé por 1 minuto, pisca um LED vermelho indicando o erro.

Quando o Arduino for ligado ou após reiniciar o modem, ele deverá esperar no mínimo 1 minuto, para que o modem refaça suas conexões e a rede normalize.

Tudo isso será montado dentro de uma carcaça de um estabilizador SMS, que queimou e teve suas peças reaproveitadas em outros projetos.

 
---
Edwaldo Queiroz
(31) 8779-3313
seug...@gmail.com


2014-03-03 9:20 GMT-03:00 Otavio Augusto <otav...@gmail.com>:
Presumo que vc vai usar um ethertnet shield. Verifique nas bibliotecas
do arduino sobre ping. Nunca testei mas tem esta aqui :
http://playground.arduino.cc/Code/ICMPPing
estes 2 ips som bons para testar:
8.8.8.8
200.130.2.3

Como pode haver perdas de pacotes principalmente no horário de pico do
uso da internet
tenha uma tolerância.
Faça a função ping que retorna sucesso ou falha mas depois de enviar
uns 10 pacotes e dar como falha se perder somente 100% deles.
daí o resto do código é acionar um rele ou não de acordo com o resultado.


2014-03-03 0:40 GMT-03:00 Otávio Carneiro dos Santos <otavio...@gmail.com>:
Edwaldo,

Acho que você poderia fazer esse teste de um computador e, a partir dele, mandar o comando pro Arduino.

Poderia ser um programinha simples (shell script, talvez?) que desse um ping num site qualquer (ou em 2 ou 3 sites) e, dependendo da resposta mandasse só um "reseta aí!" pro Arduino via serial e deixasse ele comandar o relê.

O que é que você já tentou? Manda aí algum exemplo, link ou alguma outra coisa mais concreta que a gente tenta evoluir daí.

Abs.,
Otávio


Em 1 de março de 2014 18:19, Edwaldo Queiroz <seug...@gmail.com> escreveu:

--
--
Você recebeu esta mensagem porque está inscrito no
Grupo "arduino-brasília" nos Grupos do Google.
E-mail: arduino-...@googlegroups.com
Url: http://groups.google.com.br/group/arduino-brasilia?hl=pt-BR
Sair: arduino-brasil...@googlegroups.com
 
---
Você está recebendo esta mensagem porque se inscreveu no grupo "arduino-brasilia" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para arduino-brasil...@googlegroups.com.

Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

--
--
Você recebeu esta mensagem porque está inscrito no
Grupo "arduino-brasília" nos Grupos do Google.
E-mail: arduino-...@googlegroups.com
Url: http://groups.google.com.br/group/arduino-brasilia?hl=pt-BR
Sair: arduino-brasil...@googlegroups.com
 
---
Você está recebendo esta mensagem porque se inscreveu no grupo "arduino-brasilia" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para arduino-brasil...@googlegroups.com.
pings.ino

Otavio Augusto

unread,
Mar 5, 2014, 8:25:52 AM3/5/14
to arduin...@googlegroups.com
Quanto as bibliotecas não poderei ajudar pois não tenho nunhum
ethernet shield aqui.
Mas quanto a lógica esta correta mas coloque o tempo de espera ao
ligar o arduino e depois de reiniciar o modem para pelo menos 2
minutos. Isto devido a alguns modens e algumas operadoras podem
demorar um pouco para estabelecer o link.
Ja vi modem demorar a té 3 minutos até conseguir conectar.

O intervalo entre os testes pode ser de 1 minuto mesmo.
> --
> Participe dos projetos de nossa comunidade.
> Visite http://arduino-minas.github.com
> Você tem um artigo e quer compartilhar com o grupo?
> Entre em contato com os administradores do site ou da lista.
> ---
> Você está recebendo esta mensagem porque se inscreveu no grupo "Arduino
> Minas Gerais" dos Grupos do Google.
> Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie
> um e-mail para arduino-mina...@googlegroups.com.
> Visite este grupo em http://groups.google.com/group/arduino-minas.
> Para ver esta discussão na web, acesse
> https://groups.google.com/d/msgid/arduino-minas/CAHstii40%3DdqUUtXjBGKve1PYaE%3Doj9fbHoHw-E%3DcGo0CSXMg%2Bw%40mail.gmail.com.
>
> Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
Reply all
Reply to author
Forward
0 new messages