Kazalo:

Internetni merilnik hitrosti: 9 korakov (s slikami)
Internetni merilnik hitrosti: 9 korakov (s slikami)

Video: Internetni merilnik hitrosti: 9 korakov (s slikami)

Video: Internetni merilnik hitrosti: 9 korakov (s slikami)
Video: Как правильно работать с силиконом? Делаем аккуратный шов! Распространенные ошибки! 2024, November
Anonim
Image
Image
Načrt
Načrt

S popolno zaklepanjem v Indiji je bilo zaprto vse, vključno s poštnimi storitvami. Brez novih projektov PCB, brez novih komponent, nič! Zato sem se, da bi premagal dolgčas in se zaposlil, odločil, da naredim nekaj iz delov, ki jih že imam doma. Začel sem iskati iz kupa elektronskih odpadkov in našel star, pokvarjen analogni multimeter. Iz njega sem rešil 'gibanje števcev' in se odločil prikazati nekakšne informacije, vendar nisem točno vedel, kaj. Najprej sem mislil prikazati statistiko COVID-19, vendar je na internetu že veliko boljših projektov. Prav tako se podatki posodobijo po nekaj urah in še vedno bi bil kazalnik števca dolgočasen. Hotel sem podatke, ki se hitro spreminjajo, spreminjajo se vsako sekundo. Prosil sem za predloge na Instagramu in eden od mojih sledilcev je odgovoril z internetnim merilnikom hitrosti. Slišalo se je zanimivo in odločil se je, da bo uspelo!

V tem navodilu vam bom pokazal, kako sem s protokolom SNMP pobral podatke iz usmerjevalnika WiFi in na merilniku prikazal hitrost nalaganja in prenosa.

Začnimo

1. korak: Načrt

Kot vedno pred začetkom projekta sem malo raziskal po internetu. Našel sem nekaj projektov, povezanih s to temo. Bili sta dve vrsti. Ta, ki je z merjenjem "moči" signala WiFi pokazal hitrost interneta. Nisem strokovnjak za mreženje, vendar to ni zvenelo prav. Drugi so merili zakasnitev in kategorizirali hitrost kot počasno, srednjo ali hitro. Zakasnitev je časovni zamik med pošiljanjem zahteve in prejemom odgovora, zato ne more biti dejanski prikaz hitrosti interneta. Lahko pa temu rečemo hitrost odziva omrežja! Potem so bili zakoniti projekti, ki so merili čas, potreben za prenos nekaterih podatkov, in na podlagi tega izračunali hitrost interneta.

Toda v tem projektu (avtor Alistair) sem spoznal enostaven protokol za upravljanje omrežja ali SNMP. Z uporabo SNMP lahko komuniciramo z usmerjevalnikom WiFi in neposredno od njega dobimo zahtevane podatke. Enostavno, kajne? Pravzaprav ne! Ker imajo različni modeli usmerjevalnikov WiFi različne nastavitve in potrebujejo veliko poskusov in napak, preden končno dobite izhod. Naj vas ne bo strah. Na kratko bom razložil vse, kar sem se naučil o SNMP in težavah, s katerimi sem se soočal v prihodnjih korakih.

Zato je v načrtu uporaba NodeMCU za povezavo z usmerjevalnikom WiFi. Do končnega rezultata pridete tako:

  • Pošljite zahtevo usmerjevalniku, ki "zahteva" zahtevane podatke
  • Pridobite odgovor usmerjevalnika
  • Analizirajte odziv in iz njega razčlenite zahtevane podatke
  • Pretvorite „surove“podatke v razumljive informacije
  • Ustvarite napetost, ki je sorazmerna hitrosti interneta za števec
  • Ponovi

Za nadzor števca bom uporabil DAC ali digitalno -analogni pretvornik.

Korak: Stvari, ki jih boste potrebovali

Stvari, ki jih boste potrebovali
Stvari, ki jih boste potrebovali
Stvari, ki jih boste potrebovali
Stvari, ki jih boste potrebovali
Stvari, ki jih boste potrebovali
Stvari, ki jih boste potrebovali

1x NodeMCU

1x Gibanje analognega merilnika

1x MPU4725 DAC

1x stikalo SPDT

1x 10k potenciometer

1x upor

3. korak: Izračun odklonskega toka v celotnem obsegu

Izračun odklonskega toka v celotnem obsegu
Izračun odklonskega toka v celotnem obsegu
Izračun odklonskega toka v celotnem obsegu
Izračun odklonskega toka v celotnem obsegu

Opomba: Skočite na korak 7 za dejansko gradnjo!

Ta korak preskočite, če že poznate odklonski tok v celotnem merilu za vaš števec. Moj števec tega ni omenil, zato sem moral izračunati. Najprej pa hitro poglejmo, kako deluje takšno gibanje. Sestavljen je iz tuljave, obešene v magnetnem polju. Ko tok teče skozi tuljavo, po Faradayjevem zakonu doživi silo. Tuljava se lahko prosto vrti v magnetnem polju, prav tako tudi kazalec, ki je pritrjen na tuljavo. Velikost toka, zaradi katerega se kazalec premakne na "koncu lestvice", se imenuje odklonski tok celotnega merila. To je tudi največji tok, ki mora teči skozi tuljavo.

Še veliko se dogaja, a to je dovolj za to, kar počnemo. Zdaj imamo gibanje. Uporabljamo ga lahko kot voltmeter z zaporedno dodajanjem velike upornosti ali kot ampermeter z dodajanjem majhnega upora vzporedno. Uporabljali ga bomo kot voltmeter za prikaz napetosti, ki je sorazmerna hitrosti interneta. Zato moramo izračunati upor, ki ga je treba dodati zaporedno. Za to moramo najprej izračunati odklonski tok v celotnem obsegu.

  1. Izberite visoko odpornost (na primer> 100k)
  2. Povežite ga zaporedno z gibanjem in nanj uporabite lonec z variabilno napetostjo.
  3. Počasi povečujte napetost, dokler kazalec ne doseže konca lestvice.
  4. Z multimetrom izmerite tok, ki teče skozi. To je polni odklonski tok. (I = 150uA v mojem primeru)

Uporabljamo DAC, ki ima izhodno napetost od 0 do VCC (3,3 V zaradi NodeMCU). To pomeni, da mora biti pri merilniku 3,3 V usmerjen na konec lestvice. To se lahko zgodi, ko skozi vezje teče polni odklonski tok, ko je uporabljen 3.3V. Z uporabo Ohmovega zakona 3.3/(odklonski tok v celotnem merilu) daje vrednost odpornosti, ki jo je treba vstaviti zaporedno.

4. korak: Ustvarjanje zahteve SNMP GET

Ustvarjanje zahteve SNMP GET
Ustvarjanje zahteve SNMP GET
Ustvarjanje zahteve SNMP GET
Ustvarjanje zahteve SNMP GET
Ustvarjanje zahteve SNMP GET
Ustvarjanje zahteve SNMP GET

Enostavni protokol za upravljanje omrežja (SNMP) je protokol internetnega standarda za zbiranje in organiziranje informacij o upravljanih napravah v omrežjih IP ter za spreminjanje teh podatkov, da se spremeni vedenje naprave. Naprave, ki običajno podpirajo SNMP, vključujejo kabelske modeme, usmerjevalnike, stikala, strežnike, delovne postaje, tiskalnike in drugo. Za to gradnjo bomo komunicirali z našim usmerjevalnikom WiFi z uporabo SNMP in dobili potrebne podatke.

Najprej pa moramo usmerjevalniku poslati zahtevo, imenovano "GET Request", v kateri so navedene podrobnosti podatkov, ki jih želimo. Oblika zahteve GET je prikazana na sliki. Zahteva je sestavljena iz različnih delov. Izpostavil sem bajte, ki jih boste morda želeli spremeniti.

Upoštevajte, da je vse v šestnajstiški številki.

Sporočilo SNMP -V mojem primeru je dolžina celotnega sporočila 40 (siva barva), ki je ob pretvorbi v šestnajstiško številko 0x28.

SNMP skupnosti niz - Vrednost 'PUBLIC' je napisana v šestnajstiški številki '70 75 62 6C 69 63 ', katere dolžina je 6 (rumena).

Vrsta SNMP PDU - V mojem primeru je dolžina sporočila 27 (modra), torej 0x1B.

Vrsta seznama Varbind - V mojem primeru je dolžina sporočila 16 (zelena), torej 0x10.

Vrsta Varbind - V mojem primeru je dolžina sporočila 14 (roza), torej 0x0E.

Identifikator objekta -

Kot smo že omenili, omrežne naprave, ki podpirajo SNMP (npr. Usmerjevalniki, stikala itd.), Vodijo bazo podatkov o stanju sistema, razpoložljivosti in podatkih o zmogljivosti kot objekte, ki jih identificirajo OID. Za pakete za nalaganje in prenos morate identificirati OID -je vašega usmerjevalnika. To lahko storite z brezplačnim brskalnikom MIB, kot je ta.

Vnesite naslov kot 192.168.1.1 in OID kot.1.3.6.1.2.1.2.2.1.10.x (ifInOctets) ali.1.3.6.1.2.1.2.2.1.16.x. (ifOutOctets). Izberite Zaženi operacijo in kliknite Pojdi. OID bi morali videti skupaj z njegovo vrednostjo in vrsto.

V mojem primeru je dolžina sporočila 10 (rdeča), to je 0x0A. Zamenjajte vrednost z OID. V tem primeru „2B 06 01 02 01 02 02 01 10 10“

To je to! Sporočilo vaše zahteve je pripravljeno. Ostale bajte naj bodo takšne, kot so.

Vklop SNMP na usmerjevalniku:

  • Prijavite se na stran usmerjevalnika WiFi prek privzetega prehoda. V brskalnik vnesite 192.168.1.1 in pritisnite enter. Uporabniško ime in geslo morata biti privzeto „admin“.
  • Uporabljam usmerjevalnik TP-LINK (TD-W8961N). Za ta usmerjevalnik pojdite na Upravljanje dostopa> SNMP in izberite 'Aktivirano'.
  • Skupnost GET: javna
  • Gostitelj pasti: 0.0.0.0

5. korak: Razumevanje odziva GET

Razumevanje odziva GET
Razumevanje odziva GET

Ta korak lahko preskočite, vendar je dobro vedeti, ali morate odpraviti nekaj težav.

Ko naložite kodo in jo zaženete, si lahko ogledate odgovor prek serijskega monitorja. Izgledati mora tako, kot je prikazano na sliki. Poiskati morate nekaj bajtov, ki sem jih izpostavil.

Od 0, 15. bajt pove vrsti PDU - 0xA2 pomeni, da gre za GetResponse.

48. bajt pove vrsto podatkov - 0x41 pomeni, da je podatkovni tip Counter.

49. bajt pove dolžino podatkov - 0x04 pomeni, da so podatki dolgi 4 bajte.

Bajti 50, 51, 52, 53 vsebujejo podatke.

Korak: Digitalno -analogni pretvornik (DAC)

Digitalno -analogni pretvornik (DAC)
Digitalno -analogni pretvornik (DAC)

Mikrokrmilniki so digitalne naprave, ki ne razumejo neposredno analognih napetosti. Uporabljam analogni števec, ki za vhod potrebuje spremenljivo napetost. Toda mikrokrmilnik lahko oddaja samo VISOKO (3,3 V v primeru NodeMCU) in NIZKO (0 V). Zdaj bi lahko rekli, zakaj preprosto ne uporabite PWM. Ne bo delovalo, saj bo merilnik prikazal le povprečno vrednost.

Uporabljam DCP MCP4725, da dobim spremenljivo napetost. Je 12-bitni DAC, kar pomeni, da bo preprosto povečal 0 do 3,3 V na 4096 (= 2^12) delov. Ločljivost bo 3.3/4096 = 0.8056mV. To pomeni, da 0 ustreza 0V, 1 ustreza 0.8056mV, 2 ustreza 1.6112mV,….., 4095 ustreza 3.3V.

Hitrost interneta bo "preslikana" od "0 do 7 mbps" do "0 do 4095", nato pa bo ta vrednost podana DAC -u za izhod napetosti, ki bo sorazmerna s hitrostjo interneta.

7. korak: Skupščina

Skupščina
Skupščina
Skupščina
Skupščina
Skupščina
Skupščina
Skupščina
Skupščina

Povezave so zelo preproste. Shema je priložena tukaj.

Oblikoval sem in natisnil tehtnico. Zgornji je za hitrost prenosa, spodnji pa za hitrost nalaganja. Novo lestvico sem zlepil na staro.

Z multimetra sem odstranil vse stare stvari in vanj naložil vse. Bil je tesno prilegajoč. Moral sem izvrtati luknjo na sprednji strani, da pritrdim stikalo, ki se uporablja za izbiro med hitrostjo nalaganja in prenosa.

8. korak: Čas za kodiranje

Čas za kodiranje
Čas za kodiranje
Čas za kodiranje
Čas za kodiranje
Čas za kodiranje
Čas za kodiranje

Koda je priložena tukaj. Prenesite in odprite v Arduino IDE. Knjižnico MCP4725 namestite iz podjetja Adafruit.

Preden naložite:

  1. Vnesite svoj SSID in geslo za WiFi
  2. Vnesite največjo hitrost nalaganja in prenosa na lestvici.
  3. Naredite potrebne spremembe v nizu zahtev za prenos in naložite pakete.
  4. Odkomentirajte vrstico 165 za ogled odziva na serijskem monitorju.

Hit upload!

9. korak: Uživajte

Vklopite in uživajte ob gledanju igle, ki pleše naokoli, ko brskate po internetu!

Hvala, ker ste vztrajali do konca. Upam, da vam je vsem všeč ta projekt in ste se danes naučili kaj novega. Sporočite mi, če ga naredite sami. Naročite se na moj YouTube kanal za več takih projektov.

Priporočena: