Obsah:

Monitor šírky pásma: 7 krokov (s obrázkami)
Monitor šírky pásma: 7 krokov (s obrázkami)

Video: Monitor šírky pásma: 7 krokov (s obrázkami)

Video: Monitor šírky pásma: 7 krokov (s obrázkami)
Video: TOP 5 Tajné funkce iPhonu, o kterých 90% lidí neví 2024, November
Anonim
Monitor šírky pásma
Monitor šírky pásma
Monitor šírky pásma
Monitor šírky pásma
Monitor šírky pásma
Monitor šírky pásma

Keďže som si často kládol otázku, akú šírku pásma v súčasnosti poskytuje môj poskytovateľ internetových služieb (na internetové pripojenie používam modem LTE), napadol ma systém monitorovania šírky pásma. Pretože by mal byť systém kompaktný a úsporný, vybral som si ako centrálny komponent Raspberry Pi Zero. Raspberry je k modemu pripojený prostredníctvom siete WLAN, takže je možné zistiť aj problémy s WLAN.

Zásoby

  • Raspberry Pi Zero WH
  • Displej elektronického atramentu Waveshare (modul 2,9 palca na e-papier)
  • Menič DC-DC (napr. DEBO DCDC 20W)
  • RGB LED (vybraté zo starého zariadenia)
  • Tlačidlo
  • Prepnúť
  • Reléový modul (napr. 2 -cestný reléový modul 2 -cestný reléový modul)
  • Zástrčka + zásuvka (obe zodpovedajú veľkosti zástrčky napájacieho zdroja vášho modemu)
  • 3D tlačené puzdro

Krok 1: Vlastnosti

Vlastnosti
Vlastnosti
Vlastnosti
Vlastnosti
Vlastnosti
Vlastnosti
  • Raspberry Pi Zero je pripojený cez WLAN, testuje rýchlosť sťahovania a sťahovania a meria ping každú pol hodinu. Ako základ pre meranie sa používa verzia speedtest.net pre príkazový riadok.
  • Výsledok merania šírky pásma a pingu sa zobrazuje na displeji elektronického atramentu. Zobrazí sa aj čas merania.
  • Ak rýchlosť sťahovania klesne pod definovanú prahovú hodnotu, relé modem na krátku dobu vypne a zapne. Modem sa tak resetuje bez akejkoľvek úpravy zariadenia (preruší sa iba napájanie).
  • K dispozícii je tlačidlo na prednej strane zariadenia na manuálne spustenie merania šírky pásma.
  • Namerané hodnoty sa zobrazia na palubnom paneli Ubidots (portál IOT). V prehľade vidíte aj časovú históriu nameraných hodnôt a dôvody posledných resetov.
  • Na portáli IOT nájdete aj tlačidlo na vzdialený reset modemu.
  • Monitor šírky pásma využíva napájanie modemu. Nie je potrebná žiadna dodatočná dodávka. Relé prerušuje presmerovanie napájania na modem - malina zostáva zapnutá.

Krok 2: Zapojenie

Elektrické vedenie
Elektrické vedenie
Elektrické vedenie
Elektrické vedenie
Elektrické vedenie
Elektrické vedenie
Elektrické vedenie
Elektrické vedenie

Na prvom obrázku môžete vidieť vnútorný dizajn monitora šírky pásma:

Hlavnými zložkami sú:

    1. Tlačidlo
    2. E-ink displej
    3. Raspberry Pi Zero
    4. Reléový modul
    5. RGB LED + rezistory (v závislosti od použitej RGB LED)
    6. Prepnúť
    7. Prevodník DC-DC
    8. Zásuvka

Druhý obrázok ukazuje schému zapojenia. Kladný pól napájacieho napätia je vedený cez spínač do meniča napätia DC-DC (ktorý prevádza napájacie napätie 12V smerovača na 5V pre malinu) a cez relé (cez normálne zapojený kolík) späť do výstupný konektor. Modem je teda napájaný aj vtedy, keď je monitor šírky pásma vypnutý.

Meranie šírky pásma je možné spustiť ručne pomocou tlačidla. RGB LED sa používa na vizualizáciu rôznych prevádzkových stavov.

Spojenie medzi Raspberry Pi a displejom e-ink nie je zobrazené na schéme zapojenia. Pripojte displej podľa tabuľky a vývodu vyššie.

Krok 3: 3D tlač a vytváranie prenasledovania

3D tlač a vytváranie prenasledovania
3D tlač a vytváranie prenasledovania
3D tlač a vytváranie prenasledovania
3D tlač a vytváranie prenasledovania
3D tlač a vytváranie prenasledovania
3D tlač a vytváranie prenasledovania
3D tlač a vytváranie prenasledovania
3D tlač a vytváranie prenasledovania

K puzdru sú potrebné nasledujúce diely (pozri obrázok vyššie):

    1. nižšia časť
    2. vyššia časť
    3. vpredu
    4. späť
    5. 4x držiak

Všetky diely je možné tlačiť bez podpier. Súbory a niektoré z ďalších mojich návrhov nájdete aj na Thingiverse:

Displej je možné pripevniť na predný panel pomocou úchytiek a obojstrannej pásky. Gombíkový spínač a konektor na zadnej strane sú priskrutkované k zadnému a zadnému panelu. Na spojenie dvoch polovíc puzdra som použil skrutky 3x20 mm. Tolerancie drážok pre predný a zadný panel sú relatívne tesné. V prípade potreby je potrebné predný a zadný panel obrúsiť na okraji (na vnútornej strane, aby nedošlo k zničeniu povrchu).

Krok 4: Nastavenie Raspberry PI

Nastavenie Raspberry PI
Nastavenie Raspberry PI
Nastavenie Raspberry PI
Nastavenie Raspberry PI

Táto inštalačná príručka je založená na zostavení niekoľkých inštalačných pokynov z rôznych zdrojov (výrobcovia displejov e-Ink, …). Pokyny pre mňa viedli k požadovanému výsledku. Keďže nie som odborník na Linux, neboli vykonané žiadne optimalizácie ani nič podobné. Uvedomujem si, že určite existujú lepšie a efektívnejšie riešenia.

Predpokladajme, že už máte na svojom Pi nainštalovaný Raspbian (existuje veľa návodov na inštaláciu základného operačného systému) a máte pripojený displej (prostredníctvom miniHDMI), myš a klávesnicu. Predpokladá sa aj správne nastavené pripojenie WLAN k smerovaču alebo internetu. Pokiaľ nie je uvedené inak, všetky inštalačné postupy sa vykonávajú v termináli.

Nainštalujte vzdialenú plochu (na prístup k PI z počítača):

sudo apt-get aktualizácia

sudo apt-get

nainštalovať xrdp

alebo môžete pracovať aj bez hlavy cez ssh (pozri napr.

Zmeniť heslo:

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

Nainštalovať speedtest:

sudo

apt-get nainštalovať python-pip

sudo pip install speedtest-cli

na otestovanie, či bola inštalácia úspešná, spustite Speedtest na termináli:

speedtest-cli

ak je všetko správne, mali by ste získať niečo ako na prvom obrázku vyššie.

Nainštalujte kabelážPI

sudo apt-get install git-core

klon git git: //git.drogon.net/wiringPi

cd elektroinštalácia Pi

./build

(pozri tiež

Alternatíva:

sudo apt-get install wiringpi

(pozri

Nainštalujte BCM2835

(pozri

Stiahnite si bcm2835-1.60.tar.gz (alebo novšiu verziu, ak je k dispozícii)

decht zxvf bcm2835-1,60.tar.gz

cd bcm2835-1,60

./konfigurovať

urobiť

sudo urob kontrolu

sudo vykonať inštaláciu

Nainštalujte si zobrazovaciu knižnicu Python

sudo apt-get install python-imaging

Alternatíva:

sudo apt-get install python-pil

Povoľte funkciu I2C.

Na konfiguráciu dosky Raspberry Pi spustite nasledujúci príkaz:

sudo raspi-config

Ak chcete spustiť hlavný ovládač I2C, vyberte položku Možnosti rozhrania -> I2C -> áno. Potom musíte tiež upraviť konfiguračný súbor. Spustite nasledujúci príkaz na otvorenie konfiguračného súboru:

sudo nano /etc /modules

Do konfiguračného súboru pridajte nasledujúce dva riadky

i2c-bcm2708

i2c-dev

Pozri tiež

Povoliť funkciu SPI

Spustite nasledujúci príkaz na konfiguráciu dosky Raspberry Pi:

sudo raspi-config

Na spustenie hlavného ovládača SPI zvoľte Možnosti rozhrania -> SPI -> áno.

Nainštalujte ďalšie písma:

sudo apt-get install ttf-mscorefonts-installer

Stiahnite si a nainštalujte písma (Roboto + Droid)

gksudo

pcmanfm

Ak chcete spustiť správcu súborov s oprávneniami root a skopírovať písma truetype do priečinka/usr/share/fonts/truetype

Alternatíva:

Skopírujte písma do priečinka Stiahnuté súbory pomocou WinSCP (na používanie WinSCP musí byť povolené ssh)

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

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

Na prístup k priečinku s písmami potrebujete oprávnenia root. Možno existujú lepšie spôsoby, ako to urobiť (ako som už spomenul, nie som odborník na Linux), ale oba spôsoby fungovali pre mňa.

Súbory Pythonu:

Pomocou správcu súborov vytvorte nový priečinok „bandwidth_monitor“

Skopírujte všetky súbory do adresára bandwidth_monitor

Vytvorte spustiteľné súbory a skripty pythonu

chmod +x *.py

chmod +x speedtest-cron.sh

Konfigurujte crontab

crontab -e

Crontab sa používa na naplánovanie spustenia programu, napr. speedtest každých 30 min. Pridajte do svojho crontabu nasledujúce riadky (pozri tiež druhý obrázok):

@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

Popis naplánovaných úloh:

  • pri reštarte sa správa o reštarte zapíše na informačný panel IOT
  • pri reštarte sa spustí hlasovanie test_now_button
  • každých 30 minút sa vykonáva meranie šírky pásma
  • každé 3 minúty sa kontroluje stav tlačidla diaľkového resetovania (na prístrojovej doske IOT)
  • jedenkrát denne sa spustí cyklus obnovenia displeja.

Stručný popis programov nájdete v sekcii softvéru.

Krok 5: Softvér

Softvér
Softvér

Softvér je rozdelený do niekoľkých súborov / programov:

bandwidth_monitor_0_4.py je hlavný program, ktorý Crontab vyvoláva každú pol hodinu. Vykonáva test šírky pásma (prostredníctvom verzie príkazového riadka speedtest.net). Počas testu je LED dióda RGB modrá. Ak je šírka pásma nad zvoleným prahom, hodnota sa zobrazí na displeji elektronického atramentu (spolu s časovou pečiatkou) a exportuje sa na palubnú dosku Ubidots. Ak je šírka pásma pod prahovou hodnotou, dióda LED sa zmení na červenú a meranie sa po krátkom oneskorení zopakuje. Po 3 negatívnych pokusoch sa relé aktivuje a tým sa preruší napájanie modemu. Resetovací kód (hodnota = 2) sa zapíše do sekcie denníka.

poll_killswitch.py číta stav logickej premennej na palubnej doske. Ak je hodnota killswitch_state pravdivá, relé sa aktivuje a napájanie modemu sa preruší. RGB LED sa počas hlasovania killswitchu zmení na zelenú. Po resete je killswitch_state nastavený na hodnotu false a vygeneruje sa záznam v sekcii denníka na palubnej doske (hodnota = 1).

poll_test_now_button.py čaká na stlačenie tlačidla na prednom paneli puzdra. Aktiváciou tlačidla sa meranie šírky pásma spustí ručne. Po spustení programu (pri reštarte Raspberry Pi) LED dióda RGB bliká načerveno.

post_restart_message.py zapíše resetovací kód (hodnota = 3) do sekcie denníka na paneli dashboard. To znamená, že monitor šírky pásma bol reštartovaný. Počas spustenia programu LED dióda RGB bliká namodro.

test_LED.py a test_relay.py sú jednoduché skripty, ktoré je možné použiť na testovanie hardvérovej funkcie RGB LED a relé.

epdconfig.py a epd2in9.py sú ovládače zariadenia pre displej elektronického atramentu, ktoré poskytuje spoločnosť Waveshare.

Aby ste umožnili programom prístup na hlavný panel Ubidots, musíte pridať svoje jednotlivé tokeny a názvy zariadení alebo premenných (ak používate rôzne zápisy). Vyhľadajte sekciu, ako je zobrazená na obrázku vyššie (nahraďte XXXXXXXX svojim tokenom).

Komplexné návody, ako zostaviť dashboard a ako integrovať dashboard do programu Python, nájdete priamo na stránke Ubidots (https://help.ubidots.com/en/) alebo cez Google.

Krok 6: Hlavný panel IOT

Hlavný panel IOT
Hlavný panel IOT

Hlavný panel hostovaný Ubidots (pozri https://ubidots.com) obsahuje niekoľko oblastí, ktoré sú stručne popísané nižšie.

    1. Časová postupnosť rýchlosti up a download. Každú pol hodinu sa do diagramu vloží nová hodnota.
    2. Časový priebeh nameraného času pingu. Každú pol hodinu sa do diagramu vloží nová hodnota.
    3. Časová postupnosť priemernej rýchlosti sťahovania. Vypočíta sa priemerná hodnota za 24 hodín a zapíše sa do diagramu.
    4. Tabuľkové znázornenie aktuálnych nameraných hodnôt vrátane časovej pečiatky.
    5. Tlačidlo diaľkového ovládania na resetovanie modemu cez internet. Dotaz sa vyskytuje každé 3 minúty, to znamená, že môže chvíľu trvať, kým sa akcia vykoná.
    6. Záznam posledných resetov vrátane dôvodu resetovania (diaľkové spustenie, vypnutie alebo strata napätia, pokles pod minimálnu šírku pásma)

Komplexné návody, ako zostaviť dashboard a ako integrovať dashboard do programu Python, nájdete priamo na stránke Ubidots (https://help.ubidots.com/en/) alebo cez Google.

Odporúča: