INHOUDSOPGAWE:

Bandwydte -monitor: 7 stappe (met foto's)
Bandwydte -monitor: 7 stappe (met foto's)

Video: Bandwydte -monitor: 7 stappe (met foto's)

Video: Bandwydte -monitor: 7 stappe (met foto's)
Video: SYMBOL BAND FULL ALBUM GOTHIC METAL 2024, November
Anonim
Bandwydte -monitor
Bandwydte -monitor
Bandwydte -monitor
Bandwydte -monitor
Bandwydte -monitor
Bandwydte -monitor

Aangesien ek myself gereeld afgevra het watter bandwydte my ISP tans verskaf (ek gebruik 'n LTE -modem vir die internetverbinding), het ek aan 'n bandwydte -moniteringstelsel gedink. Aangesien die stelsel kompak en energiebesparend moet wees, het ek 'n Raspberry Pi Zero as die sentrale komponent gekies. Die Framboos is via WLAN aan die modem gekoppel, daarom kan WLAN -probleme ook opgespoor word.

Voorrade

  • Framboos Pi Zero WH
  • Waveshare e-ink-skerm (2,9 duim-e-papiermodule)
  • DC-DC-omskakelaar (bv. DEBO DCDC 20W)
  • RGB LED (uit 'n ou toestel gehaal)
  • Druk knoppie
  • Skakel oor
  • Relais module (bv. 2 Way Relay module 2 Way Relay module)
  • Manlike connector + Female connector (beide pas by die grootte van u modem -kragprop)
  • 3D -gedrukte tas

Stap 1: Kenmerke

Kenmerke
Kenmerke
Kenmerke
Kenmerke
Kenmerke
Kenmerke
  • Die Raspberry Pi Zero is verbind via WLAN, toets die op- en aflaaisnelheid en voer elke halfuur 'n pingmeting uit. 'N Opdragreëlweergawe van speedtest.net word as basis vir die metings gebruik.
  • Die resultaat van die bandwydte en pingmeting word op 'n e-ink-skerm vertoon. Die tyd van die meting word ook getoon.
  • As die aflaaisnelheid onder 'n gedefinieerde drempelwaarde val, skakel 'n relais die modem vir 'n kort tydjie aan en aan. Die modem word dus herstel sonder om die toestel te verander (slegs die kragtoevoer word onderbreek).
  • 'N Knoppie aan die voorkant van die toestel is beskikbaar om die bandwydte -meting handmatig te aktiveer.
  • Die gemete waardes word op 'n Ubidots Dashboard (IOT Portal) vertoon. In die oorsig kan u ook die tydgeskiedenis van die gemete waardes en die redes vir die laaste terugstellings sien.
  • In die IOT Portal kan u ook 'n knoppie vind om die modem op afstand terug te stel.
  • Die bandwydte -monitor gebruik die kragtoevoer van die modem. Geen bykomende toevoer nodig nie. Die relais onderbreek die aanstuur van die kragtoevoer na die modem - die framboos bly aangeskakel.

Stap 2: Bedrading

Bedrading
Bedrading
Bedrading
Bedrading
Bedrading
Bedrading
Bedrading
Bedrading

Op die eerste foto kan u die interne ontwerp van die bandwydte -monitor sien:

Die belangrikste komponente is:

    1. Druk knoppie
    2. E-ink skerm
    3. Framboos Pi Zero
    4. Relay Module
    5. RGB LED + weerstande (afhangende van die RGB LED wat u gebruik)
    6. Skakel oor
    7. DC-DC omskakelaar
    8. Vroulike aansluiting

Die tweede prent toon 'n skema van die bedrading. Die positiewe pool van die voedingspanning word via die skakelaar na die DC-DC spanning converter (wat die 12V voedingsspanning van die router omskakel na 5V vir die Framboos) en via die relais (via die normaal gekoppelde pen) terug na die uitvoer aansluiting. Die modem word dus ook van krag voorsien wanneer die bandwydte -monitor afgeskakel word.

Die bandwydte -meting kan met die hand met 'n knoppie begin word. 'N RGB -LED word gebruik om die verskillende bedryfstoestande te visualiseer.

Die verbinding tussen Raspberry Pi en die e-ink-skerm word nie in die kringdiagram getoon nie. Koppel die skerm volgens die tabel en die pin-out hierbo.

Stap 3: 3D -druk en bou van die jaagtog

3D -druk en bou van die jaagtog
3D -druk en bou van die jaagtog
3D -druk en bou van die jaagtog
3D -druk en bou van die jaagtog
3D -druk en bou van die jaagtog
3D -druk en bou van die jaagtog
3D -druk en bou van die jaagtog
3D -druk en bou van die jaagtog

Die volgende dele is nodig vir die saak (sien foto hierbo):

    1. onderste deel
    2. boonste gedeelte
    3. voor
    4. terug
    5. 4x houer

Al die dele kan sonder steun gedruk word. U kan ook die lêers en 'n paar van my ander ontwerpe op Thingiverse vind:

Die skerm kan met die houers en 'n dubbelzijdige band aan die voorpaneel geheg word. Knoppieskakelaar en female aansluiting word aan die agter- en agterpaneel vasgeskroef. Ek het 3x20mm skroewe gebruik om die twee helftes van die behuising aan te sluit. Die toleransies op die groewe vir die voor- en agterpanele is relatief streng. Indien nodig, moet die voor- en agterpanele aan die rand geskuur word (aan die binnekant om te voorkom dat die oppervlak vernietig word).

Stap 4: Die opstel van die Framboos PI

Die opstel van die Framboos PI
Die opstel van die Framboos PI
Die opstel van die Framboos PI
Die opstel van die Framboos PI

Hierdie opstellingsgids is gebaseer op die opstel van verskeie installasie-instruksies uit verskillende bronne (vervaardigers van e-Ink-skerms, …). Vir my het die instruksies tot die gewenste resultaat gelei. Aangesien ek nie 'n Linux -kenner is nie, is geen optimalisering of soortgelyke dinge gedoen nie. Ek is bewus daarvan dat daar beslis beter en meer doeltreffende oplossings is.

Kom ons neem aan dat u reeds Raspbian op u Pi geïnstalleer het (daar is baie tutoriale oor hoe om die basiese bedryfstelsel te installeer) en u het 'n skerm (via miniHDMI), muis en sleutelbord gekoppel. 'N WLAN -verbinding met die router of die internet is korrek ingestel. Tensy anders vermeld, word alle installasieprosedures in die terminale uitgevoer.

Installeer eksterne lessenaar (om toegang tot die PI vanaf u rekenaar te verkry):

sudo apt-get update

sudo apt-get

installeer xrdp

of u kan ook koploos werk via ssh (sien bv.

Verander wagwoord:

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

Installeer spoedtoets:

sudo

apt-get installeer python-pip

sudo pip installeer speedtest-cli

om te toets of die installasie suksesvol was, hardloop Speedtest in die terminale:

speedtest-cli

As alles reg is, moet u iets kry soos op die eerste foto hierbo.

Installeer wiringPI

sudo apt-get install git-core

git kloon git: //git.drogon.net/wiringPi

cd bedradingPi

./gebou

(sien ook

Alternatiewelik:

sudo apt-get install wiringpi

(sien

Installeer BCM2835

(sien

Laai bcm2835-1.60.tar.gz af (of 'n nuwer weergawe indien beskikbaar)

teer zxvf bcm2835-1.60.tar.gz

cd bcm2835-1.60

./konfigureer

maak

sudo maak seker

sudo maak installeer

Installeer die Python -beeldbiblioteek

sudo apt-get install python-beeldvorming

Alternatiewelik:

sudo apt-get installeer python-pil

Aktiveer die I2C -funksie.

Voer die volgende opdrag uit om u Raspberry Pi -bord op te stel:

sudo raspi-config

Kies koppelvlakopsies-> I2C -> ja, om die I2C -kernbestuurder te begin. Dan moet u ook die konfigurasielêer verander. Voer die volgende opdrag uit om die konfigurasielêer oop te maak:

sudo nano /etc /modules

Voeg die volgende twee reëls by die konfigurasielêer

i2c-bcm2708

i2c-dev

Sien ook

Aktiveer die SPI -funksie

Voer die volgende opdrag uit om u Raspberry Pi -bord op te stel:

sudo raspi-config

Kies koppelvlakopsies-> SPI -> ja, om die SPI -kernbestuurder te begin.

Installeer addisionele lettertipes:

sudo apt-get install ttf-mscorefonts-installer

Laai lettertipes af en installeer dit (Roboto + Droid)

gksudo

pcmanfm

Om 'n bestuurder met wortelvoorregte te begin en truetype -lettertipes na die map/usr/share/fonts/truetype te kopieer

Alternatiewelik:

Kopieer die lettertipes na die Downloads -lêergids met WinSCP (ssh moet geaktiveer wees om WinSCP te kan gebruik)

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

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

U benodig wortelvoorregte om toegang tot die lettertipe -gids te verkry. Miskien is daar beter maniere om dit te doen (soos reeds genoem, ek is nie 'n Linux -kenner nie), maar beide maniere het vir my gewerk.

Python -lêers:

Gebruik die filemanger om 'n nuwe gids "bandwidth_monitor" te skep

Kopieer alle lêers na die gids bandwidth_monitor

Maak python -lêers en script uitvoerbaar

chmod +x *.py

chmod +x speedtest-cron.sh

Stel crontab op

crontab -e

Crontab word gebruik om programuitvoering te skeduleer, bv. spoedtoets elke 30 minute. Voeg die volgende lyne by u crontab (sien ook tweede figuur):

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

@reboot slaap 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

Beskrywing van die geskeduleerde take:

  • By herlaai word die herlaai -boodskap na die IOT -dashboard geskryf
  • By herlaai word die peiling test_now_button begin
  • elke 30 minute word 'n bandwydte -meting uitgevoer
  • elke 3 minute word die status van die knoppie vir afstandsherstel (op die IOT -dashboard) nagegaan
  • een keer per dag word 'n skermverfrissiklus begin.

Sien die sagteware -afdeling vir 'n kort beskrywing van die programme.

Stap 5: sagteware

Sagteware
Sagteware

Die sagteware is verdeel in verskeie lêers / programme:

bandwidth_monitor_0_4.py is die hoofprogram wat elke halfuur deur Crontab opgeroep word. Dit voer 'n bandwydte -toets uit (via die opdragreëlweergawe van speedtest.net). Tydens die toets is die RGB -LED blou. As die bandwydte bo die geselekteerde drempel is, word die waarde op die e-ink-skerm (saam met 'n tydstempel) vertoon en na die Ubidots-dashboard uitgevoer. As die bandwydte onder die drempel is, word die LED rooi en die meting word herhaal na 'n kort vertraging. Na 3 negatiewe pogings word die relais geaktiveer en sodoende word die kragtoevoer van die modem onderbreek. Herstelkode (waarde = 2) word na die loggedeelte geskryf.

poll_killswitch.py lees die status van 'n Booleaanse veranderlike op die paneelbord. As killswitch_state waar is, word die relais geaktiveer en die kragtoevoer van die modem word onderbreek. Die RGB -LED word groen tydens die peiling van die doodskakelaar. Na die herstel word die killswitch_state onwaar gestel en word 'n inskrywing in die loggedeelte van die paneelbord gegenereer (waarde = 1).

poll_test_now_button.py wag totdat die drukknoppie op die voorpaneel van die saak ingedruk word. Deur die knoppie te aktiveer, word 'n bandwydte -meting handmatig geaktiveer. As die program begin word (by die herlaai van die Raspberry Pi), knipper die RGB -LED rooi.

post_restart_message.py skryf die reset -kode (waarde = 3) na die log -afdeling van die paneelbord. Dit dui aan dat die bandwydte -monitor herbegin is. Tydens die program begin die RGB LED blou.

test_LED.py en test_relay.py is eenvoudige skrifte wat gebruik kan word om die hardeware funksie van die RGB LED en die relais te toets.

epdconfig.py en epd2in9.py is toesteldrywer vir die e-ink-skerm wat deur Waveshare verskaf word.

Om die programme toegang tot die Ubidots -dashboard te gee, moet u u individuele tokens en toestel- of veranderlike name byvoeg (as u verskillende notasies gebruik). Soek 'n afdeling soos die in die prent hierbo (vervang XXXXXXXX deur u teken).

Omvattende tutoriale oor hoe om die paneelbord te bou en hoe om die paneelbord in 'n Python -program te integreer, kan direk op die Ubidots -bladsy (https://help.ubidots.com/en/) of via Google gevind word.

Stap 6: IOT -dashboard

IOT Dashboard
IOT Dashboard

Die paneelbord wat deur Ubidots aangebied word (sien https://ubidots.com) bevat verskeie gebiede wat hieronder kortliks beskryf word.

    1. Tyds volgorde van op- en aflaaisnelheid. Elke halfuur word 'n nuwe waarde in die diagram ingevoeg.
    2. Tydsverloop van die gemete pingtyd. Elke halfuur word 'n nuwe waarde in die diagram ingevoeg.
    3. Tydvolgorde van die gemiddelde aflaaisnelheid. Die gemiddelde waarde van meer as 24 uur word bereken en op die diagram neergeskryf.
    4. Sigbladvoorstelling van die huidige meetwaardes, insluitend tydstempel.
    5. Knoppie vir afstandsbediening om die modem via die internet terug te stel. Navraag vind elke 3 minute plaas, dit wil sê, dit kan 'n rukkie neem voordat die aksie uitgevoer is.
    6. Registrasie van die laaste terugstellings, insluitend die rede vir die herstelling (afstandsbediening, afskakel of spanningverlies, onder die minimum bandwydte val)

Omvattende tutoriale oor hoe om die paneelbord te bou en hoe om die paneelbord in 'n Python -program te integreer, kan direk op die Ubidots -bladsy (https://help.ubidots.com/en/) of via Google gevind word.

Aanbeveel: