Resetador de roteador em caso de queda de internet
Publicado em 12 de Dezembro de 2025 às 21:03
Com os muitos dispositivos inteligentes em casa, meu roteador vez ou outra trava, requerendo reset manual pra voltar. Até que eu invista em um roteador mais parrudo, essa foi a solução que encontrei. Um aparelho que reseta o roteador automaticamente se a internet cair.
Arquivos do Projeto
1.12 MB
1.03 MB
900.02 KB
Materiais Necessários
- ESP32-C3 Super Mini
- Módulo relé simples para Arduino (5 V)
- Regulador de tensão buck Lm2596 3a
- Conector de fonte P4 2,1mm com rosca
- Cabo de fonte velho ou alternativa similar
- Alguns parafusos recuperados de um HD velho
- Fios para conexão dos componentes
Ferramentas Necessárias
- Kit de solda (ferro, solda e fluxo)
- Protoboard
- Multímetro
- Impressora 3D para imprimir a caixa (se não tiver, dá pra ser criativo e inventar algo)
- Cabo USB-C
Etapas
Prototipar o projeto numa protoboard ou similar
Montar o dispositivo final na caixa. O modelo 3D ficou bem apertado, então tenha paciência. São 3 parafusos: dois para o regulador de tensão e um para a tampa, mas acho que todos são dispensáveis.
Regular o regulador de tensão para 5v. FAÇA ISSO ANTES DE LIGAR QUALQUER COISA NA SAÍDA DELE
Insira os dados da sua wifi no código e suba ele para o ESP32 usando o Arduino IDE
Conclusão
Esse regulador é fixo independente da entrada, ou seja, uma vez ajustado para 5v, independente da fonte usada para alimentar o sistema, a saída será sempre 5v.
O modelo 3D da caixa foi feito no onshape: https://cad.onshape.com/documents/f2d8750fa1faf9c16fee88c1/w/737e0ee30cdd70aa065b3947/e/a854a5eb9340b7b1e36d76a7?renderMode=0&uiState=693cab3f8c498fb28d7848e6
O código se encontra no GitHub para receber quaisquer possíveis atualizações futuras: https://github.com/etcho/esp32-router-watchdog/blob/main/esp32_watchdog.ino.
Para facilitar os testes, está configurado no código um botão que simula uma queda de internet, para não precisar ficar desligar o roteador para testar. Quando montar o projeto final esse botão não é usado.
Explicação breve do código:
- Boot: inicia, conecta Wi‑Fi e marca o momento do boot.
- Bloqueio inicial: depois do boot, ações de reset no roteador ficam bloqueadas por 5 minutos (para o roteador terminar de ligar).
- Checagens periódicas: a cada 5 segundos o dispositivo verifica conectividade externa (ping para 3 hosts públicos).
- Timeout/ tentativas de cada teste: cada tentativa tem timeout curto (≈1 s) e usa 1 tentativa por host (configurável).
- Contador de falhas: se TODOS os 3 hosts falharem numa checagem incrementa um contador de falhas consecutivas.
- Lógica de acionamento: só quando o contador atingir o limiar (5 checagens consecutivas) e o bloqueio inicial de 5 min tiver passado, o dispositivo aciona o relé para resetar o roteador por 5 s.
- Janela pós‑reset: após o reset o sistema espera 5 minutos antes de permitir outro reset.
- Limite de tentativas: cada reset do roteador incrementa um contador; se atingir 3 resets consecutivos sem recuperar a conexão, o dispositivo reinicia a si mesmo (reboot).
- Botão manual: apenas para testes, se o botão for pressionado o Wi‑Fi do dispositivo é desligado enquanto estiver pressionado; ao soltar ele tenta reconectar e limpa contadores.
- Todos esses valores e tempos são configuráveis no código.

Comentários
0