Taula de continguts:

Monitor d'amplada de banda: 7 passos (amb imatges)
Monitor d'amplada de banda: 7 passos (amb imatges)

Vídeo: Monitor d'amplada de banda: 7 passos (amb imatges)

Vídeo: Monitor d'amplada de banda: 7 passos (amb imatges)
Vídeo: Раскрываю секрет сочного мяса! Рецепт приготовления баранины с содой в помпейской печи 2024, De novembre
Anonim
Monitor d'amplada de banda
Monitor d'amplada de banda
Monitor d'amplada de banda
Monitor d'amplada de banda
Monitor d'amplada de banda
Monitor d'amplada de banda

Com sovint em preguntava quina amplada de banda proporciona actualment el meu ISP (faig servir un mòdem LTE per a la connexió a Internet), vaig pensar en un sistema de supervisió de l’amplada de banda. Com que el sistema hauria de ser compacte i estalviar energia, vaig triar un Raspberry Pi Zero com a component central. El gerd està connectat al mòdem mitjançant WLAN, per tant, també es poden detectar problemes de WLAN.

Subministraments

  • Raspberry Pi Zero WH
  • Pantalla de tinta electrònica Waveshare (mòdul de paper electrònic de 2,9 polzades)
  • Convertidor CC-CC (per exemple, DEBO DCDC 20W)
  • LED RGB (extret d'un dispositiu antic)
  • Polsador
  • Interruptor
  • Mòdul Relais (per exemple, mòdul de relé de 2 vies) Mòdul de relé de 2 vies)
  • Connector mascle + connector femella (tots dos s'adapten a la mida del connector del mòdem)
  • Estoig imprès en 3D

Pas 1: funcions

Característiques
Característiques
Característiques
Característiques
Característiques
Característiques
  • El Raspberry Pi Zero es connecta mitjançant WLAN, prova la velocitat de baixada i de pujada i realitza una mesura de ping cada mitja hora. S'utilitza una versió de línia d'ordres de speedtest.net com a base per a les mesures.
  • El resultat de l’amplada de banda i la mesura de ping es mostren en una pantalla de tinta electrònica. També es mostra el temps de la mesura.
  • Si la velocitat de descàrrega cau per sota d’un valor llindar definit, un relé apaga i encén el mòdem durant un curt temps. Així, el mòdem es restableix sense cap modificació del dispositiu (només s’interromp l’alimentació).
  • Hi ha disponible un botó a la part frontal del dispositiu per activar manualment la mesura de l’amplada de banda.
  • Els valors mesurats es mostren en un tauler d’Ubidots (portal IOT). A la visió general també podeu veure l'historial temporal dels valors mesurats i els motius dels darrers restabliments.
  • Al portal IOT també podeu trobar un botó per restablir el mòdem de forma remota.
  • El monitor d'amplada de banda utilitza la font d'alimentació del mòdem. No cal subministrament addicional. El relè interromp l’enviament de la font d’alimentació al mòdem; el gerd continua encès.

Pas 2: cablejat

Cablejat
Cablejat
Cablejat
Cablejat
Cablejat
Cablejat
Cablejat
Cablejat

A la primera imatge podeu veure el disseny intern del monitor d'ample de banda:

Els components principals són:

    1. Polsador
    2. Pantalla de tinta electrònica
    3. Raspberry Pi Zero
    4. Mòdul de relés
    5. LED RGB + resistències (segons el LED RGB que utilitzeu)
    6. Interruptor
    7. Convertidor CC-CC
    8. Connector femella

La segona imatge mostra un esquema del cablejat. El pol positiu de la tensió d’alimentació s’alimenta a través del commutador al convertidor de tensió CC-CC (que converteix la tensió d’alimentació de 12 V del router a 5 V per al gerd) i a través del relé (a través del pin normalment connectat) de nou al connector de sortida. Així, el mòdem també s’alimenta quan el monitor d’amplada de banda està apagat.

La mesura de l’amplada de banda es pot iniciar manualment mitjançant un botó. Un LED RGB s’utilitza per visualitzar els diferents estats de funcionament.

La connexió entre Raspberry Pi i la pantalla de tinta electrònica no es mostra al diagrama del circuit. Connecteu la pantalla segons la taula i el pin-out anterior.

Pas 3: Impressió 3D i construcció de la persecució

Impressió 3D i construcció de la persecució
Impressió 3D i construcció de la persecució
Impressió 3D i construcció de la persecució
Impressió 3D i construcció de la persecució
Impressió 3D i construcció de la persecució
Impressió 3D i construcció de la persecució
Impressió 3D i construcció de la persecució
Impressió 3D i construcció de la persecució

Les següents parts són necessàries per al cas (vegeu la imatge superior):

    1. part inferior
    2. part superior
    3. frontal
    4. esquena
    5. 4x muntatge

Totes les peces es poden imprimir sense suports. També podeu trobar els fitxers i alguns dels meus altres dissenys a Thingiverse:

La pantalla es pot connectar al tauler frontal amb els muntatges i una cinta de doble cara. L'interruptor de botó i el connector femal estan cargolats al panell posterior i posterior. Vaig utilitzar cargols de 3x20mm per connectar les dues meitats de la carcassa. Les toleràncies a les ranures dels panells frontal i posterior són relativament reduïdes. Si cal, els panells davanters i posteriors s’han de lijar a la vora (a l’interior per evitar destruir la superfície).

Pas 4: Configuració del Raspberry PI

Configuració del Raspberry PI
Configuració del Raspberry PI
Configuració del Raspberry PI
Configuració del Raspberry PI

Aquesta guia de configuració es basa en la compilació de diverses instruccions d'instal·lació de diferents fonts (fabricants de pantalles d'e-Ink, …). Per a mi, les instruccions han conduït al resultat desitjat. Com que no sóc expert en Linux, no es van fer optimitzacions ni similars. Sóc conscient que segur que hi ha solucions millors i més eficients.

Suposem que ja teniu Raspbian instal·lat al vostre Pi (hi ha molts tutorials sobre com instal·lar el sistema operatiu bàsic) i que teniu una pantalla (mitjançant miniHDMI), el ratolí i el teclat connectats. També s’assumeix una connexió WLAN configurada correctament al router o a Internet. Tret que s’indiqui el contrari, tots els procediments d’instal·lació es realitzen al terminal.

Instal·leu l'escriptori remot (per accedir al PI des del vostre ordinador):

sudo apt-get update

sudo apt-get

instal·leu xrdp

o també podeu treballar sense cap a través de ssh (vegeu, per exemple, Canvia la contrasenya:

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

Instal·la speedtest:

sudo

apt-get install python-pip

sudo pip instal·la speedtest-cli

per comprovar si la instal·lació ha estat correcta, executeu Speedtest al terminal:

speedtest-cli

si tot és correcte, hauríeu d'obtenir alguna cosa com a la primera imatge superior.

Instal·leu el cablejat IP

sudo apt-get install git-core

git clonar git: //git.drogon.net/wiringPi

cablejat cdPi

./ construir

(vegeu també

Alternativa:

sudo apt-get install wiringpi

(vegeu

Instal·leu BCM2835

(vegeu

Descarregueu bcm2835-1.60.tar.gz (o una versió més recent si està disponible)

tar zxvf bcm2835-1.60.tar.gz

cd bcm2835-1.60

./configure

fer

sudo make check

sudo make install

Instal·leu la biblioteca d’imatges de Python

sudo apt-get install python-imaging

Alternativa:

sudo apt-get install python-pil

Activeu la funció I2C.

Executeu l'ordre següent per configurar la vostra placa Raspberry Pi:

sudo raspi-config

Seleccioneu Opcions d'interfície-> I2C -> sí, per iniciar el controlador principal d'I2C. A continuació, també heu de modificar el fitxer de configuració. Executeu l'ordre següent per obrir el fitxer de configuració:

sudo nano / etc / modules

Afegiu les dues línies següents al fitxer de configuració

i2c-bcm2708

i2c-dev

Vegeu també

Activeu la funció SPI

Executeu l'ordre següent per configurar la vostra placa Raspberry Pi:

sudo raspi-config

Seleccioneu Opcions d'interfície-> SPI -> sí, per iniciar el controlador principal SPI.

Instal·leu tipus de lletra addicionals:

sudo apt-get install ttf-mscorefonts-installer

Descarregueu i instal·leu tipus de lletra (Roboto + Droid)

gksudo

pcmanfm

Per iniciar el gestor de fitxers amb privilegis d'arrel i copiar els tipus de lletra de tipus truetype a la carpeta / usr / share / fonts / truetype

Alternativa:

Copieu els tipus de lletra a la carpeta Descàrregues amb WinSCP (ssh ha d'estar habilitat per utilitzar WinSCP)

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

sudo cp -r / home / pi / Descàrregues / roboto / usr / share / fonts / truetype

Necessiteu privilegis d’arrel per accedir a la carpeta de tipus de lletra. Potser hi ha maneres millors de fer-ho (com ja he dit, no sóc expert en Linux), però ambdues maneres em van funcionar.

Fitxers Python:

Utilitzeu el fitxer de fitxers per crear una nova carpeta "bandwidth_monitor"

Copieu tots els fitxers al directori bandwidth_monitor

Feu que els fitxers Python i els scripts siguin executables

chmod + x *.py

chmod + x speedtest-cron.sh

Configureu el crontab

crontab -e

Crontab s'utilitza per programar l'execució del programa, per exemple. speedtest cada 30 min. Afegiu les línies següents al vostre crontab (vegeu també la segona 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ó de les tasques programades:

  • en reiniciar, el missatge de reinici s'escriu al tauler IOT
  • en reiniciar l'enquesta, s'inicia test_now_button
  • cada 30 minuts es realitza una mesura de l’amplada de banda
  • cada 3 minuts es comprova l'estat del botó de restabliment remot (al tauler IOT)
  • un cop al dia s'inicia un cicle d'actualització de la pantalla.

Consulteu la secció de programari per obtenir una breu descripció dels programes.

Pas 5: programari

Programari
Programari

El programari es divideix en diversos fitxers / programes:

bandwidth_monitor_0_4.py és el programa principal que Crontab invoca cada mitja hora. Realitza una prova d’amplada de banda (mitjançant la versió de línia d’ordres de speedtest.net). Durant la prova, el LED RGB és blau. Si l’amplada de banda és superior al llindar seleccionat, el valor es mostra a la pantalla de tinta electrònica (juntament amb una marca de temps) i s’exporta al tauler d’Ubidots. Si l'amplada de banda és inferior al llindar, el LED es torna vermell i la mesura es repeteix després d'un breu retard. Després de 3 intents negatius, el relé s’activa i, per tant, s’interromp l’alimentació del mòdem. El codi de restabliment (valor = 2) s'escriu a la secció de registre.

poll_killswitch.py llegeix l'estat d'una variable booleana al tauler. Si killswitch_state és cert, el relais s'activa i la font d'alimentació del mòdem s'interromp. El LED RGB es posa de color verd durant el sondeig de l'interruptor. Després del restabliment, killswitch_state es defineix com a fals i es genera una entrada a la secció de registre del tauler (valor = 1).

poll_test_now_button.py està esperant que es prem el botó del tauler frontal de la funda. En activar el botó, es mesura manualment l’amplada de banda. Quan s’inicia el programa (en reiniciar el Raspberry Pi), el LED RGB parpelleja en vermell.

post_restart_message.py escriu el codi de restabliment (valor = 3) a la secció de registre del tauler. Això indica que s’ha reiniciat el monitor d’amplada de banda. Durant l’inici del programa, el LED RGB parpelleja de color blau.

test_LED.py i test_relay.py són scripts simples que es poden utilitzar per provar la funció de maquinari del LED RGB i del relé.

epdconfig.py i epd2in9.py són controladors de dispositiu per a la pantalla de tinta electrònica proporcionada per Waveshare.

Per permetre que els programes accedeixin al tauler d’Ubidots, heu d’afegir els vostres tokens i noms de dispositius o variables (si feu servir notacions diferents). Cerqueu una secció com la que es mostra a la imatge superior (substituïu XXXXXXXX pel vostre testimoni).

A la pàgina d’Ubidots (https://help.ubidots.com/en/) o a través de Google es poden trobar tutorials complets sobre com construir el tauler i com integrar-lo en un programa Python.

Pas 6: IOT Dashboard

Tauler IOT
Tauler IOT

El tauler de control allotjat per Ubidots (vegeu https://ubidots.com) conté diverses àrees que es descriuen breument a continuació.

    1. Seqüència temporal de pujada i velocitat de descàrrega. Cada mitja hora s’insereix un valor nou al diagrama.
    2. Curs temporal del temps de ping mesurat. Cada mitja hora s’insereix un valor nou al diagrama.
    3. Seqüència temporal de la velocitat mitjana de descàrrega. El valor mitjà durant 24 hores es calcula i s’escriu al diagrama.
    4. Representació en full de càlcul dels valors de mesura actuals, inclosa la marca horària.
    5. Botó de control remot per restablir el mòdem a través d'Internet. La consulta es realitza cada 3 minuts, és a dir, pot trigar un temps a dur a terme l'acció.
    6. Registre dels darrers restabliments, inclòs el motiu del reinici (activació remota, apagat o pèrdua de tensió, caiguda per sota de l’amplada de banda mínima)

A la pàgina d’Ubidots (https://help.ubidots.com/en/) o a través de Google es poden trobar tutorials complets sobre com construir el tauler i com integrar-lo en un programa Python.

Recomanat: