Πίνακας περιεχομένων:

Raspberry Pi Reboot Router: 3 Βήματα
Raspberry Pi Reboot Router: 3 Βήματα

Βίντεο: Raspberry Pi Reboot Router: 3 Βήματα

Βίντεο: Raspberry Pi Reboot Router: 3 Βήματα
Βίντεο: Home Assistant. Урок 9.4 ADD-ON - Xiaomi Gateway 3, интеграция в zigbee2mqtt 2024, Νοέμβριος
Anonim
Raspberry Pi Reboot Router
Raspberry Pi Reboot Router
Raspberry Pi Reboot Router
Raspberry Pi Reboot Router

Έχετε παρατηρήσει ποτέ ότι δεν είστε πλέον συνδεδεμένοι στο διαδίκτυο;

Είναι απογοητευτικό να σηκώνεστε το πρωί και να πρέπει να «επανεκκινήσετε» το δρομολογητή για να επιστρέψετε το διαδίκτυο;

Λοιπόν, αυτό μου συνέβη πιο συχνά από ό, τι νοιάζομαι να συμβεί.

Νωρίτερα φέτος, έφυγα έξω από την πόλη για 3 εβδομάδες και την πρώτη μέρα το router μου αποσυνδέθηκε από το διαδίκτυο! Αυτό σήμαινε ότι δεν είχα καμία σχέση με τα πράγματα του σπιτιού μου στα οποία βασίζομαι να «ελέγχω» περιοδικά - π.χ., θερμοστάτης Nest, κάμερες Arlo … Δεδομένου ότι δεν ήμουν σπίτι, δεν μπορούσα να κάνω επανεκκίνηση του δρομολογητή μου. Πραγματικά δεν ήθελα να ενοχλήσω έναν γείτονα να ξεπεράσει το σύστημα ασφαλείας μου και μετά να βρω το δρομολογητή μου και να το επανεκκινήσω. Σκέφτηκα επίσης να καλέσω την εταιρεία ηλεκτρικής ενέργειας και να τους κόψω το ρεύμα στο σπίτι μου για περίπου 5 λεπτά - ο S. O. δεν ενέκρινε..:(Όταν επέστρεψα, άρχισα να ψάχνω για μια καλή λύση αλλά δεν βρήκα κάτι αρκετά περιεκτικό για αυτό που χρειαζόμουν. Στην αρχή, αγόρασα μια ψηφιακή χρονισμένη πολύπριζα και την έθεσα να απενεργοποιήσει το δρομολογητή στις 2:00 το πρωί για 5 λεπτά. Δυστυχώς, μερικά πρωινά δεν είχα ίντερνετ - μια ανασκόπηση των αρχείων καταγραφής του δρομολογητή εκείνες τις ημέρες έδειξε ότι το διαδίκτυο «αποσυνδέθηκε» γύρω στις 4:00 π.μ. και ο δρομολογητής μου δεν θα συνδεθεί αν δεν το επανεκκινήσω.

Έχοντας ένα επιπλέον Raspberry Pi και μερικές δεξιότητες python, αποφάσισα να εξετάσω πώς θα μπορούσε να βοηθήσει με το δίλημμα μου και βρήκα αυτή τη λύση.

Το δοκίμασα και το εγκατέστησα και μέχρι τώρα καλά!

Βασικά, το Raspberry Pi ελέγχει για σύνδεση στο Διαδίκτυο κάθε 2 λεπτά μέσω «ping» σε 2 διαφορετικούς ιστότοπους. Όσο τουλάχιστον ένας από αυτούς ανταποκρίνεται, είμαστε όλοι καλοί. Εάν δεν υπάρχουν επιστρεφόμενα «pings», το Pi διακόπτει την τροφοδοσία στον εσωτερικό διανομέα USB, το οποίο με τη σειρά του προκαλεί το ρελέ Iot Power να απενεργοποιήσει το δρομολογητή. Μετά από 2 λεπτά, το Pi ενεργοποιεί τον εσωτερικό διανομέα USB προκαλώντας την ενεργοποίηση του δρομολογητή από το Iot Power Relay. Στη συνέχεια, περιμένει 4 λεπτά πριν συνεχίσει τον έλεγχο σύνδεσης 2 λεπτών στο διαδίκτυο.

Έπρεπε επίσης να σκεφτώ ότι ίσως υπάρχει διακοπή στην περιοχή μου και το διαδίκτυο θα διακοπεί για λίγο - σπάνιο, αλλά συμβαίνει (τουλάχιστον στην περιοχή μου …) και δεν ήθελα να επανεκκινείται ο δρομολογητής κάθε 6 σε 8 λεπτά, έτσι έβαλα μια σημαία που θα αναβάλει την επόμενη επανεκκίνηση για 1 ώρα σε αυτή την περίπτωση.

Προμήθειες

Λίστα εξοπλισμού:

  1. Iot Power Relay για Raspberry Pi (φωτογραφία παραπάνω)
  2. USB 2.0 A Screw Terminal Block Connector (εάν πρόκειται να φτιάξετε το δικό σας USB -> Καλώδιο ταινίας, επίσης στην παραπάνω εικόνα)
  3. Καλώδιο με 2 ή περισσότερα καλώδια ή ένα παλιό / επιπλέον καλώδιο USB που μπορείτε να χρησιμοποιήσετε. Χρησιμοποίησα ένα παλιό καλώδιο στερεοφωνικού phono plug και έκοψα τα βύσματα.
  4. Raspberry Pi Model 3+ (μπορείτε να χρησιμοποιήσετε ένα μοντέλο 4 και να ελέγξετε μεμονωμένες θύρες - χρησιμοποιώ ένα μοντέλο 3)

Ενδέχεται να κερδίσω μια μικρή προμήθεια για την έγκριση, τη σύσταση, τη μαρτυρία και/ή τον σύνδεσμο με οποιαδήποτε προϊόντα που αναφέρονται παραπάνω.

Βήμα 1: Δημιουργία και σύνδεση του υλικού

Δημιουργία και σύνδεση του υλικού
Δημιουργία και σύνδεση του υλικού

Έφτιαξα το καλώδιό μου για να συνδέσω το Pi στο ρελέ ισχύος.

Χρησιμοποίησα το μπλοκ ακροδεκτών βίδας USB με 2 καλώδια συνδεδεμένα στις υποδοχές + και gnd. Θα πρέπει να μπορείτε να τα δείτε στην υποδοχή σύνδεσης. Δείτε την εικόνα με τα κόκκινα (+) και λευκά (-) βέλη στις υποδοχές.

Συνδέω το άλλο άκρο στο ρελέ ισχύος. Το πράσινο μέρος στο πλάι του ρελέ τροφοδοσίας απλώς τραβιέται προς τα έξω και, στη συνέχεια, μπορείτε να εισάγετε τα καλώδια στις σχισμές και να τα βιδώσετε στη συνέχεια σφιχτά. Δείτε την εικόνα με τα κόκκινα (+) και λευκά (-) βέλη προς τα καλώδια.

Σημείωση: εάν χρησιμοποιείτε υπάρχον καλώδιο USB, θα έχετε συνήθως 4 καλώδια στο άλλο άκρο - το κόκκινο είναι το (+5v) και το μαύρο είναι η (-) γείωση. Θα χρησιμοποιήσετε αυτά τα 2 μόνο για το ρελέ ισχύος.

Για δοκιμή, ένωσα ένα επιτραπέζιο φωτιστικό σε μία από τις πρίζες με την ένδειξη «κανονικά απενεργοποιημένη». Αυτό ελέγχεται από την κατάσταση τροφοδοσίας USB. Συνδέω το Raspberry Pi στην πρίζα «πάντα ενεργοποιημένο» και το συνδέω και το ενεργοποιώ για το επόμενο βήμα.

Βήμα 2: Εγκατάσταση λογισμικού

Ρυθμίστε το Pi:

Υπάρχουν μερικοί ιστότοποι που θα σας καθοδηγήσουν στη ρύθμιση του RPi σας για πρώτη φορά, εάν χρειαστεί.

Life Hacker

Raspberry Pi Org

Δημιουργώ το δικό μου «ακέφαλο» και χρησιμοποιώ το VNC για σύνδεση σε αυτό. Οι παραπάνω σύνδεσμοι δείχνουν πώς να το κάνετε αυτό.

Ρύθμιση λογισμικού:

  1. Εγκαταστήστε το uhubctl (δείτε https://github.com/mvp/uhubctl) που θα χρησιμοποιηθεί για να απενεργοποιήσετε και να ενεργοποιήσετε το διανομέα USB.
  2. Κατεβάστε και εγκαταστήστε το λογισμικό που έγραψα από τη σελίδα μου στο GitHub: Λογισμικό επανεκκίνησης RPi Router.
  3. Ρυθμίστε και καταχωρίστε την υπηρεσία internet-monitor.service, εάν θέλετε να εκτελεστεί ως υπηρεσία κατά την εκκίνηση του Raspberry Pi.

Βήμα 3: Λεπτομέρειες δοκιμής και λειτουργίας

Το κύριο πρόγραμμα python, rpi-internet-monitor.py μπορεί να εκτελεστεί με 1 ή 2 παραμέτρους για σκοπούς εντοπισμού σφαλμάτων και δοκιμών.

Ανοίξτε μια συνεδρία τερματικού στο φάκελο που βάζετε τον κώδικα και εκτελέστε την ακόλουθη εντολή:

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

Σημείωση - αυτό θα εκτυπώσει πληροφορίες εντοπισμού σφαλμάτων και θα σβήσει και θα ανάψει η λάμπα καθώς θα δοκιμαστεί ότι δεν είναι συνδεδεμένη στο διαδίκτυο. Μπορείτε απλά να χρησιμοποιήσετε -debug και να δείτε τα μηνύματα. Δεν μπορείτε απλά να χρησιμοποιήσετε το -test, πρέπει να είναι η δεύτερη παράμετρος μετά το -debug.

Μπορείτε να αλλάξετε τα CONSTANTS στο επάνω μέρος του προγράμματος σε όποιες τιμές σας αρέσουν. Το πρώτο σετ εκτελείται με το σετ παραμέτρων -test, το δεύτερο σετ είναι αυτό που θα χρησιμοποιηθεί σε όλες τις άλλες περιπτώσεις.

Δημιούργησα μια υπηρεσία για να το εκτελέσω κατά την εκκίνηση, ώστε να λειτουργεί πάντα στο Raspberry Pi μου.

Ανοίξτε το internet-monitor.service και επεξεργαστείτε τις γραμμές ExecStart και WorkingDirectory με τις πλήρεις διαδρομές σας προς τον κώδικα python. Αποθηκεύστε το αρχείο.

Αντιγράψτε το αρχείο στο φάκελο systemd/system:

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

Ελέγξτε ότι η υπηρεσία ξεκινά χωρίς σφάλματα:

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

Ενεργοποιήστε την υπηρεσία για εκκίνηση κατά την εκκίνηση:

: ~/Documents/RebootRouter $ sudo systemctl ενεργοποιήστε την υπηρεσία internet-monitor.service

Εάν όλα πάνε καλά, μπορείτε τώρα να τα συνδυάσετε και να απενεργοποιήσετε το ρελέ Iot Power, να αποσυνδέσετε τη λάμπα, να συνδέσετε το δρομολογητή και να ενεργοποιήσετε ξανά το ρελέ ισχύος. Ο δρομολογητής σας θα πρέπει να επανεκκινήσει και τώρα παρακολουθεί το Διαδίκτυο.

Έκανα μια ακόμη δοκιμή αφού τα είχα συνδέσει όλα - αποσύνδεσα το καλώδιο διαδικτύου στον τοίχο και περίμενα. Σίγουρα ο δρομολογητής έσβησε και μετά ενεργοποιήθηκε. Έμεινε αναμμένο και μετά από περίπου 10 λεπτά, επανασύνδεσα το καλώδιο στον τοίχο και είχα το διαδίκτυο - λειτουργούσε καλά μέχρι τώρα….:)

Συνιστάται: