Tabla de contenido:

Enrutador de reinicio Raspberry Pi: 3 pasos
Enrutador de reinicio Raspberry Pi: 3 pasos

Video: Enrutador de reinicio Raspberry Pi: 3 pasos

Video: Enrutador de reinicio Raspberry Pi: 3 pasos
Video: Botón de encendido en una Raspberry Pi 3. 2024, Mes de julio
Anonim
Enrutador de reinicio Raspberry Pi
Enrutador de reinicio Raspberry Pi
Enrutador de reinicio Raspberry Pi
Enrutador de reinicio Raspberry Pi

¿Alguna vez ha notado que ya no está conectado a Internet?

¿Es frustrante levantarse por la mañana y tener que 'reiniciar' el enrutador para recuperar Internet?

Bueno, esto me ha sucedido con más frecuencia de lo que me gustaría que sucediera.

A principios de este año, salí de la ciudad durante 3 semanas y el primer día que mi enrutador se desconectó de Internet. Esto significaba que no tenía conexión con las cosas de mi casa en las que confío para 'registrarme' periódicamente, por ejemplo, el termostato Nest, las cámaras Arlo … Como no estaba en casa, no podía reiniciar mi enrutador. Realmente no quería molestar a un vecino para que pasara por mi sistema de seguridad y luego encontrara mi enrutador y lo reiniciara. También pensé en llamar a la compañía eléctrica y hacer que cortaran el suministro eléctrico a mi casa durante unos 5 minutos: mi S. O. no aprobó..:(Cuando regresé, comencé a buscar una buena solución, pero no pude encontrar nada lo suficientemente completo para lo que necesitaba. Al principio, compré una regleta de enchufes con temporizador digital y la configuré para apagar el enrutador a las 2:00 am durante 5 minutos. Desafortunadamente, un par de mañanas no tenía Internet; una revisión de los registros del enrutador de esos días indicó que Internet se 'desconectó' alrededor de las 4:00 am y mi enrutador no se conectaría a menos que lo reiniciara.

Teniendo una Raspberry Pi adicional y algo de habilidad con Python, decidí ver cómo podría ayudar con mi dilema y se me ocurrió esta solución.

¡Lo probé e instalé y hasta ahora todo va bien!

Básicamente, la Raspberry Pi comprueba la conexión a Internet cada 2 minutos a través de un 'ping' a 2 sitios web diferentes. Mientras al menos uno de ellos responda, todos estamos bien. Si no hay 'pings' devueltos, el Pi apaga la energía al concentrador USB interno, lo que a su vez hace que Iot Power Relay apague el enrutador. Después de 2 minutos, el Pi enciende el concentrador USB interno, lo que hace que Iot Power Relay encienda el enrutador. Luego espera 4 minutos antes de reanudar la verificación de conectividad a Internet de 2 minutos.

También tuve que considerar que tal vez hay un corte en mi área e Internet va a estar inactivo por un tiempo - raro, pero ocurre (al menos en mi área …) y no quería que el enrutador se reiniciara cada 6 a 8 minutos, así que puse una bandera que pospondría el próximo reinicio durante 1 hora en este caso.

Suministros

Lista de equipo:

  1. Iot Power Relay para Raspberry Pi (en la imagen de arriba)
  2. Conector de bloque de terminales de tornillo USB 2.0 A (si va a hacer su propio USB -> cable de regleta de alimentación, también en la imagen de arriba)
  3. Puede utilizar un cable con 2 o más cables conductores o un cable USB antiguo / adicional. Utilicé un viejo cable estéreo con clavija fonográfica y corté las clavijas.
  4. Raspberry Pi Model 3+ (podría usar un Model 4 y controlar puertos individuales; estoy usando un Model 3)

Puedo ganar una pequeña comisión por mi respaldo, recomendación, testimonio y / o enlace a cualquier producto mencionado anteriormente.

Paso 1: construya y conecte el hardware

Construya y conecte el hardware
Construya y conecte el hardware

Construí mi cable para conectar el Pi al relé de potencia.

Usé el bloque de terminales de tornillo USB con 2 cables conectados a las ranuras + y gnd. Debería poder verlos en el conector. Vea la imagen con las flechas roja (+) y blanca (-) en las ranuras.

Conecté el otro extremo al relé de potencia. La parte verde en el costado del relé de potencia simplemente se saca y luego puede insertar los cables en las ranuras y atornillarlos firmemente. Vea la imagen con las flechas roja (+) y blanca (-) a los cables.

Nota: si usa un cable USB existente, generalmente tendrá 4 cables en el otro extremo: el rojo es el (+ 5v) y el negro es la tierra (-). Solo usará esos 2 para el relé de potencia.

Para la prueba, conecté una lámpara de mesa a uno de los enchufes marcados como "normalmente apagado". Esto está controlado por el estado de alimentación del USB. Conecté la Raspberry Pi a la toma 'siempre encendida', la enchufé y la encendí para el siguiente paso.

Paso 2: Instale el software

Configurar el Pi:

Hay un par de sitios web que lo guiarán para configurar su RPi por primera vez si es necesario.

Hacker de vida

Frambuesa Pi Org

Configuré el mío como 'sin cabeza' y uso VNC para conectarme. Los enlaces de arriba muestran cómo hacer esto.

Configuración del software:

  1. Instale uhubctl (consulte https://github.com/mvp/uhubctl) que se utilizará para encender y apagar el concentrador USB.
  2. Descargue e instale el software que escribí desde mi página de GitHub: RPi Router Reboot software.
  3. Configure y registre internet-monitor.service si desea ejecutarlo como servicio cuando se inicie Raspberry Pi.

Paso 3: Detalles de la prueba y la operación

El programa principal de Python, rpi-internet-monitor.py se puede ejecutar con 1 o 2 parámetros con fines de depuración y prueba.

Abra una sesión de terminal en la carpeta en la que puso el código y ejecute el siguiente comando:

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

Nota: esto imprimirá la información de depuración y apagará y encenderá la lámpara, ya que probará que no está conectada a Internet. Puede usar -debug y ver los mensajes. No puede simplemente usar -test, debe ser el segundo parámetro después de -debug.

Puede cambiar las CONSTANTES en la parte superior del programa a los valores que desee. El primer conjunto se ejecuta con el conjunto de parámetros de prueba, el segundo conjunto es lo que se utilizará en todos los demás casos.

Configuré un servicio para ejecutar esto en el momento del arranque, por lo que siempre se está ejecutando en mi Raspberry Pi.

Abra internet-monitor.service y edite las líneas ExecStart y WorkingDirectory con sus rutas completas al código Python. Guarda el archivo.

Copie el archivo a la carpeta systemd / system:

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

Pruebe que el servicio se inicie sin errores:

: ~ / Documentos / RebootRouter $ sudo systemctl iniciar internet-monitor.service

Habilite el servicio para que se inicie en el momento del arranque:

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

Si todo va bien, ahora puede juntarlo todo y apagar el Iot Power Relay, desconectar la lámpara, conectar el enrutador y volver a encender el Power Relay. Su enrutador debería reiniciarse y ahora está monitoreando Internet.

Hice una prueba más después de tener todo conectado: desconecté mi cable de Internet en la pared y esperé; Efectivamente, el enrutador se apagó y luego se encendió. Permaneció encendido y después de 10 minutos más o menos, volví a conectar el cable en la pared y tuve Internet; ha estado funcionando bien hasta ahora….:)

Recomendado: