Tabla de contenido:

Monitor de ancho de banda: 7 pasos (con imágenes)
Monitor de ancho de banda: 7 pasos (con imágenes)

Video: Monitor de ancho de banda: 7 pasos (con imágenes)

Video: Monitor de ancho de banda: 7 pasos (con imágenes)
Video: ✅10 HACKS y TRUCOS OCULTOS de la XIAOMI BAND 7 en ESPAÑOL 2024, Mes de julio
Anonim
Monitor de ancho de banda
Monitor de ancho de banda
Monitor de ancho de banda
Monitor de ancho de banda
Monitor de ancho de banda
Monitor de ancho de banda

Como a menudo me preguntaba qué ancho de banda proporciona actualmente mi ISP (uso un módem LTE para la conexión a Internet), pensé en un sistema de monitoreo de ancho de banda. Dado que el sistema debería ser compacto y ahorrar energía, elegí una Raspberry Pi Zero como componente central. La Raspberry está conectada al módem a través de WLAN, por lo que también se pueden detectar problemas de WLAN.

Suministros

  • Raspberry Pi Zero WH
  • Pantalla de tinta electrónica Waveshare (módulo de papel electrónico de 2,9 pulgadas)
  • Convertidor CC-CC (p. Ej., DEBO DCDC 20W)
  • LED RGB (sacado de un dispositivo antiguo)
  • Presionar el botón
  • Cambiar
  • Módulo de relé (por ejemplo, módulo de relé de 2 vías, módulo de relé de 2 vías)
  • Conector macho + conector hembra (ambos se ajustan al tamaño del enchufe de la fuente de alimentación de su módem)
  • Estuche impreso en 3D

Paso 1: características

Características
Características
Características
Características
Características
Características
  • La Raspberry Pi Zero está conectada a través de WLAN, prueba la velocidad de carga y descarga y realiza una medición de ping cada media hora. Se utiliza una versión de línea de comandos de speedtest.net como base para las mediciones.
  • El resultado de la medición del ancho de banda y del ping se muestra en una pantalla de tinta electrónica. También se muestra la hora de la medición.
  • Si la velocidad de descarga cae por debajo de un valor de umbral definido, un relé apaga y enciende el módem durante un breve período de tiempo. Por lo tanto, el módem se reinicia sin ninguna modificación del dispositivo (solo se interrumpe la fuente de alimentación).
  • Un botón en la parte frontal del dispositivo está disponible para activar la medición del ancho de banda manualmente.
  • Los valores medidos se muestran en un panel de Ubidots (portal IOT). En la vista general también puede ver el historial de tiempo de los valores medidos y los motivos de los últimos restablecimientos.
  • En el portal IOT también puede encontrar un botón para restablecer el módem de forma remota.
  • El monitor de ancho de banda utiliza la fuente de alimentación del módem. No se necesita suministro adicional. El relé interrumpe el reenvío de la fuente de alimentación al módem, la frambuesa permanece encendida.

Paso 2: cableado

Alambrado
Alambrado
Alambrado
Alambrado
Alambrado
Alambrado
Alambrado
Alambrado

En la primera imagen se puede ver el diseño interno del monitor de ancho de banda:

Los componentes principales son:

    1. Presionar el botón
    2. Pantalla de tinta electrónica
    3. Raspberry Pi Zero
    4. Módulo de relé
    5. LED RGB + Resistencias (dependiendo del LED RGB que utilice)
    6. Cambiar
    7. Convertidor DC-DC
    8. Conector hembra

La segunda imagen muestra un esquema del cableado. El polo positivo de la tensión de alimentación se alimenta a través del interruptor al convertidor de tensión CC-CC (que convierte la tensión de alimentación de 12 V del enrutador a 5 V para la frambuesa) y a través del relé (a través del pin normalmente conectado) de vuelta al conector de salida. Por lo tanto, el módem también recibe energía cuando el monitor de ancho de banda está apagado.

La medición del ancho de banda se puede iniciar manualmente mediante un botón. Se utiliza un LED RGB para visualizar los distintos estados operativos.

La conexión entre Raspberry Pi y la pantalla de tinta electrónica no se muestra en el diagrama del circuito. Conecte la pantalla de acuerdo con la tabla y el pin-out de arriba.

Paso 3: Impresión 3D y construcción de la persecución

Impresión 3D y construcción de la persecución
Impresión 3D y construcción de la persecución
Impresión 3D y construcción de la persecución
Impresión 3D y construcción de la persecución
Impresión 3D y construcción de la persecución
Impresión 3D y construcción de la persecución
Impresión 3D y construcción de la persecución
Impresión 3D y construcción de la persecución

Las siguientes piezas son necesarias para el estuche (vea la imagen de arriba):

    1. parte inferior
    2. parte superior
    3. parte delantera
    4. espalda
    5. Montaje 4x

Todas las piezas se pueden imprimir sin soportes. También puede encontrar los archivos y algunos de mis otros diseños en Thingiverse:

La pantalla se puede unir al panel frontal con los soportes y una cinta de doble cara. El interruptor de botón y el conector hembra están atornillados al panel trasero y trasero. Usé tornillos de 3x20 mm para conectar las dos mitades de la carcasa. Las tolerancias en las ranuras para los paneles delantero y trasero son relativamente ajustadas. Si es necesario, los paneles delantero y trasero deben lijarse en el borde (en el interior para no dañar la superficie).

Paso 4: Configuración de Raspberry PI

Configuración de Raspberry PI
Configuración de Raspberry PI
Configuración de Raspberry PI
Configuración de Raspberry PI

Esta guía de configuración se basa en la compilación de varias instrucciones de instalación de diferentes fuentes (fabricantes de pantallas de tinta electrónica,…). Para mí, las instrucciones han llevado al resultado deseado. Como no soy un experto en Linux, no se realizaron optimizaciones ni similares. Soy consciente de que seguramente existen soluciones mejores y más eficientes.

Supongamos que ya tiene Raspbian instalado en su Pi (hay muchos tutoriales sobre cómo instalar el sistema operativo básico) y tiene una pantalla (a través de miniHDMI), mouse y teclado conectados. También se asume una conexión WLAN configurada correctamente al enrutador o Internet. A menos que se indique lo contrario, todos los procedimientos de instalación se realizan en el terminal.

Instale Escritorio remoto (para acceder al PI desde su computadora):

sudo apt-get update

sudo apt-get

instalar xrdp

o también puede trabajar sin cabeza a través de ssh (consulte, por ejemplo, Cambiar la contraseña:

www.raspberrypi.org/forums/viewtopic.php?t=193620

Instalar speedtest:

sudo

apt-get install python-pip

sudo pip instalar speedtest-cli

para probar si la instalación fue exitosa, ejecute Speedtest en la terminal:

speedtest-cli

si todo es correcto, debería obtener algo como en la primera imagen de arriba.

Instalar cableadoPI

sudo apt-get install git-core

clon de git git: //git.drogon.net/wiringPi

cableado de cd Pi

./construir

(ver también

Alternativa:

sudo apt-get install cableadopi

(ver

Instalar BCM2835

(ver

Descargue bcm2835-1.60.tar.gz (o una versión más reciente si está disponible)

tar zxvf bcm2835-1.60.tar.gz

cd bcm2835-1.60

./configurar

hacer

sudo hacer cheque

sudo hacer instalar

Instalar la biblioteca de imágenes de Python

sudo apt-get install python-Imaging

Alternativa:

sudo apt-get install python-pil

Habilite la función I2C.

Ejecute el siguiente comando para configurar su placa Raspberry Pi:

sudo raspi-config

Seleccione Opciones de interfaz-> I2C -> sí, para iniciar el controlador principal I2C. Entonces también necesita modificar el archivo de configuración. Ejecute el siguiente comando para abrir el archivo de configuración:

sudo nano / etc / modules

Agregue las siguientes dos líneas al archivo de configuración

i2c-bcm2708

i2c-dev

Consulte también

Habilite la función SPI

Ejecute el siguiente comando para configurar su placa Raspberry Pi:

sudo raspi-config

Seleccione Opciones de interfaz-> SPI -> sí, para iniciar el controlador principal de SPI.

Instale fuentes adicionales:

sudo apt-get install ttf-mscorefonts-installer

Descargar e instalar fuentes (Roboto + Droid)

gksudo

pcmanfm

Para iniciar el administrador de archivos con privilegios de root y copiar las fuentes truetype en la carpeta / usr / share / fonts / truetype

Alternativa:

Copie las fuentes a la carpeta Descargas con WinSCP (ssh debe estar habilitado para usar WinSCP)

sudo cp -r / home / pi / Descargas / droid / usr / share / fonts / truetype

sudo cp -r / home / pi / Descargas / roboto / usr / share / fonts / truetype

Necesita privilegios de root para acceder a la carpeta de fuentes. Tal vez haya mejores formas de hacer esto (como ya mencioné, no soy un experto en Linux) pero ambas formas funcionaron para mí.

Archivos de Python:

Utilice el administrador de archivos para crear una nueva carpeta "bandwidth_monitor"

Copie todos los archivos al directorio bandwidth_monitor

Hacer que los archivos de Python y el script sean ejecutables

chmod + x *.py

chmod + x speedtest-cron.sh

Configurar crontab

crontab -e

Crontab se usa para programar la ejecución del programa, p. Ej. prueba de velocidad cada 30 min. Agregue las siguientes líneas a su crontab (vea también la segunda figura):

@reboot / usr / bin / python /home/pi/bandwidth_monitor/post_restart_message.py &

@reboot sleep 30 && / usr / bin / python /home/pi/bandwidth_monitor/poll_test_now_button.py * / 30 * * * * /home/pi/bandwidth_monitor/speedtest-cron.sh * / 3 * * * * / usr / bin / python /home/pi/bandwidth_monitor/poll_killswitch.py 13 03 * * * / usr / bin / python /home/pi/bandwidth_monitor/refresh_display.py

Descripción de las tareas programadas:

  • al reiniciar, el mensaje de reinicio se escribe en el panel de IOT
  • al reiniciar se inicia la encuesta test_now_button
  • cada 30 minutos se realiza una medición de ancho de banda
  • cada 3 minutos se verifica el estado del botón de reinicio remoto (en el tablero de IOT)
  • una vez al día se inicia un ciclo de actualización de la pantalla.

Consulte la sección de software para obtener una breve descripción de los programas.

Paso 5: software

Software
Software

El software se divide en varios archivos / programas:

bandwidth_monitor_0_4.py es el programa principal que Crontab invoca cada media hora. Realiza una prueba de ancho de banda (a través de la versión de línea de comandos de speedtest.net). Durante la prueba, el LED RGB es azul. Si el ancho de banda está por encima del umbral seleccionado, el valor se muestra en la pantalla de tinta electrónica (junto con una marca de tiempo) y se exporta al panel de Ubidots. Si el ancho de banda está por debajo del umbral, el LED se vuelve rojo y la medición se repite después de un breve retraso. Después de 3 intentos negativos, el relé se activa y, por lo tanto, se interrumpe la alimentación del módem. El código de reinicio (valor = 2) se escribe en la sección de registro.

poll_killswitch.py lee el estado de una variable booleana en el tablero. Si killswitch_state es verdadero, el relé se activa y la fuente de alimentación del módem se interrumpe. El LED RGB se vuelve verde durante el sondeo del interruptor de apagado. Después del reinicio, killswitch_state se establece en falso y se genera una entrada en la sección de registro del tablero (valor = 1).

poll_test_now_button.py está esperando que se presione el botón en el panel frontal de la carcasa. Al activar el botón, se activa manualmente una medición de ancho de banda. Cuando se inicia el programa (al reiniciar la Raspberry Pi), el LED RGB parpadea en rojo.

post_restart_message.py escribe el código de reinicio (valor = 3) en la sección de registro del tablero. Esto indica que se ha reiniciado el monitor de ancho de banda. Durante el inicio del programa, el LED RGB parpadea en azul.

test_LED.py y test_relay.py son scripts simples que se pueden usar para probar la función de hardware del LED RGB y el relé.

epdconfig.py y epd2in9.py son controladores de dispositivo para la pantalla de tinta electrónica proporcionada por Waveshare.

Para permitir que los programas accedan al panel de Ubidots, debe agregar sus tokens individuales y los nombres de dispositivos o variables (si usa notaciones diferentes). Busque una sección como la que se muestra en la imagen de arriba (reemplace XXXXXXXX por su token).

Se pueden encontrar tutoriales completos sobre cómo construir el panel y cómo integrar el panel en un programa Python directamente en la página de Ubidots (https://help.ubidots.com/en/) o a través de Google.

Paso 6: Panel de IOT

Panel de IOT
Panel de IOT

El panel alojado por Ubidots (consulte https://ubidots.com) contiene varias áreas que se describen brevemente a continuación.

    1. Secuencia de tiempo de velocidad de subida y bajada. Cada media hora se inserta un nuevo valor en el diagrama.
    2. Evolución temporal del tiempo de ping medido. Cada media hora se inserta un nuevo valor en el diagrama.
    3. Secuencia de tiempo de la velocidad de descarga media. El valor medio durante 24 horas se calcula y se escribe en el diagrama.
    4. Representación en hoja de cálculo de los valores de medición actuales, incluida la marca de tiempo.
    5. Botón de control remoto para reiniciar el módem a través de Internet. La consulta se realiza cada 3 minutos, es decir, puede tardar algún tiempo hasta que se lleve a cabo la acción.
    6. Registro de los últimos restablecimientos, incluido el motivo del restablecimiento (activación remota, apagado o pérdida de voltaje, caída por debajo del ancho de banda mínimo)

Se pueden encontrar tutoriales completos sobre cómo construir el panel y cómo integrar el panel en un programa Python directamente en la página de Ubidots (https://help.ubidots.com/en/) o a través de Google.

Recomendado: