Obsah:

Internetový rýchlomer: 9 krokov (s obrázkami)
Internetový rýchlomer: 9 krokov (s obrázkami)

Video: Internetový rýchlomer: 9 krokov (s obrázkami)

Video: Internetový rýchlomer: 9 krokov (s obrázkami)
Video: Part 3 - A Princess of Mars Audiobook by Edgar Rice Burroughs (Chs 19-28) 2024, November
Anonim
Image
Image
Plán
Plán

Keďže v Indii prebieha úplné zablokovanie, všetko vrátane poštových služieb bolo zatvorené. Žiadne nové projekty PCB, žiadne nové komponenty, nič! Aby som prekonal nudu a zamestnal sa, rozhodol som sa urobiť niečo z častí, ktoré už mám doma. Začal som hľadať v hromade odpadu z elektroniky a našiel som starý, pokazený analógový multimetr. Zachránil som z toho „metrový pohyb“a rozhodol som sa zobraziť nejaký druh informácií, ale nevedel som presne čo. Najprv ma napadlo zobraziť štatistiky COVID-19, ale na internete je už veľa lepších projektov. Údaje sa tiež aktualizujú po niekoľkých hodinách a ukazovateľ elektromera by bol nudný. Chcel som údaje, ktoré sa rýchlo menia, menia sa každú sekundu. Požiadal som o návrhy na Instagrame a jeden z mojich sledovateľov odpovedal internetovým rýchlomerom. Znelo to zaujímavo a rozhodli ste sa to zvládnuť!

V tomto návode vám ukážem, ako som zachytil údaje z môjho smerovača WiFi pomocou protokolu SNMP a na merači zobrazil rýchlosť odosielania a sťahovania.

Začnime

Krok 1: Plán

Ako vždy pred začatím projektu som urobil malý prieskum na internete. Našiel som niekoľko projektov súvisiacich s touto témou. Boli dvoch druhov. Ten, ktorý ukazoval rýchlosť internetu meraním „sily“signálu WiFi. Nie som odborník na siete, ale toto neznie správne. Ostatní zmerali latenciu a zaradili rýchlosť do kategórie pomalá, stredná alebo rýchla. Latencia je časové oneskorenie medzi odoslaním požiadavky a odpoveďou, a preto nemôže predstavovať skutočnú rýchlosť internetu. Môžeme to však nazvať rýchlosťou odozvy siete! Potom tu boli legitímne projekty, ktoré merali čas potrebný na stiahnutie niektorých údajov a na základe toho vypočítali rýchlosť internetu.

Ale práve v tomto projekte (od Alistair) som sa dozvedel o protokole Simple Network Management Protocol alebo SNMP. Prostredníctvom SNMP môžeme komunikovať s WiFi routerom a priamo z neho získavať potrebné údaje. Ľahké, však? Vlastne nie! Pretože rôzne modely použití smerovačov WiFi majú rôzne nastavenia a vyžadujú si veľa pokusov a omylov, než konečne získate výstup. Neboj sa Stručne vysvetlím, čo som sa dozvedel o SNMP a ťažkostiach, s ktorými som sa stretol v nasledujúcich krokoch.

V pláne je teda použiť NodeMCU na pripojenie k smerovaču WiFi. Nasledujú kroky, ako sa dostať k konečnému výstupu:

  • Odošlite smerovaču požiadavku na „požadované“údaje
  • Získajte odpoveď zo smerovača
  • Analyzujte odpoveď a analyzujte z nej požadované údaje
  • Premeňte „surové“údaje na zrozumiteľné informácie
  • Generujte napätie úmerné rýchlosti internetu pre merač
  • Opakujte

Na ovládanie merača budem používať prevodník DAC alebo digitálny na analógový.

Krok 2: Veci, ktoré budete potrebovať

Veci, ktoré budete potrebovať
Veci, ktoré budete potrebovať
Veci, ktoré budete potrebovať
Veci, ktoré budete potrebovať
Veci, ktoré budete potrebovať
Veci, ktoré budete potrebovať

1x NodeMCU

1x pohyb analógového merača

1x MPU4725 DAC

1x prepínač SPDT

1x 10k potenciometer

1x odpor

Krok 3: Výpočet vychyľovacieho prúdu v plnom rozsahu

Výpočet vychyľovacieho prúdu v plnom rozsahu
Výpočet vychyľovacieho prúdu v plnom rozsahu
Výpočet vychyľovacieho prúdu v plnom rozsahu
Výpočet vychyľovacieho prúdu v plnom rozsahu

Poznámka: Prejdite na krok 7 pre skutočnú zostavu!

Tento krok preskočte, ak už poznáte odchýlkový prúd vášho meradla v plnom rozsahu. Môj merač o tom nehovoril, takže som musel vypočítať. Najprv sa však rýchlo pozrime, ako taký pohyb funguje. Skladá sa z cievky zavesenej v magnetickom poli. Keď prúd preteká cievkou, podľa Faradayovho zákona zažíva silu. Cievka sa môže v magnetickom poli voľne otáčať, rovnako ako ukazovateľ, ktorý je k cievke pripevnený. Veľkosť prúdu, ktorá núti ukazovateľ pohybovať sa na „konci stupnice“, sa nazýva vychyľovací prúd v plnom rozsahu. Toto je tiež maximálny prúd, ktorý musí pretekať cievkou.

Deje sa toho oveľa viac, ale na to, čo robíme, to stačí. Teraz máme pohyb. Môže byť použitý ako voltmetr pridaním vysokého odporu v sérii alebo ako ampérmeter pridaním malého odporu paralelne k nemu. Budeme ho používať ako voltmetr na zobrazenie napätia úmerného rýchlosti internetu. Musíme teda vypočítať odpor, ktorý sa má pridať do série. Na to musíme najskôr vypočítať vychyľovací prúd v plnom rozsahu.

  1. Vyberte vysokú hodnotu odporu (napríklad> 100 000)
  2. Pripojte ho k sérii s pohybom a pomocou hrnca na ňu aplikujte premenlivé napätie.
  3. Pomaly zvyšujte napätie, kým ukazovateľ nedosiahne koniec stupnice.
  4. Pomocou multimetra zmerajte prúd, ktorý preteká. Toto je vychyľovací prúd v plnom rozsahu. (I = 150uA v mojom prípade)

Používame DAC, ktorý má rozsah výstupného napätia od 0 do VCC (3,3 V kvôli NodeMCU). To znamená, že keď je na merač aplikované 3,3 V, mal by ukazovať na koniec stupnice. To sa môže stať, keď obvodom preteká vychyľovací prúd v plnom rozsahu, keď je aplikované 3,3 V. Pomocou Ohmovho zákona 3,3/(vychyľovací prúd v plnom rozsahu) udáva hodnotu odporu, ktorý sa má vložiť do série.

Krok 4: Vytvorenie požiadavky SNMP GET

Vytvorenie požiadavky SNMP GET
Vytvorenie požiadavky SNMP GET
Vytvorenie požiadavky SNMP GET
Vytvorenie požiadavky SNMP GET
Vytvorenie požiadavky SNMP GET
Vytvorenie požiadavky SNMP GET

Simple Network Management Protocol (SNMP) je internetový štandardný protokol na zhromažďovanie a organizovanie informácií o spravovaných zariadeniach v sieťach IP a na úpravu týchto informácií s cieľom zmeniť správanie zariadenia. Medzi zariadenia, ktoré zvyčajne podporujú protokol SNMP, patria káblové modemy, smerovače, prepínače, servery, pracovné stanice, tlačiarne a ďalšie. V prípade tejto zostavy budeme komunikovať s naším smerovačom WiFi pomocou protokolu SNMP a získame požadované údaje.

Najprv však musíme smerovaču odoslať žiadosť známu ako „požiadavka GET“s uvedením podrobností o požadovaných údajoch. Formát žiadosti GET je zobrazený na obrázku. Žiadosť pozostáva z rôznych častí. Zvýraznil som bajty, ktoré by ste mohli chcieť zmeniť.

Upozorňujeme, že všetko je v hexadecimálnom formáte.

Správa SNMP -V mojom prípade je dĺžka celej správy 40 (sivá farba), čo pri konverzii na hexadecimálne číslo je 0x28.

Reťazec komunity SNMP - hodnota „VEREJNÝ“je zapísaná hexadecimálne ako „70 75 62 6C 69 63“a jej dĺžka je 6 (žltá).

Typ SNMP PDU - V mojom prípade je dĺžka správy 27 (modrá), tj. 0x1B.

Typ zoznamu premenných - v mojom prípade je dĺžka správy 16 (zelená), tj. 0x10.

Typ premennej - V mojom prípade je dĺžka správy 14 (ružová), t.j. 0x0E.

Identifikátor objektu -

Ako už bolo spomenuté, sieťové zariadenia s podporou SNMP (napr. Smerovače, prepínače atď.) Udržujú databázu informácií o stave systému, dostupnosti a výkone ako objekty identifikované OID. Na odosielanie a sťahovanie paketov musíte identifikovať OID vášho smerovača. To je možné vykonať pomocou bezplatného prehliadača MIB, ako je tento.

Zadajte adresu ako 192.168.1.1 a OID ako.1.3.6.1.2.1.2.2.1.10.x (ifInOctets) alebo.1.3.6.1.2.1.2.2.1.16.x. (ifOutOctets). Vyberte možnosť Spustiť operáciu a kliknite na položku Prejsť. Mali by ste vidieť OID spolu s jeho hodnotou a typom.

V mojom prípade je dĺžka správy 10 (červená), tj. 0x0A. Nahraďte hodnotu OID. V tomto prípade „2B 06 01 02 01 02 02 01 10 10“

To je všetko! Vaša správa so žiadosťou je pripravená. Nechajte ostatné bajty tak, ako sú.

Zapnutie SNMP na smerovači:

  • Prihláste sa na stránku smerovača WiFi pomocou predvolenej brány. Do prehliadača zadajte 192.168.1.1 a stlačte Enter. V predvolenom nastavení by používateľské meno a heslo malo byť „admin“.
  • Používam smerovač TP-LINK (TD-W8961N). V prípade tohto smerovača musíte prejsť na položku Správa prístupu> SNMP a vybrať položku „Aktivované“.
  • Komunita GET: verejná
  • Hostiteľ pasce: 0,0.0.0

Krok 5: Pochopenie odpovede GET

Pochopenie odpovede GET
Pochopenie odpovede GET

Tento krok môžete preskočiť, ale je dobré vedieť, či potrebujete vykonať nejaké riešenie problémov.

Akonáhle nahráte kód a spustíte ho, môžete sa pozrieť na odpoveď prostredníctvom sériového monitora. Malo by to vyzerať tak, ako je to znázornené na obrázku. Existuje niekoľko bajtov, ktoré musíte hľadať a na ktoré som poukázal.

Už od 0, 15. bajt hovorí o type PDU - 0xA2 znamená, že ide o odpoveď GetResponse.

48. bajt udáva typ údajov - 0x41 znamená, že typ údajov je počítadlo.

49. bajt udáva dĺžku údajov - 0x04 znamená, že údaje sú dlhé 4 bajty.

Bajt 50, 51, 52, 53 obsahuje údaje.

Krok 6: prevodník digitálneho signálu na analógový (DAC)

Digitálne analógový prevodník (DAC)
Digitálne analógový prevodník (DAC)

Mikrokontroléry sú digitálne zariadenia, ktoré priamo nerozumejú analógovým napätiam. Používam analógový merač, ktorý potrebuje ako vstup premenné napätie. Mikrokontrolér však môže produkovať iba VYSOKÝ (3,3 V v prípade NodeMCU) a NÍZKY (0 V). Teraz si môžete povedať, prečo nepoužívať iba PWM. Nebude to fungovať, pretože merač zobrazuje iba priemernú hodnotu.

Na získanie premenlivého napätia používam DCP MCP4725. Jedná sa o 12-bitový DAC, t.j. zjednodušene povedané, rozdelí 0 až 3,3 V na 4096 (= 2^12) častí. Rozlíšenie bude 3,3/4096 = 0,8056mV. To znamená, že 0 zodpovedá 0V, 1 zodpovedá 0,8056mV, 2 zodpovedá 1,6112mV, ….., 4095 zodpovedá 3,3V.

Rýchlosť internetu bude „mapovaná“od „0 do 7 mbps“do „0 až 4095“a potom bude táto hodnota daná DAC na výstup napätia, ktoré bude úmerné rýchlosti internetu.

Krok 7: Zhromaždenie

Zhromaždenie
Zhromaždenie
Zhromaždenie
Zhromaždenie
Zhromaždenie
Zhromaždenie
Zhromaždenie
Zhromaždenie

Pripojenia sú veľmi jednoduché. Schéma je priložená tu.

Váhu som navrhol a vytlačil. Horný slúži na rýchlosť sťahovania a dolný na rýchlosť sťahovania. Prelepil som novú váhu cez starú.

Odstránil som všetky staré veci z multimetra a všetko som v ňom nacpal. Bolo to tesné. Vpredu som musel vyvŕtať dieru, aby som pripevnil prepínač, ktorý slúži na výber rýchlosti nahrávania a sťahovania.

Krok 8: Čas na kódovanie

Čas na kódovanie
Čas na kódovanie
Čas na kódovanie
Čas na kódovanie
Čas na kódovanie
Čas na kódovanie

Kód je priložený tu. Stiahnite a otvorte ho v Arduino IDE. Nainštalujte si knižnicu MCP4725 z Adafruit.

Pred odovzdaním:

  1. Zadajte svoje SSID a heslo WiFi
  2. Zadajte maximálnu rýchlosť odosielania a sťahovania uvedenú na stupnici.
  3. Vykonajte potrebné zmeny v poli požiadaviek na sťahovanie a odosielanie paketov.
  4. Odkomentovaním riadka 165 zobrazte odpoveď na sériovom monitore.

Hit upload!

Krok 9: Užite si to

Zapnite ho a užívajte si sledovanie tancujúcej ihly pri surfovaní na internete!

Ďakujem, že ste sa držali až do konca. Dúfam, že sa vám tento projekt páči a že ste sa dnes dozvedeli niečo nové. Dajte mi vedieť, ak si jeden vyrobíte pre seba. Prihláste sa na odber môjho kanála YouTube a získajte viac takýchto projektov.

Odporúča: