Inhoudsopgave:

Raspberry Pi reboot-router - Ajarnpa
Raspberry Pi reboot-router - Ajarnpa

Video: Raspberry Pi reboot-router - Ajarnpa

Video: Raspberry Pi reboot-router - Ajarnpa
Video: How To Build A Custom Raspberry Pi Router // OpenWrt on RPi 4 2024, November
Anonim
Raspberry Pi Router opnieuw opstarten
Raspberry Pi Router opnieuw opstarten
Raspberry Pi Router opnieuw opstarten
Raspberry Pi Router opnieuw opstarten

Is het je ooit opgevallen dat je niet meer verbonden bent met internet?

Is het frustrerend om 's ochtends op te staan en de router te moeten 'rebooten' om internet terug te krijgen?

Nou, dit is me vaker overkomen dan ik wil dat het gebeurt.

Eerder dit jaar ging ik 3 weken de stad uit en op de eerste dag verbrak mijn router de verbinding met internet! Dit betekende dat ik geen verbinding had met de dingen in mijn huis waarop ik vertrouw om periodiek in te checken, bijvoorbeeld de Nest-thermostaat, Arlo-camera's … Omdat ik niet thuis was, kon ik mijn router niet opnieuw opstarten. Ik wilde een buurman echt niet lastig vallen om voorbij mijn beveiligingssysteem te komen en dan mijn router te vinden en hem opnieuw op te starten. Ik dacht er ook aan om het energiebedrijf te bellen en ze de stroom naar mijn huis ongeveer 5 minuten te laten afsluiten - mijn S. O. niet goedgekeurd..:(Toen ik terugkwam, begon ik te zoeken naar een goede oplossing, maar kon niets vinden dat uitgebreid genoeg was voor wat ik nodig had. In het begin kocht ik gewoon een digitale getimede stekkerdoos en stelde deze in om de router om 2:00 uur gedurende 5 minuten uit te schakelen. Helaas had ik een paar ochtenden geen internet - een beoordeling van de routerlogboeken voor die dagen gaf aan dat de internet 'losgekoppeld' was rond 04:00 uur en mijn router geen verbinding zou maken tenzij ik hem opnieuw opstartte.

Omdat ik een extra Raspberry Pi had liggen en wat python-vaardigheid had, besloot ik te onderzoeken hoe het kon helpen bij mijn dilemma en kwam met deze oplossing.

Ik heb het getest en geïnstalleerd en tot nu toe zo goed!

In principe controleert de Raspberry Pi elke 2 minuten of er een internetverbinding is via een 'ping' naar 2 verschillende websites. Zolang ten minste één van hen reageert, zijn we allemaal goed. Als er geen 'pings' worden geretourneerd, schakelt de Pi de stroom naar de interne USB-hub uit, waardoor het Iot Power Relay de router uitschakelt. Na 2 minuten start de Pi de interne USB-hub op waardoor het Iot Power Relay de router inschakelt. Vervolgens wacht het 4 minuten voordat de internetverbindingscontrole van 2 minuten wordt hervat.

Ik moest ook bedenken dat er misschien een storing is in mijn regio en dat internet een tijdje niet beschikbaar is - zeldzaam, maar het komt wel voor (tenminste in mijn regio …) en ik wilde niet dat de router elke 6 opnieuw zou opstarten tot 8 minuten, dus ik plaatste een vlag die in dit geval de volgende herstart met 1 uur zou uitstellen.

Benodigdheden

Uitrustingslijst:

  1. Iot Power Relay voor Raspberry Pi (hierboven afgebeeld)
  2. USB 2.0 A Screw Terminal Block Connector (als je je eigen USB -> Power strip-kabel gaat maken, ook hierboven afgebeeld)
  3. Kabel met 2 of meer geleidende draden of een oude/extra USB kabel die je kunt gebruiken. Ik gebruikte een oude stereo phono-stekkerkabel en knipte de stekkers af.
  4. Raspberry Pi Model 3+ (je zou een Model 4 kunnen gebruiken en individuele poorten kunnen bedienen - ik gebruik een Model 3)

Ik kan een kleine commissie verdienen voor mijn goedkeuring, aanbeveling, getuigenis en/of link naar bovengenoemde producten.

Stap 1: Bouw en sluit de hardware aan

De hardware bouwen en aansluiten
De hardware bouwen en aansluiten

Ik heb mijn kabel gebouwd om de Pi op het vermogensrelais aan te sluiten.

Ik gebruikte het USB-schroefklemmenblok met 2 draden aangesloten op de + en gnd-slots. Je zou ze op de connector moeten kunnen zien. Zie de afbeelding met de rode (+) en witte (-) pijlen naar de sleuven.

Ik heb het andere uiteinde aangesloten op het vermogensrelais. Het groene gedeelte aan de zijkant van het vermogensrelais trekt er gewoon uit en dan kunt u de draden in de sleuven steken en vervolgens stevig vastschroeven. Zie de afbeelding met de rode (+) en witte (-) pijlen naar de draden.

Opmerking: als je een bestaande USB-kabel gebruikt, heb je meestal 4 draden aan het andere uiteinde - de rode is de (+5v) en de zwarte is de (-) aarde. Die 2 gebruik je alleen voor het vermogensrelais.

Voor het testen heb ik een tafellamp aangesloten op een van de stopcontacten die gemarkeerd zijn met 'normaal uit'. Dit wordt geregeld door de USB-stroomstatus. Ik stopte de Raspberry Pi in het 'altijd aan'-stopcontact en stopte hem in en zette hem aan voor de volgende stap.

Stap 2: Software installeren

Stel de Pi in:

Er zijn een aantal websites die u, indien nodig, begeleiden bij het voor de eerste keer instellen van uw RPi.

Life Hacker

Raspberry Pi Orga

Ik heb de mijne 'headless' ingesteld en gebruik VNC om er verbinding mee te maken. Bovenstaande links laten zien hoe u dit kunt doen.

Software-instelling:

  1. Installeer uhubctl (zie https://github.com/mvp/uhubctl) die zal worden gebruikt om de usb-hub aan en uit te zetten.
  2. Download en installeer de software die ik heb geschreven vanaf mijn GitHub-pagina: RPi Router Reboot-software.
  3. Configureer en registreer internet-monitor.service als u dit als service wilt uitvoeren wanneer de Raspberry Pi opstart.

Stap 3: Test- en bedieningsdetails

Het belangrijkste python-programma, rpi-internet-monitor.py, kan worden uitgevoerd met 1 of 2 parameters voor foutopsporing en testdoeleinden.

Open een terminalsessie in de map waarin u de code plaatst en voer de volgende opdracht uit:

:~/Documents/RebootRouter $ python3 rpi-internet-monitor.py -debug -test

Opmerking - hiermee wordt foutopsporingsinformatie afgedrukt en wordt de lamp uit- en ingeschakeld, aangezien deze zal testen als er geen verbinding met internet is. Je kunt gewoon -debug gebruiken en de berichten zien. Je kunt niet zomaar -test gebruiken, het moet de tweede parameter zijn na -debug.

U kunt de CONSTANTEN in het bovenste gedeelte van het programma wijzigen in elke gewenste waarde. De eerste set wordt uitgevoerd met de parameterset -test, de tweede set wordt in alle andere gevallen gebruikt.

Ik heb een service opgezet om dit tijdens het opstarten uit te voeren, zodat het altijd op mijn Raspberry Pi draait.

Open internet-monitor.service en bewerk de ExecStart- en WorkingDirectory-regels met uw volledige paden naar de python-code. Bewaar het bestand.

Kopieer het bestand naar de map systemd/system:

:~/Documents/RebootRouter $ sudo cp internet-monitor.service /etc/systemd/system/internet-monitor.service

Test of de service zonder fouten start:

:~/Documents/RebootRouter $ sudo systemctl start internet-monitor.service

Schakel de service in om te starten tijdens het opstarten:

:~/Documents/RebootRouter $ sudo systemctl internet-monitor.service inschakelen

Als alles goed gaat, kun je nu alles in elkaar zetten en het Iot Power Relay uitzetten, de lamp loskoppelen, de router aansluiten en het Power Relay weer aanzetten. Uw router zou opnieuw moeten opstarten en controleert nu het internet.

Ik deed nog een test nadat ik alles had aangesloten - ik ontkoppelde mijn internetkabel aan de muur en wachtte; zeker genoeg ging de router uit en toen aan. Het bleef aan en na ongeveer 10 minuten sloot ik de kabel weer aan op de muur en had ik internet - tot nu toe werkt het prima ….:)

Aanbevolen: