Innehållsförteckning:

Raspberry Pi Reboot Router: 3 steg
Raspberry Pi Reboot Router: 3 steg

Video: Raspberry Pi Reboot Router: 3 steg

Video: Raspberry Pi Reboot Router: 3 steg
Video: Raspberry Pi - Что можно сделать? Готовые проекты. Есть ли смысл? Как научиться? 2024, Juli
Anonim
Raspberry Pi Reboot Router
Raspberry Pi Reboot Router
Raspberry Pi Reboot Router
Raspberry Pi Reboot Router

Har du någonsin märkt att du inte längre är ansluten till internet?

Är det frustrerande att gå upp på morgonen och måste starta om routern för att få tillbaka internet?

Det här har hänt mig oftare än jag bryr mig om att det ska hända.

Tidigare i år åkte jag ut ur staden i 3 veckor och den första dagen kopplades min router från internet! Detta innebar att jag inte hade någon koppling till de saker i mitt hus som jag litar på att jag regelbundet skulle checka in - t.ex. Nest -termostat, Arlo -kameror … Eftersom jag inte var hemma kunde jag inte starta om routern. Jag ville verkligen inte störa en granne för att komma förbi mitt säkerhetssystem och sedan hitta min router och starta om den. Jag tänkte också ringa elbolaget och låta dem stänga av strömmen till mitt hus i cirka 5 minuter - min S. O. godkände inte..:(När jag kom tillbaka började jag leta efter en bra lösning men kunde inte hitta något tillräckligt omfattande för vad jag behövde. Till en början köpte jag precis en digital tidsinställd strömförsörjning och ställde in den för att stänga av routern klockan 2:00 i 5 minuter. Tyvärr hade jag ett par morgon inte internet - en granskning av routerns loggar för dessa dagar indikerade att internet "kopplades bort" runt 4:00 och att min router inte skulle ansluta om jag inte startade om den.

Efter att ha lagt en extra Raspberry Pi och lite pythonkunskaper bestämde jag mig för att undersöka hur det skulle kunna hjälpa till med mitt dilemma och kom på den här lösningen.

Jag testade och installerade det och hittills så bra!

I grund och botten söker Raspberry Pi efter en internetanslutning varannan minut via en "ping" till 2 olika webbplatser. Så länge minst en av dem svarar är vi alla bra. Om det inte finns några "pings" som återges stänger Pi av strömmen till den interna USB -hubben vilket i sin tur får Iot Power Relay att stänga av routern. Efter 2 minuter slår Pi på den interna USB -hubben vilket får Iot Power Relay att slå på routern. Den väntar sedan i 4 minuter innan den 2 minuter långa internetanslutningskontrollen återupptas.

Jag var också tvungen att tänka på att det kanske är ett avbrott i mitt område och att internet kommer att vara nere ett tag - sällsynt, men det förekommer (åtminstone i mitt område …) och jag ville inte att routern skulle starta om var 6: e till 8 minuter så jag satte in en flagga som skulle skjuta upp nästa omstart i 1 timme i det här fallet.

Tillbehör

Utrustningslista:

  1. Iot Power Relay för Raspberry Pi (bilden ovan)
  2. USB 2.0 A Skruvplintskontakt (om du ska göra din egen USB -> Power strip -kabel, även bilden ovan)
  3. Kabel med 2 eller fler ledande ledningar eller en gammal / extra USB -kabel som du kan använda. Jag använde en gammal stereo phono -kabel och klippte av kontakterna.
  4. Raspberry Pi Model 3+ (du kan använda en Model 4 och styra enskilda portar - jag använder en Model 3)

Jag kan tjäna en liten provision för min rekommendation, rekommendation, vittnesmål och/eller länk till alla produkter som anges ovan.

Steg 1: Bygg och anslut maskinvaran

Bygg och anslut maskinvaran
Bygg och anslut maskinvaran

Jag byggde min kabel för att ansluta Pi till strömreläet.

Jag använde USB -skruvplinten med 2 ledningar anslutna till + och gnd -facken. Du borde kunna se dem på kontakten. Se bilden med de röda (+) och vita (-) pilarna till facken.

Jag kopplade den andra änden till effektreläet. Den gröna delen på sidan av effektreläet drar bara ut och sedan kan du sätta in ledningarna i spåren och skruva fast sedan. Se bilden med de röda (+) och vita (-) pilarna till trådarna.

Obs! Om du använder en befintlig USB -kabel har du vanligtvis 4 ledningar i andra änden - den röda är (+5v) och den svarta är (-) jord. Du kommer bara att använda dessa 2 för effektreläet.

För testning kopplade jag en bordslampa till ett av uttagen märkta "normalt av". Detta styrs av USB -strömtillståndet. Jag anslöt Raspberry Pi till uttaget "alltid på" och kopplade in det och slog på det för nästa steg.

Steg 2: Installera programvara

Ställ in Pi:

Det finns ett par webbplatser som hjälper dig att konfigurera din RPi för första gången om det behövs.

Life Hacker

Raspberry Pi Org

Jag ställer in min "huvudlös" och använder VNC för att ansluta till den. Länkarna ovan visar hur du gör detta.

Inställning av programvara:

  1. Installera uhubctl (se https://github.com/mvp/uhubctl) som kommer att användas för att stänga av och på USB -hubben.
  2. Ladda ner och installera programvaran jag skrev från min GitHub -sida: RPi Router Reboot -programvara.
  3. Ställ in och registrera internet-monitor.service om du vill köra detta som tjänst när Raspberry Pi startar.

Steg 3: Test- och driftsinformation

Det huvudsakliga pythonprogrammet, rpi-internet-monitor.py kan köras med 1 eller 2 parametrar för felsökning och testning.

Öppna en terminalsession i mappen där du lägger koden och kör följande kommando:

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

Obs - detta kommer att skriva ut felsökningsinformation och släcka och tända lampan eftersom det kommer att testa att den inte är ansluten till internet. Du kan bara använda -debug och se meddelandena. Du kan inte bara använda -test, det måste vara den andra parametern efter -debug.

Du kan ändra KONSTANTERNA i programmets översta del till vilka värden du vill. Den första uppsättningen körs med parametern -test, den andra uppsättningen är vad som kommer att användas i alla andra fall.

Jag skapade en tjänst för att köra detta vid starttid så det körs alltid på min Raspberry Pi.

Öppna internet-monitor.service och redigera ExecStart- och WorkingDirectory-raderna med dina fullständiga sökvägar till pythonkoden. Spara filen.

Kopiera filen till systemd/systemmappen:

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

Testa att tjänsten startar utan några fel:

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

Aktivera att tjänsten startar vid starttiden:

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

Om allt går bra kan du nu sätta ihop allt och stänga av Iot Power Relay, koppla bort lampan, anslut routern och slå på Power Relay igen. Din router bör starta om och övervakar nu internet.

Jag gjorde ytterligare ett test efter att jag hade anslutit allt - jag kopplade bort min internetkabel vid väggen och väntade; visst gick routern av och sedan på. Det stannade kvar och efter tio minuter kopplade jag tillbaka kabeln vid väggen och hade internet - det har gått bra hittills ….:)

Rekommenderad: