Table des matières:

Routeur de redémarrage Raspberry Pi : 3 étapes
Routeur de redémarrage Raspberry Pi : 3 étapes

Vidéo: Routeur de redémarrage Raspberry Pi : 3 étapes

Vidéo: Routeur de redémarrage Raspberry Pi : 3 étapes
Vidéo: 📡 CREEZ votre propre ROUTEUR WIFI (HOTSPOT) avec le RASPBERRY PI... très facilement ! 2024, Novembre
Anonim
Routeur de redémarrage Raspberry Pi
Routeur de redémarrage Raspberry Pi
Routeur de redémarrage Raspberry Pi
Routeur de redémarrage Raspberry Pi

Avez-vous déjà remarqué que vous n'êtes plus connecté à Internet ?

Est-ce frustrant de se lever le matin et de devoir « redémarrer » le routeur pour récupérer Internet ?

Eh bien, cela m'est arrivé plus souvent que je ne le souhaite.

Plus tôt cette année, je suis sorti de la ville pendant 3 semaines et le premier jour, mon routeur s'est déconnecté d'Internet ! Cela signifiait que je n'avais aucun lien avec les éléments de ma maison sur lesquels je me fiais pour m'enregistrer périodiquement - par exemple, le thermostat Nest, les caméras Arlo… Comme je n'étais pas chez moi, je ne pouvais pas redémarrer mon routeur. Je ne voulais vraiment pas déranger un voisin pour contourner mon système de sécurité, puis trouver mon routeur et le redémarrer. J'ai aussi pensé à appeler la compagnie d'électricité et à lui demander de couper le courant de ma maison pendant environ 5 minutes - mon S. O. n'a pas approuvé..:(À mon retour, j'ai commencé à chercher une bonne solution mais je n'ai rien trouvé d'assez complet pour ce dont j'avais besoin. Au début, je viens d'acheter une multiprise numérique et je l'ai configurée pour éteindre le routeur à 2h00 du matin pendant 5 minutes. Malheureusement, quelques matins, je n'avais pas Internet - un examen des journaux du routeur pour ces jours-là a indiqué qu'Internet s'était "déconnecté" vers 4h00 du matin et que mon routeur ne se connectait pas à moins que je ne le redémarre.

Ayant un Raspberry Pi supplémentaire et des compétences en python, j'ai décidé d'examiner comment cela pourrait aider à résoudre mon dilemme et j'ai trouvé cette solution.

Je l'ai testé et installé et pour l'instant tout va bien !

Fondamentalement, le Raspberry Pi vérifie une connexion Internet toutes les 2 minutes via un « ping » vers 2 sites Web différents. Tant qu'au moins l'un d'entre eux répond, tout va bien. S'il n'y a pas de « pings » renvoyés, le Pi coupe l'alimentation du concentrateur USB interne, ce qui entraîne l'arrêt du routeur par le relais d'alimentation Iot. Après 2 minutes, le Pi alimente le concentrateur USB interne, provoquant l'activation du relais d'alimentation Iot. Il attend ensuite 4 minutes avant de reprendre le contrôle de connectivité Internet de 2 minutes.

Je devais également considérer qu'il y avait peut-être une panne dans ma région et qu'Internet allait être en panne pendant un certain temps - rare, mais cela se produit (au moins dans ma région…) et je ne voulais pas que le routeur redémarre tous les 6 à 8 minutes donc j'ai mis un drapeau qui retarderait le prochain redémarrage de 1 heure dans ce cas.

Fournitures

Liste d'équipement:

  1. Iot Power Relay pour Raspberry Pi (photo ci-dessus)
  2. Connecteur de bornier à vis USB 2.0 A (si vous envisagez de créer votre propre câble USB -> multiprise, également illustré ci-dessus)
  3. Câble avec 2 fils conducteurs ou plus ou un ancien câble USB supplémentaire que vous pouvez utiliser. J'ai utilisé un vieux câble de prise phono stéréo et j'ai coupé les prises.
  4. Raspberry Pi Model 3+ (vous pouvez utiliser un Model 4 et contrôler des ports individuels - j'utilise un Model 3)

Je peux gagner une petite commission pour mon approbation, recommandation, témoignage et/ou lien vers les produits énumérés ci-dessus.

Étape 1: Construire et connecter le matériel

Construire et connecter le matériel
Construire et connecter le matériel

J'ai construit mon câble pour connecter le Pi au relais d'alimentation.

J'ai utilisé le bornier à vis USB avec 2 fils connectés aux emplacements + et gnd. Vous devriez pouvoir les voir sur le connecteur. Voir l'image avec les flèches rouges (+) et blanches (-) vers les fentes.

J'ai connecté l'autre extrémité au relais d'alimentation. La partie verte sur le côté du relais d'alimentation se retire et vous pouvez ensuite insérer les fils dans les fentes et les visser puis les serrer. Voir l'image avec les flèches rouge (+) et blanche (-) vers les fils.

Remarque: si vous utilisez un câble USB existant, vous aurez généralement 4 fils à l'autre extrémité - le rouge est le (+5v) et le noir est la masse (-). Vous n'utiliserez ces 2 pour le relais de puissance.

Pour les tests, j'ai connecté une lampe de table à l'une des prises marquées "normalement éteintes". Ceci est contrôlé par l'état de l'alimentation USB. J'ai branché le Raspberry Pi dans la prise "toujours allumée", je l'ai branché et allumé pour l'étape suivante.

Étape 2: installer le logiciel

Configurer le Pi:

Il existe quelques sites Web qui vous guideront dans la configuration de votre RPi pour la première fois si nécessaire.

Pirate de la vie

Framboise Pi Org

J'ai configuré le mien "sans tête" et j'utilise VNC pour m'y connecter. Les liens ci-dessus montrent comment procéder.

Paramétrage du logiciel:

  1. Installez uhubctl (voir https://github.com/mvp/uhubctl) qui sera utilisé pour allumer et éteindre le hub USB.
  2. Téléchargez et installez le logiciel que j'ai écrit à partir de ma page GitHub: RPi Router Reboot software.
  3. Configurez et enregistrez internet-monitor.service si vous souhaitez l'exécuter en tant que service au démarrage du Raspberry Pi.

Étape 3: Tests et détails de fonctionnement

Le programme python principal, rpi-internet-monitor.py peut être exécuté avec 1 ou 2 paramètres à des fins de débogage et de test.

Ouvrez une session de terminal dans le dossier dans lequel vous avez mis le code et exécutez la commande suivante:

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

Remarque - cela imprimera les informations de débogage et éteindra et allumera la lampe car elle testera non connecté à Internet. Vous pouvez simplement utiliser -debug et voir les messages. Vous ne pouvez pas simplement utiliser -test, ce doit être le deuxième paramètre après -debug.

Vous pouvez changer les CONSTANTES dans la partie supérieure du programme à n'importe quelles valeurs que vous aimez. Le premier jeu est exécuté avec le jeu de paramètres -test, le deuxième jeu est celui qui sera utilisé dans tous les autres cas.

J'ai configuré un service pour l'exécuter au démarrage afin qu'il s'exécute toujours sur mon Raspberry Pi.

Ouvrez internet-monitor.service et modifiez les lignes ExecStart et WorkingDirectory avec vos chemins complets vers le code python. Enregistrez le fichier.

Copiez le fichier dans le dossier systemd/system:

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

Testez que le service démarre sans erreur:

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

Activez le service pour qu'il démarre au démarrage:

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

Si tout se passe bien, vous pouvez maintenant tout assembler et éteindre le relais d'alimentation Iot, déconnecter la lampe, connecter le routeur et rallumer le relais d'alimentation. Votre routeur devrait redémarrer et surveille maintenant Internet.

J'ai fait un autre test après avoir tout branché - j'ai déconnecté mon câble Internet au mur et j'ai attendu; bien sûr, le routeur s'est éteint puis rallumé. Il est resté allumé et après environ 10 minutes, j'ai reconnecté le câble au mur et j'avais Internet - il fonctionnait bien jusqu'à présent….:)

Conseillé: