Obsah:

Internetový měřič rychlosti: 4 kroky (s obrázky)
Internetový měřič rychlosti: 4 kroky (s obrázky)

Video: Internetový měřič rychlosti: 4 kroky (s obrázky)

Video: Internetový měřič rychlosti: 4 kroky (s obrázky)
Video: Apple iPhone 4 - obrázky, video a fotoaparát 2024, Listopad
Anonim
Image
Image
Internetový měřič rychlosti
Internetový měřič rychlosti
Internetový měřič rychlosti
Internetový měřič rychlosti

Přehled

Tento „měřič rychlosti internetu“vám poskytne dohled nad používáním vaší sítě v reálném čase. Tyto informace jsou k dispozici na webovém rozhraní většiny domácích routerů. Přístup k němu však vyžaduje, abyste zastavili svůj aktuální úkol a šli ho vyhledat.

Chtěl jsem zobrazit tyto informace, aniž bych musel přerušit svůj aktuální úkol, zobrazit je ve formátu, který je srozumitelný pouhým letmým pohledem, a získat informace způsobem, který by fungoval s co největším počtem routerů, aby ostatní mohli potenciálně také použít.

Jak to dělá věci

Jako způsob získávání informací ze směrovače jsem se rozhodl pro protokol SNMP (Simple Network Management Protocol). SNMP je široce používán v síťových zařízeních a pokud to vaše zařízení ve výchozím nastavení nepodporuje, lze k implementaci SNMP použít DDWRT (firmware routeru s otevřeným zdrojovým kódem).

K zobrazení informací srozumitelným způsobem jsem použil měřidlo z auta. Automobilové měřiče jsou navrženy tak, aby vám poskytovaly informace, aniž by rušily nebo zmatily, takže řidič může sledovat svůj zrak na silnici. Také jsem měl nějaké ležení kolem.

Protože to bude na mém stole, rozhodl jsem se, že také udělám podsvícení RGB, protože počítačové příslušenství by mělo být všechno RGB. Že jo?

Výzvy

Měřidla, která jsem měl, používají pohon Air-Core. Před tímto projektem jsem o nich nikdy neslyšel.

Z Wikipedie: Měřič jádra vzduchu se skládá ze dvou nezávislých kolmých cívek obklopujících dutou komoru. Hřídel jehly vyčnívá do komory, kde je k hřídeli připevněn permanentní magnet. Když proud protéká kolmými cívkami, jejich magnetická pole se překrývají a magnet se může vyrovnat s kombinovanými poli.

Nepodařilo se mi najít knihovnu pro Arduino, která podporovala SNMP v konfiguraci správce. SNMP má dvě hlavní formy, agenta a manažera. Agenti reagují na požadavek a manažeři posílají požadavek agentům. Byl jsem schopen získat funkčnost manažera úpravou knihovny Arduino_SNMP vytvořené 0neblock. Nikdy jsem neprogramoval v C ++ kromě toho, že blikají LED diody na Arduinu, takže pokud se vyskytnou problémy s knihovnou SNMP, dejte mi vědět a pokusím se je opravit, ale prozatím to funguje.

Protokol SNMP navíc není určen pro prohlížení v reálném čase. Zamýšlené použití je pro sledování statistik a detekci výpadků. Z tohoto důvodu se informace o routeru aktualizují pouze každých 5 sekund (vaše zařízení se může lišit). To je příčinou zpoždění mezi číslem na testu rychlosti a pohybem jehly.

Krok 1: Nástroje a materiály

Nástroje a materiály
Nástroje a materiály
Nástroje a materiály
Nástroje a materiály
Nástroje a materiály
Nástroje a materiály
Nástroje a materiály
Nástroje a materiály
Návrh obvodu
Návrh obvodu

Budeme potřebovat 3 plné H-můstky. Modely, které jsem použil, jsou Dual TB6612FNGand Dual L298N.

Každý pohon Air-Core vyžaduje 2 plné H-můstky, protože cívky je třeba ovládat nezávisle.

Jeden z měřidel, které používám, má jednu cívku zkratovanou k zemi pomocí diody a odporu. Nejsem si jistý vědou, která je za tím, ale to mu umožňuje otočit se o 90 stupňů s napájením pouze jedné cívky.

Budu používat regulátor 12v až 5v, který je součástí desky L298N, kterou jsem vybral pro napájení ESP32.

Všechny obvody LED jsou volitelné, stejně jako konektory JST. Dráty můžete snadno připájet přímo k ESP32 a ovladači motoru.

Krok 3: Návrh kódu

Nastavení kódu

Abychom mohli používat desku ESP32, budeme muset nastavit Arduino. Zde je dobrý průvodce, který vás provede nastavením ESP32 Arduino.

Budete také potřebovat zde umístěnou knihovnu Arduino_SNMP.

Ke konfiguraci kódu budete muset shromáždit nějaké informace.

  1. Router IP
  2. Maximální rychlost odesílání
  3. Maximální rychlost stahování
  4. Vaše WiFi jméno a heslo
  5. OID, které obsahuje počty oktetů pro „in“a „out“v rozhraní WAN vašich routerů

Pro požadované informace existují standardní OID (identifikátory objektů). Podle standardu MIB-2 chceme čísla:

ifInOctets.1.3.6.1.2.1.2.2.1.16. X

ifOutOctets.1.3.6.1.2.1.2.2.1.10. X

Kde X je číslo přiřazené rozhraní, ze kterého chcete získat statistiky. Pro mě je toto číslo 3. Jedním ze způsobů, jak potvrdit, že je to pro vás správné OID, a zjistit, jaké číslo rozhraní potřebujete použít, je použít nástroj, jako je MIB Browser.

K získání maximálních rychlostí jsem použil SpeedTest.net. Jakmile budete mít své rychlosti v Mbps, budete je muset převést na oktety pomocí tohoto vzorce.

Oktety za sekundu = (Výsledek testu rychlosti v Mb / s * 1048576) / 8

Funkce kódu

Kód odešle routeru požadavek na získání SNMP. Router poté odpoví číslem, číslo představuje počet odeslaných nebo přijatých oktetů. Současně zaznamenáváme počet milisekund, které uplynuly od spuštění Arduina.

Jakmile k tomuto procesu dojde alespoň dvakrát, můžeme pomocí tohoto kódu vypočítat procento využití na základě našich maximálních hodnot

percentDown = ((float) (byteDown - byteDownLast)/(float) (maxDown * ((millis () - timeLast)/1000))) * 100;

Matematika se rozpadá takto:

octetsDiff = snmp_result - Previous_ snmp_result

timeFrame = currentTime - timeLast

MaxPosableOverTime = (timeFrame * Octets_per_second)/1000

Procento = (octetsDiff / MaxPosableOverTime) * 100

Nyní, když máme procento využití sítě, stačí ji zapsat do měřidla. Děláme to ve 2 krocích. Nejprve použijeme funkci updateDownloadGauge. V této funkci používáme „mapu“k převodu procenta na číslo, které představuje polohu radiánu na měřidle. Potom dáme toto číslo funkci setMeterPosition k přesunutí jehly do nové polohy.

Krok 4: Design pouzdra

Design pouzdra
Design pouzdra
Design pouzdra
Design pouzdra
Design pouzdra
Design pouzdra

Aby vše obsahovalo, navrhl jsem skříň ve fusion360 a 3Dtiskl ji. Design, který jsem vytvořil, je poměrně jednoduchý. Pomocí horkého lepidla jsem upevnil součásti dovnitř a měřidlo je drženo na místě tím, že je sevřeno mezi přední kryt a zadní kryt. K vytvoření pouzdra nemusíte používat 3D tisk. Můžete například vyrobit pouzdro ze dřeva, nebo můžete vše vrátit do původního pouzdra, do kterého přišly měřidla.

Moje soubory STL jsou k dispozici na thingsiverse, pokud se na ně chcete podívat, ale je nepravděpodobné, že by pro vás fungovaly, pokud nezískáte přesně stejná měřidla, která jsem použil.

Soubory případů:

Děkuji za přečtení. Pokud máte nějaké dotazy, dejte mi vědět a já se pokusím odpovědět.

Doporučuje: