Obsah:
Video: Internetový měřič rychlosti: 4 kroky (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
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
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.
- Router IP
- Maximální rychlost odesílání
- Maximální rychlost stahování
- Vaše WiFi jméno a heslo
- 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
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:
Záznam rychlosti větru a slunečního záření: 3 kroky (s obrázky)
Záznam rychlosti větru a slunečního záření: Potřebuji zaznamenat rychlost větru a sílu slunečního záření (ozáření), abych vyhodnotil, kolik energie lze získat pomocí větrné turbíny a/nebo solárních panelů. Budu měřit jeden rok, analyzovat data a poté navrhnout systém mimo síť
Internetový rychloměr: 9 kroků (s obrázky)
Internetový rychloměr: V Indii probíhá úplné zablokování, vše včetně poštovních služeb bylo uzavřeno. Žádné nové projekty PCB, žádné nové komponenty, nic! Abych překonal nudu a nechal se zaměstnat, rozhodl jsem se udělat něco z částí, které jsem
Internetový ventilátor pro Zwift: 7 kroků (s obrázky)
Internet Connected Fan pro Zwift: Vytvořil jsem ventilátor, který je připojen k internetu, pro použití s Zwift, virtuálním závodním / tréninkovým systémem pro cyklistické závody. Když ve Zwiftu jedete rychleji, ventilátor se otáčí rychleji, aby simuloval vnější jízdní podmínky .;) Při jeho stavbě jsem si užil spoustu zábavy, doufám, že si užijete
Hodiny Ribba Word s Wemos D1 Mini (internetový časový server): 8 kroků (s obrázky)
Ribba Word Clock With Wemos D1 Mini (Internet Time Server): Myslím, že každý přijde do bodu, kdy mu to lechtá v prstech a chce postavit Word Clock. Toto je můj pokus a můj celkový závěr vybudovat ho co nejefektivněji. V první řadě vlastním 3D tiskárnu a mám přístup
Internetový budík s rádiem 1 £: 5 kroků (s obrázky)
Internetový budík s rádiem 1 GBP: Jako mnoho lidí mám starý smartphone a jak víme, existuje mnoho způsobů využití, které je možné použít. Zde vyrobím internetové rádio s hodinami, které bude stát mnohem méně než ty fantastické můžete připojit svůj iPhone