Obsah:

Monitor šířky pásma: 7 kroků (s obrázky)
Monitor šířky pásma: 7 kroků (s obrázky)

Video: Monitor šířky pásma: 7 kroků (s obrázky)

Video: Monitor šířky pásma: 7 kroků (s obrázky)
Video: TOP 10 JAK SI LÉPE ZAPAMATOVAT UČIVO nebo cokoliv jiného 2024, Listopad
Anonim
Monitor šířky pásma
Monitor šířky pásma
Monitor šířky pásma
Monitor šířky pásma
Monitor šířky pásma
Monitor šířky pásma

Jelikož jsem se často ptal, jakou šířku pásma aktuálně poskytuje můj ISP (pro připojení k internetu používám LTE modem), napadlo mě systém pro sledování šířky pásma. Protože by měl být systém kompaktní a energeticky úsporný, zvolil jsem jako centrální komponentu Raspberry Pi Zero. Raspberry je připojen k modemu prostřednictvím WLAN, proto lze detekovat také problémy s WLAN.

Zásoby

  • Raspberry Pi Zero WH
  • Displej elektronického inkoustu Waveshare (modul 2,9 palce na e-papír)
  • Převodník DC-DC (např. DEBO DCDC 20W)
  • RGB LED (vyjmuto ze starého zařízení)
  • Stiskněte tlačítko
  • Přepínač
  • Reléový modul (např. 2cestný reléový modul 2cestný reléový modul)
  • Zástrčka + zásuvka (obojí odpovídá velikosti napájecího konektoru vašeho modemu)
  • 3D tištěné pouzdro

Krok 1: Funkce

Funkce
Funkce
Funkce
Funkce
Funkce
Funkce
  • Raspberry Pi Zero je připojeno přes WLAN, testuje rychlost stahování a stahování a každou půl hodinu provádí měření ping. Jako základ pro měření se používá verze speedtest.net pro příkazový řádek.
  • Výsledek měření šířky pásma a pingu se zobrazuje na displeji e-inkoustu. Zobrazí se také čas měření.
  • Pokud rychlost stahování klesne pod definovanou prahovou hodnotu, relé modem na krátkou dobu vypne a zapne. Modem je tedy resetován bez jakékoli úpravy zařízení (pouze je přerušeno napájení).
  • K dispozici je tlačítko na přední straně zařízení pro ruční spuštění měření šířky pásma.
  • Naměřené hodnoty jsou zobrazeny na řídicím panelu Ubidots (IOT Portal). V přehledu také vidíte časovou historii naměřených hodnot a důvody posledních resetů.
  • Na portálu IOT najdete také tlačítko pro vzdálený reset modemu.
  • Monitor šířky pásma využívá napájení modemu. Není potřeba žádná další dodávka. Relé přeruší předávání napájení modemu - malina zůstává zapnutá.

Krok 2: Zapojení

Elektrické vedení
Elektrické vedení
Elektrické vedení
Elektrické vedení
Elektrické vedení
Elektrické vedení
Elektrické vedení
Elektrické vedení

Na prvním obrázku můžete vidět vnitřní design monitoru šířky pásma:

Hlavní komponenty jsou:

    1. Stiskněte tlačítko
    2. E-ink displej
    3. Raspberry Pi Zero
    4. Reléový modul
    5. RGB LED + rezistory (v závislosti na RGB LED, kterou používáte)
    6. Přepínač
    7. Převodník DC-DC
    8. Zásuvka

Druhý obrázek ukazuje schéma zapojení. Kladný pól napájecího napětí je veden přes spínač do měniče napětí DC-DC (který převádí napájecí napětí 12V routeru na 5V pro Raspberry) a přes relé (přes normálně připojený pin) zpět do výstupní konektor. Když je monitor šířky pásma vypnutý, modem je tedy také napájen.

Měření šířky pásma lze spustit ručně pomocí tlačítka. RGB LED se používá k vizualizaci různých provozních stavů.

Spojení mezi Raspberry Pi a e-ink displejem není ve schématu zapojení znázorněno. Připojte displej podle tabulky a vývodu výše.

Krok 3: 3D tisk a vytváření chase

3D tisk a budování chase
3D tisk a budování chase
3D tisk a budování chase
3D tisk a budování chase
3D tisk a budování chase
3D tisk a budování chase
3D tisk a budování chase
3D tisk a budování chase

K pouzdru jsou potřebné následující části (viz obrázek výše):

    1. nižší část
    2. horní část
    3. přední
    4. zadní
    5. 4x držák

Všechny díly lze tisknout bez podpěr. Soubory a některé z mých dalších návrhů najdete také na Thingiverse:

Displej lze připevnit k přednímu panelu pomocí úchytů a oboustranné pásky. Knoflíkový spínač a konektor pro femal jsou přišroubovány k zadnímu a zadnímu panelu. K propojení obou polovin pouzdra jsem použil šrouby 3x20 mm. Tolerance v drážkách předního a zadního panelu jsou relativně těsné. V případě potřeby musí být přední a zadní panely broušeny na hraně (na vnitřní straně, aby nedošlo ke zničení povrchu).

Krok 4: Nastavení Raspberry PI

Nastavení Raspberry PI
Nastavení Raspberry PI
Nastavení Raspberry PI
Nastavení Raspberry PI

Tato instalační příručka je založena na kompilaci několika instalačních pokynů z různých zdrojů (výrobci displejů e-Ink, …). Pokyny pro mě vedly k požadovanému výsledku. Protože nejsem odborník na Linux, nebyly provedeny žádné optimalizace ani podobné. Jsem si vědom toho, že určitě existují lepší a efektivnější řešení.

Předpokládejme, že už máte na svém Pi nainstalován Raspbian (existuje mnoho návodů, jak nainstalovat základní operační systém) a máte připojený displej (přes miniHDMI), myš a klávesnici. Předpokládá se také správně nastavené připojení WLAN k routeru nebo internetu. Pokud není uvedeno jinak, všechny instalační postupy se provádějí v terminálu.

Nainstalujte vzdálenou plochu (pro přístup k PI z vašeho počítače):

sudo apt-get update

sudo apt-get

nainstalovat xrdp

nebo můžete také pracovat bez hlavy přes ssh (viz např.

Změnit heslo:

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

Nainstalujte speedtest:

sudo

apt-get install python-pip

sudo pip install speedtest-cli

Chcete -li vyzkoušet, zda byla instalace úspěšná, spusťte Speedtest v terminálu:

speedtest-cli

pokud je vše správné, měli byste získat něco jako na prvním obrázku výše.

Nainstalujte wiringPI

sudo apt-get install git-core

git clone git: //git.drogon.net/wiringPi

cd kabelážPi

./stavět

(viz také

Alternativní:

sudo apt-get install wiringpi

(viz

Nainstalujte BCM2835

(viz

Stáhnout bcm2835-1.60.tar.gz (nebo novější verzi, je-li k dispozici)

tar zxvf bcm2835-1.60.tar.gz

cd bcm2835-1,60

./configure

udělat

sudo provést kontrolu

sudo provést instalaci

Nainstalujte si zobrazovací knihovnu Pythonu

sudo apt-get install python-imaging

Alternativní:

sudo apt-get install python-pil

Povolte funkci I2C.

Ke konfiguraci desky Raspberry Pi spusťte následující příkaz:

sudo raspi-config

Chcete -li spustit základní ovladač I2C, vyberte Možnosti rozhraní -> I2C -> ano. Poté musíte také upravit konfigurační soubor. Spuštěním následujícího příkazu otevřete konfigurační soubor:

sudo nano /etc /modules

Do konfiguračního souboru přidejte následující dva řádky

i2c-bcm2708

i2c-dev

Viz také

Povolte funkci SPI

Ke konfiguraci desky Raspberry Pi spusťte následující příkaz:

sudo raspi-config

Chcete -li spustit základní ovladač SPI, vyberte Možnosti rozhraní -> SPI -> ano.

Nainstalujte další písma:

sudo apt-get install ttf-mscorefonts-installer

Stažení a instalace písem (Roboto + Droid)

gksudo

pcmanfm

Chcete -li spustit správce souborů s oprávněními root a zkopírovat písma truetype do složky/usr/share/fonts/truetype

Alternativní:

Zkopírujte písma do složky Stahování pomocí WinSCP (pro použití WinSCP musí být povoleno ssh)

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

sudo cp -r/home/pi/Soubory ke stažení/roboto/usr/share/fonts/truetype

Pro přístup ke složce písem potřebujete oprávnění root. Možná existují lepší způsoby, jak to udělat (jak již bylo zmíněno, nejsem odborník na Linux), ale oba způsoby fungovaly pro mě.

Soubory Pythonu:

Pomocí správce souborů vytvořte novou složku „bandwidth_monitor“

Zkopírujte všechny soubory do adresáře bandwidth_monitor

Vytvořte spustitelné soubory a skripty pythonu

chmod +x *.py

chmod +x speedtest-cron.sh

Konfigurujte crontab

crontab -e

Crontab se používá k naplánování spuštění programu, např. speedtest každých 30 min. Přidejte do svého crontabu následující řádky (viz také druhý obrázek):

@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 úkolů:

  • při restartu je zpráva restartu zapsána na řídicí panel IOT
  • při restartu se spustí hlasování test_now_button
  • každých 30 minut se provádí měření šířky pásma
  • každé 3 minuty se kontroluje stav tlačítka dálkového resetu (na palubní desce IOT)
  • jednou denně se spustí cyklus aktualizace displeje.

Stručný popis programů najdete v části softwaru.

Krok 5: Software

Software
Software

Software je rozdělen do několika souborů / programů:

bandwidth_monitor_0_4.py je hlavní program, který Crontab spouští každou půl hodinu. Provádí test šířky pásma (prostřednictvím verze příkazového řádku speedtest.net). Během testu je LED dioda RGB modrá. Pokud je šířka pásma nad zvolenou prahovou hodnotou, hodnota se zobrazí na displeji elektronického inkoustu (spolu s časovým razítkem) a exportuje se na řídicí panel Ubidots. Pokud je šířka pásma pod prahovou hodnotou, LED dioda zčervená a měření se po krátké prodlevě opakuje. Po 3 negativních pokusech se relé aktivuje a tím se přeruší napájení modemu. Do sekce protokolu je zapsán resetovací kód (hodnota = 2).

poll_killswitch.py čte stav logické proměnné na palubní desce. Pokud je killswitch_state true, relé se aktivuje a napájení modemu se přeruší. RGB LED se během hlasování killswitche rozsvítí zeleně. Po resetu je killswitch_state nastaven na hodnotu false a je vygenerován záznam v sekci protokolu na palubní desce (hodnota = 1).

poll_test_now_button.py čeká na stisknutí tlačítka na předním panelu pouzdra. Aktivací tlačítka se měření šířky pásma spustí ručně. Když je program spuštěn (při restartu Raspberry Pi), LED dioda RGB bliká červeně.

post_restart_message.py zapíše resetovací kód (hodnota = 3) do části protokolu na řídicím panelu. To znamená, že monitor šířky pásma byl restartován. Během spuštění programu LED dioda RGB bliká modře.

test_LED.py a test_relay.py jsou jednoduché skripty, které lze použít k testování hardwarové funkce RGB LED a relé.

epdconfig.py a epd2in9.py jsou ovladače zařízení pro zobrazení e-inkoustu poskytované společností Waveshare.

Aby programy mohly přistupovat k řídicímu panelu Ubidots, musíte přidat své jednotlivé tokeny a názvy zařízení nebo proměnných (pokud používáte různé zápisy). Vyhledejte sekci, jako je ta na obrázku výše (nahraďte XXXXXXXX svým tokenem).

Obsáhlé návody, jak sestavit dashboard a jak integrovat dashboard do programu Pythonu, najdete přímo na stránce Ubidots (https://help.ubidots.com/en/) nebo přes Google.

Krok 6: IOT Dashboard

Hlavní panel IOT
Hlavní panel IOT

Řídicí panel hostovaný Ubidots (viz https://ubidots.com) obsahuje několik oblastí, které jsou stručně popsány níže.

    1. Časová posloupnost rychlosti stahování a stahování. Každou půl hodinu je do diagramu vložena nová hodnota.
    2. Časový průběh měřeného času pingu. Každou půl hodinu je do diagramu vložena nová hodnota.
    3. Časová posloupnost průměrné rychlosti stahování. Vypočítá se průměrná hodnota za 24 hodin a zapíše se do diagramu.
    4. Tabulkové znázornění aktuálních naměřených hodnot včetně časového razítka.
    5. Tlačítko dálkového ovládání pro resetování modemu přes internet. Dotaz se vyskytuje každé 3 minuty, tj. Může nějakou dobu trvat, než se akce provede.
    6. Protokolování posledních resetů včetně důvodu resetu (dálkové spuštění, vypnutí nebo ztráta napětí, pokles pod minimální šířku pásma)

Obsáhlé návody, jak sestavit dashboard a jak integrovat dashboard do programu Pythonu, najdete přímo na stránce Ubidots (https://help.ubidots.com/en/) nebo přes Google.

Doporučuje: