Taula de continguts:
- Subministraments
- Pas 1: funcions
- Pas 2: cablejat
- Pas 3: Impressió 3D i construcció de la persecució
- Pas 4: Configuració del Raspberry PI
- Pas 5: programari
- Pas 6: IOT Dashboard
- Pas 7: Introducció de les funcions bàsiques
Vídeo: Monitor d'amplada de banda: 7 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
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
- 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
A la primera imatge podeu veure el disseny intern del monitor d'ample de banda:
Els components principals són:
- Polsador
- Pantalla de tinta electrònica
- Raspberry Pi Zero
- Mòdul de relés
- LED RGB + resistències (segons el LED RGB que utilitzeu)
- Interruptor
- Convertidor CC-CC
- 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ó
Les següents parts són necessàries per al cas (vegeu la imatge superior):
- part inferior
- part superior
- frontal
- esquena
- 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
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
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
El tauler de control allotjat per Ubidots (vegeu https://ubidots.com) conté diverses àrees que es descriuen breument a continuació.
- Seqüència temporal de pujada i velocitat de descàrrega. Cada mitja hora s’insereix un valor nou al diagrama.
- Curs temporal del temps de ping mesurat. Cada mitja hora s’insereix un valor nou al diagrama.
- Seqüència temporal de la velocitat mitjana de descàrrega. El valor mitjà durant 24 hores es calcula i s’escriu al diagrama.
- Representació en full de càlcul dels valors de mesura actuals, inclosa la marca horària.
- 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ó.
- 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:
Carretó de forma d'amplada constant: 5 passos
Carretó de formes d'amplada constant: les formes d'amplada constant sempre em van fascinar i crec que són bastant genials. Els podeu utilitzar per a diversos projectes, com ara rodes per a mini robots, etc. En aquest instructiu us mostraré com dibuixar diverses formes d'amplada constant que podeu
RAMPS Visuino per a modulació d'amplada de pols (PWM) mitjançant LED: 8 passos
RAMPS Visuino per a la modulació d’amplada de pols (PWM) mitjançant LED: en aquest tutorial utilitzarem un LED connectat a Arduino UNO i Visuino per atenuar el LED mitjançant la modulació d’amplada de pols (PWM) i el component Ramps. Mireu un vídeo de demostració
Microcontrolador AVR. Modulació d'amplada de pols. Controlador de intensitat de llum LED i motor de CC: 6 passos
Microcontrolador AVR. Modulació d'amplada de pols. Controlador de intensitat de llum LED i motor de CC: Hola a tothom! La modulació de l'amplada de pols (PWM) és una tècnica molt comuna en telecomunicacions i control de potència. s'utilitza habitualment per controlar la potència alimentada a un dispositiu elèctric, ja sigui un motor, un LED, altaveus, etc. Bàsicament és un modu
Modulació d'amplada de pols (PWM) senzilla (i bruta) amb temporitzador 555: 3 passos
Modulació d’amplada de pols (PWM) simple (i bruta) amb temporitzador 555: circuit senzill per al control de velocitat del motor de CC (control de velocitat del ventilador, atenuació de llum / LED, etc.) mitjançant el temporitzador 555. També és un bon punt de partida per als novells que vulguin obtenir la seva mans brutes amb el temporitzador IC 555. Alguns argumentarien que això no és el més
Torxa LED modulada per amplada de pols: 8 passos
Torxa LED modulada per amplada de pols: la modulació per amplada de pols (PWM) es pot utilitzar per variar la potència, la velocitat o la brillantor de molts dispositius. Amb els LED, PWM es pot utilitzar per atenuar-los o fer-los més brillants. Els faré servir per fer una petita antorcha manual. Es pot atenuar un LED en activar-lo ràpidament i