Obsah:
- Zásoby
- Krok 1: Funkce
- Krok 2: Zapojení
- Krok 3: 3D tisk a vytváření chase
- Krok 4: Nastavení Raspberry PI
- Krok 5: Software
- Krok 6: IOT Dashboard
- Krok 7: Zavedení základních funkcí
Video: Monitor šířky pásma: 7 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:20
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
- 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í
Na prvním obrázku můžete vidět vnitřní design monitoru šířky pásma:
Hlavní komponenty jsou:
- Stiskněte tlačítko
- E-ink displej
- Raspberry Pi Zero
- Reléový modul
- RGB LED + rezistory (v závislosti na RGB LED, kterou používáte)
- Přepínač
- Převodník DC-DC
- 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
K pouzdru jsou potřebné následující části (viz obrázek výše):
- nižší část
- horní část
- přední
- zadní
- 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
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 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
Řídicí panel hostovaný Ubidots (viz https://ubidots.com) obsahuje několik oblastí, které jsou stručně popsány níže.
- Časová posloupnost rychlosti stahování a stahování. Každou půl hodinu je do diagramu vložena nová hodnota.
- Časový průběh měřeného času pingu. Každou půl hodinu je do diagramu vložena nová hodnota.
- Časová posloupnost průměrné rychlosti stahování. Vypočítá se průměrná hodnota za 24 hodin a zapíše se do diagramu.
- Tabulkové znázornění aktuálních naměřených hodnot včetně časového razítka.
- 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.
- 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:
Visuino Jak pomocí modulace šířky pulsu (PWM) změnit jas LED: 7 kroků
Visuino Jak použít modulaci šířky pulsu (PWM) ke změně jasu LED: V tomto tutoriálu použijeme LED připojenou k Arduino UNO a Visuino, abychom změnili její jas pomocí Pulse Width Modulation (PWM). Podívejte se na ukázkové video
RAM RAM Visuino pro modulaci šířky pulzu (PWM) pomocí LED: 8 kroků
Visuino RAMPS for Pulse Width Modulation (PWM) using LED: V tomto tutoriálu použijeme LED připojenou k Arduino UNO a Visuino pro ztlumení LED pomocí Pulse Width Modulation (PWM) a komponenty Ramps. Podívejte se na ukázkové video
Mikrokontrolér AVR. Modulace šířky pulsu. Ovladač stejnosměrného motoru a intenzity světla LED: 6 kroků
Mikrokontrolér AVR. Modulace šířky pulsu. Ovladač stejnosměrného motoru a intenzity světla LED: Ahoj všichni! Modulace šířky pulzu (PWM) je velmi běžnou technikou v oblasti telekomunikací a řízení výkonu. běžně se používá k ovládání výkonu přiváděného elektrickému zařízení, ať už je to motor, LED, reproduktory atd. Je to v podstatě modul
Rádiové pásma Ham 2 metry/ 70 cm mikropásková deska: 9 kroků
Rádiová pásma Ham 2 metry/ 70 cm mikropásková deska: Dobrý den, toto je Andy. Zdá se, že všechny jsou pro zařízení rfid nebo 2,4 Ghz nebo vyšší. Takže jsem se rozhodl vyvinout tištěný mikropáskový bo
Jednoduchá (a špinavá) modulace šířky pulzu (PWM) s časovačem 555: 3 kroky
Jednoduchá (a špinavá) modulace šířky pulzu (PWM) s časovačem 555: Jednoduchý obvod pro ovládání otáček motoru DC (ovládání rychlosti ventilátoru, stmívání světla / LED atd.) Pomocí časovače 555. Také dobrý výchozí bod pro nováčky, kteří chtějí získat své ruce špinavé s časovačem 555 IC. Někdo by tvrdil, že to není nejvíce