Kazalo:

Internetni merilnik hitrosti: 4 koraki (s slikami)
Internetni merilnik hitrosti: 4 koraki (s slikami)

Video: Internetni merilnik hitrosti: 4 koraki (s slikami)

Video: Internetni merilnik hitrosti: 4 koraki (s slikami)
Video: Сводные таблицы Excel с нуля до профи за полчаса + Дэшборды! | 1-ое Видео курса "Сводные Таблицы" 2024, November
Anonim
Image
Image
Internetni merilnik hitrosti
Internetni merilnik hitrosti
Internetni merilnik hitrosti
Internetni merilnik hitrosti

Pregled

Ta "internetni merilnik hitrosti" vam bo v realnem času omogočil nadzor nad uporabo vašega omrežja. Te informacije so na voljo na spletnem vmesniku večine domačih usmerjevalnikov. Če pa dostopate do nje, morate ustaviti trenutno nalogo in jo poiskati.

Želel sem si ogledati te podatke, ne da bi moral prekiniti trenutno opravilo, jih prikazati v obliki, ki je razumljiva že s hitrim pogledom, in pridobiti informacije na način, ki bi deloval s čim več usmerjevalniki, da bi drugi lahko potencialno ga tudi uporabite.

Kako stvari dela

Odločil sem se za SNMP (Simple Network Management Protocol) kot način pridobivanja informacij iz usmerjevalnika. SNMP se pogosto uporablja v omrežni opremi in če ga vaša naprava privzeto ne podpira, lahko za izvajanje SNMP uporabite DDWRT (odprtokodna programska oprema usmerjevalnika).

Za prikaz informacij na razumljiv način sem uporabil merilnik iz avtomobila. Avtomobilski merilniki so zasnovani tako, da vam posredujejo informacije, ne da bi vas motili ali zmedli, zato lahko voznik gleda na cesto. Tudi jaz sem imel nekaj naokoli.

Ker bi to bilo na moji mizi, sem se odločil, da bom naredil tudi osvetlitev ozadja RGB, ker bi morali biti vsi računalniški dodatki RGB. Prav?

Izzivi

Merilniki, ki sem jih imel, uporabljajo pogon Air-Core. Nikoli nisem slišal za te pred tem projektom.

Iz Wikipedije: Merilnik zračnega jedra je sestavljen iz dveh neodvisnih, pravokotnih tuljav, ki obdajajo votlo komoro. Igla gredi štrli v komoro, kjer je na gred pritrjen trajni magnet. Ko tok teče skozi pravokotne tuljave, se njihova magnetna polja prekrivajo in magnet se lahko prosto poravna s kombiniranimi polji.

Ni bilo mogoče najti knjižnice za Arduino, ki bi podpirala SNMP v konfiguraciji upravitelja. SNMP ima dve glavni obliki, agenta in upravitelja. Agenti se odzovejo na zahtevo, upravniki pa pošljejo zahtevo agentom. Funkcijo upravitelja mi je uspelo aktivirati s spreminjanjem knjižnice Arduino_SNMP, ki jo je ustvaril 0neblock. Nikoli nisem programiral v C ++, razen da LED utripa na Arduinu, zato mi v primeru težav s knjižnico SNMP sporočite in jih bom poskušal popraviti, čeprav zaenkrat deluje.

Poleg tega SNMP ni zasnovan za ogled v realnem času. Predvidena uporaba je za sledenje statistiki in odkrivanje izpadov. Zaradi tega se podatki o usmerjevalniku posodabljajo le vsakih 5 sekund (vaša naprava se lahko razlikuje). To je vzrok zakasnitve med številom pri preskusu hitrosti in premikanjem igle.

Korak: Orodja in materiali

Orodja in materiali
Orodja in materiali
Orodja in materiali
Orodja in materiali
Orodja in materiali
Orodja in materiali
Orodja in materiali
Orodja in materiali
Oblikovanje vezja
Oblikovanje vezja

Potrebovali bomo 3 polne H-mostove. Modela, ki sem jih uporabil, sta Dual TB6612FNG in Dual L298N.

Vsak pogon Air-Core zahteva 2 polna H-mosta, ker je treba tuljave upravljati neodvisno.

Eden od merilnikov, ki jih uporabljam, ima eno tuljavo, kratko ozemljeno z diodo in uporom. Nisem prepričan v znanost, ki stoji za tem, vendar to omogoča, da se vrti okoli 90 stopinj s samo eno tuljavo.

Uporabil bom regulator 12v do 5v, ki je del plošče L298N, ki sem jo izbral za napajanje ESP32.

Vsa vezja LED so neobvezna, kot tudi priključki JST. Žice lahko enostavno spajkate neposredno na ESP32 in gonilnik motorja.

3. korak: Oblikovanje kode

Nastavitev kode

Za uporabo plošče ESP32 bomo morali nastaviti Arduino. Tukaj je dober vodnik, ki vas bo popeljal skozi nastavitev ESP32 Arduino.

Potrebovali boste tudi knjižnico Arduino_SNMP, ki se nahaja tukaj.

Če želite konfigurirati kodo, boste morali zbrati nekaj podatkov.

  1. IP usmerjevalnika
  2. Največja hitrost nalaganja
  3. Največja hitrost prenosa
  4. Ime in geslo za WiFi
  5. OID, ki vsebuje oktetska števila za "vhod" in "izhod" na vmesniku WAN usmerjevalnikov

Za želene informacije obstajajo standardni OID -ji (identifikatorji objektov). V skladu s standardom MIB-2 želimo številke:

ifInOctets.1.3.6.1.2.1.2.2.1.16. X

ifOutOctets.1.3.6.1.2.1.2.2.1.10. X

Kjer je X številka, dodeljena vmesniku, iz katerega želite dobiti statistiko. Zame je ta številka 3. Eden od načinov, da potrdite, da je to pravi OID za vas, in ugotovite, katero številko vmesnika morate uporabiti, je uporaba orodja, kot je brskalnik MIB.

Za največje hitrosti sem uporabil SpeedTest.net. ko imate svoje hitrosti v Mbps, jih boste morali pretvoriti v oktete po tej formuli.

Okteti na sekundo = (Rezultat preskusa hitrosti v Mbps * 1048576) / 8

Funkcija kode

Koda pošlje usmerjevalniku zahtevo za pridobivanje SNMP. Usmerjevalnik nato odgovori s številko, število predstavlja število oktetov, ki so bili poslani ali prejeti. Hkrati beležimo število milisekund, ki so pretekle od zagona Arduina.

Ko se ta postopek zgodi vsaj dvakrat, lahko s to kodo izračunamo odstotek porabe glede na naše največje vrednosti

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

Matematika se zlomi takole:

octetsDiff = snmp_result - Prejšnji_snmp_result

timeFrame = currentTime - timeLast

MaxPosableOverTime = (timeFrame * Octets_per_second)/1000

Odstotek = (oktetiDiff / MaxPosableOverTime) * 100

Zdaj, ko imamo odstotek porabe omrežja, ga moramo le zapisati v merilnik. To naredimo v 2 korakih. Najprej uporabimo funkcijo updateDownloadGauge. V tej funkciji uporabljamo »zemljevid« za pretvorbo odstotka v številko, ki predstavlja radijsko pozicijo na merilniku. Nato to številko damo funkciji setMeterPosition, da premaknemo iglo v nov položaj.

4. korak: Oblikovanje ohišja

Oblikovanje ohišja
Oblikovanje ohišja
Oblikovanje ohišja
Oblikovanje ohišja
Oblikovanje ohišja
Oblikovanje ohišja

Da bi vseboval vse, sem zasnoval ohišje v fusion360 in ga 3D natisnil. Oblikovanje, ki sem ga naredil, je relativno preprosto. S pomočjo vročega lepila sem pritrdil komponente na notranjo stran, merilnik pa pritrdim tako, da ga pritrdim med sprednji pokrov in zadnji pokrov. Za izdelavo ohišja vam ni treba uporabljati 3D tiskanja. Na primer, lahko naredite kovček iz lesa ali pa vse vrnete v prvotno ohišje, v katerega so prišli merilniki.

Moje datoteke STL so na voljo na thingiverse, če si jih želite ogledati, vendar je malo verjetno, da vam bodo delovale, razen če dobite popolnoma enake merilnike, ki sem jih uporabil.

Datoteke primerov:

Hvala za branje. Sporočite mi, če imate kakršna koli vprašanja, in potrudil se bom, da vam odgovorim.

Priporočena: