Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38
Vzhledem k tomu, že v Indii probíhá úplné zablokování, bylo uzavřeno vše včetně poštovních služeb. Žá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 dílů, které už mám doma. Začal jsem hledat z hromady elektronického odpadu a našel jsem starý, rozbitý analogový multimetr. Zachránil jsem z toho „pohyb metru“a rozhodl jsem se zobrazit nějaký druh informací, ale nevěděl jsem přesně co. Nejprve mě napadlo zobrazit statistiky COVID-19, ale na internetu už existuje mnoho lepších projektů. Data jsou také aktualizována po několika hodinách a stále ukazatel měřiče by byl nudný. Chtěl jsem data, která se rychle mění, mění se každou sekundu. Požádal jsem o návrhy na Instagramu a jeden z mých následovníků odpověděl internetovým rychloměrem. Znělo to zajímavě a rozhodl se to zvládnout!
V tomto Instructable vám ukážu, jak jsem chytil data ze svého WiFi routeru pomocí SNMP a zobrazil rychlost odesílání a stahování na měřiči.
Začněme
Krok 1: Plán
Jako vždy před zahájením projektu jsem provedl malý průzkum na internetu. Našel jsem několik projektů souvisejících s tímto tématem. Byli dvojího druhu. Ten, který ukazoval rychlost internetu měřením „síly“signálu WiFi. Nejsem odborník na sítě, ale tohle neznělo správně. Ostatní změřili latenci a kategorizovali rychlost jako pomalou, střední nebo rychlou. Latence je časové zpoždění mezi odesláním požadavku a přijetím odpovědi, takže nemůže být skutečným vyjádřením rychlosti internetu. Můžeme tomu však říkat rychlost odezvy sítě! Pak tu byly legitimní projekty, které změřily čas potřebný ke stažení některých dat a na základě toho vypočetly rychlost internetu.
Ale právě v tomto projektu (Alistair) jsem se dozvěděl o protokolu Simple Network Management Protocol nebo SNMP. Pomocí SNMP můžeme komunikovat s WiFi routerem a získávat požadovaná data přímo z něj. Snadné, že? Právě ne! Protože různé modely použití WiFi routerů mají různá nastavení a potřebují spoustu pokusů a omylů, než konečně získáte výstup. Neboj se Stručně vysvětlím vše, co jsem se dozvěděl o SNMP a potížích, se kterými jsem se setkal v následujících krocích.
V plánu je tedy použít NodeMCU k připojení k WiFi routeru. Toto jsou kroky, jak se dostat k finálnímu výstupu:
- Pošlete routeru požadavek „požadující“požadovaná data
- Získejte odpověď ze směrovače
- Analyzujte odpověď a analyzujte z ní požadovaná data
- Převeďte „surová“data na srozumitelné informace
- Pro měřič generujte napětí úměrné rychlosti internetu
- Opakovat
K ovládání měřiče budu používat převodník DAC nebo digitální na analogový.
Krok 2: Věci, které budete potřebovat
1x NodeMCU
1x pohyb analogového měřiče
1x MPU4725 DAC
1x přepínač SPDT
1x 10k potenciometr
1x odpor
Krok 3: Výpočet vychylovacího proudu v plném rozsahu
Poznámka: Přejděte na krok 7 pro skutečné sestavení!
Tento krok přeskočte, pokud již znáte vychylovací proud měřiče v plném rozsahu. Můj měřič o tom nic nezmínil, takže jsem musel vypočítat. Nejprve se však rychle podívejme, jak takový pohyb funguje. Skládá se z cívky zavěšené v magnetickém poli. Když proud protéká cívkou, podle Faradayova zákona zažívá sílu. Cívka se může v magnetickém poli volně otáčet, stejně jako ukazatel, který je k cívce připevněn. Velikost proudu, díky kterému se ukazatel pohybuje na 'konci stupnice', se nazývá vychylovací proud v plném rozsahu. To je také maximální proud, který musí proudit cívkou.
Děje se toho mnohem víc, ale na to, co děláme, to stačí. Nyní máme pohyb. Může být použit jako voltmetr přidáním vysokého odporu v sérii nebo jako ampérmetr paralelním přidáním malého odporu. Použijeme jej jako voltmetr k zobrazení napětí úměrného rychlosti internetu. Musíme tedy vypočítat odpor, který má být přidán do série. K tomu musíme nejprve vypočítat vychylovací proud v plném rozsahu.
- Vyberte vysokou hodnotu odporu (například> 100k)
- Připojte jej do série s pohybem a pomocí hrnce na něj aplikujte proměnné napětí.
- Pomalu zvyšujte napětí, dokud ukazatel nedosáhne konce stupnice.
- Pomocí multimetru změřte protékající proud. Toto je vychylovací proud v plném rozsahu. (I = 150uA v mém případě)
Používáme DAC, který má rozsah výstupního napětí od 0 do VCC (3,3 V kvůli NodeMCU). To znamená, že když je na měřidlo aplikováno 3,3 V, mělo by ukazovat na konec stupnice. K tomu může dojít, když obvodem při použití 3,3 V protéká vychylovací proud v plném rozsahu. Pomocí Ohmova zákona 3,3/(vychylovací proud v plném rozsahu) udává hodnotu odporu, který má být vložen do série.
Krok 4: Vytvoření požadavku SNMP GET
Simple Network Management Protocol (SNMP) je internetový standardní protokol pro sběr a organizaci informací o spravovaných zařízeních v sítích IP a pro úpravu těchto informací za účelem změny chování zařízení. Mezi zařízení, která obvykle podporují protokol SNMP, patří kabelové modemy, směrovače, přepínače, servery, pracovní stanice, tiskárny a další. Pro toto sestavení budeme komunikovat s naším WiFi routerem pomocí SNMP a získáme požadovaná data.
Nejprve však musíme odeslat požadavek známý jako „GET Request“na router s uvedením podrobností o požadovaných datech. Formát GET Request je zobrazen na obrázku. Žádost se skládá z různých částí. Zvýraznil jsem bajty, které byste mohli chtít změnit.
Vezměte prosím na vědomí, že vše je v šestnáctkové soustavě.
Zpráva SNMP -V mém případě je délka celé zprávy 40 (šedá barva), což je při převodu na hexadecimální hodnotu 0x28.
Řetězec komunity SNMP - hodnota „VEŘEJNÁ“je zapsána hexadecimálně jako „70 75 62 6C 69 63“, jejíž délka je 6 (žlutá).
Typ SNMP PDU - V mém případě je délka zprávy 27 (modrá), tj. 0x1B.
Varbind List Type - V mém případě je délka zprávy 16 (zelená), tj. 0x10.
Varbind Type - V mém případě je délka zprávy 14 (růžová), tj. 0x0E.
Identifikátor objektu -
Jak již bylo zmíněno dříve, síťová zařízení s podporou SNMP (např. Směrovače, přepínače atd.) Udržují databázi stavů systému, dostupnosti a informací o výkonu jako objekty identifikované OID. Pro odesílání a stahování paketů musíte identifikovat OID vašeho routeru. To lze provést pomocí bezplatného prohlížeče MIB, jako je tento.
Zadejte adresu jako 192.168.1.1 a OID jako.1.3.6.1.2.1.2.2.1.10.x (ifInOctets) nebo.1.3.6.1.2.1.2.2.1.16.x. (ifOutOctets). Vyberte možnost Spustit operaci a klikněte na Přejít. Měli byste vidět OID spolu s jeho hodnotou a typem.
V mém případě je délka zprávy 10 (červená), tj. 0x0A. Nahraďte hodnotu OID. V tomto případě „2B 06 01 02 01 02 02 01 10 10“
A je to! Vaše žádost je připravena. Ponechte zbývající bajty tak, jak jsou.
Zapnutí SNMP na routeru:
- Přihlaste se na stránku routeru WiFi prostřednictvím výchozí brány. Do prohlížeče zadejte 192.168.1.1 a stiskněte Enter. Ve výchozím nastavení by uživatelské jméno a heslo mělo být 'admin'.
- Používám router TP-LINK (TD-W8961N). U tohoto routeru musíte jít do Access Management> SNMP a vybrat 'Aktivováno'.
- Komunita GET: veřejná
- Hostitel pasti: 0,0.0.0
Krok 5: Porozumění odpovědi GET
Tento krok můžete přeskočit, ale je dobré vědět, zda potřebujete provést nějaké řešení potíží.
Jakmile kód nahrajete a spustíte, můžete se podívat na odpověď prostřednictvím sériového monitoru. Mělo by to vypadat jako na obrázku. Existuje několik bajtů, které musíte vyhledat a na které jsem upozornil.
Od 0, 15. bajt říká typu PDU - 0xA2 znamená, že se jedná o GetResponse.
48. byte udává datový typ - 0x41 znamená, že datový typ je Counter.
49. byte udává délku dat - 0x04 znamená, že data jsou dlouhá 4 bajty.
Byte 50, 51, 52, 53 obsahuje data.
Krok 6: Převodník digitálního signálu na analogový (DAC)
Mikrokontroléry jsou digitální zařízení, která přímo nerozumí analogovým napětím. Používám analogový měřič, který potřebuje jako vstup proměnné napětí. Mikrokontrolér však může produkovat pouze VYSOKÝ (3,3 V v případě NodeMCU) a NÍZKÝ (0 V). Nyní si můžete říci, proč nepoužívat pouze PWM. Nebude to fungovat, protože měřič zobrazí pouze průměrnou hodnotu.
Používám MCP4725 DAC k získání proměnného napětí. Jedná se o 12bitový DAC, tj. Jednoduše řečeno, rozdělí 0 až 3,3 V na 4096 (= 2^12) částí. Rozlišení bude 3,3/4096 = 0,8056 mV. To znamená, že 0 odpovídá 0V, 1 odpovídá 0,8056mV, 2 odpovídá 1,6112mV, ….., 4095 odpovídá 3,3V.
Rychlost internetu bude „mapována“od „0 do 7 mbps“do „0 až 4095“a poté bude tato hodnota dána DAC pro výstup napětí, které bude úměrné rychlosti internetu.
Krok 7: Shromáždění
Připojení je velmi jednoduché. Zde je připojeno schéma.
Váhu jsem navrhl a vytiskl. Horní je pro rychlost stahování a spodní je pro rychlost nahrávání. Nové měřítko jsem přilepil přes staré.
Odstranil jsem všechny staré věci z multimetru a nacpal jsem do nich všechno. Bylo to těsné. Vpředu jsem musel vyvrtat otvor, abych připojil přepínací přepínač, který slouží k výběru rychlosti nahrávání a stahování.
Krok 8: Čas na kódování
Zde byl připojen kód. Stáhněte a otevřete jej v Arduino IDE. Nainstalujte si knihovnu MCP4725 z Adafruit.
Než nahrajete:
- Zadejte své WiFi SSID a heslo
- Zadejte maximální rychlost odesílání a stahování uvedenou na stupnici.
- Proveďte nezbytné změny v poli požadavků pro stahování a odesílání paketů.
- Chcete -li zobrazit odpověď na sériovém monitoru, odkomentujte řádek 165.
Hit nahrávání!
Krok 9: Užijte si to
Zapněte jej a užijte si sledování tancování jehly při procházení internetu!
Děkujeme, že jste se drželi až do konce. Doufáme, že se vám tento projekt líbí a že jste se dnes dozvěděli něco nového. Dejte mi vědět, pokud si jeden vyrobíte pro sebe. Přihlaste se k odběru mého kanálu YouTube a získejte více takových projektů.
Doporučuje:
GPS rychloměr: 4 kroky (s obrázky)
GPS rychloměr: Moje služební auto, které běžně řídím, mívá " malé " čas od času problémy, rychloměr klesne na 0 Km/h při jízdě (po nějaké době se znovu obnoví). Obvykle to není velký problém, protože pokud víte, jak řídit auto
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
Rychloměr DIY Cycle: 6 kroků (s obrázky)
DIY Cycle Speedometer: Tento projekt mě napadl, když jsem dělal svůj projekt MEM (Mechanical Engineering Measurement), předmět v mém B.tech. Cílem je změřit úhlovou rychlost kola mého kola. Znalost průměru a matematické legendy všech dob
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