Kazalo:
Video: Internetni merilnik hitrosti: 4 koraki (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
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
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.
- IP usmerjevalnika
- Največja hitrost nalaganja
- Največja hitrost prenosa
- Ime in geslo za WiFi
- 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
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:
Internetni merilnik hitrosti: 9 korakov (s slikami)
Internetni merilnik hitrosti: 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 želim
Merilnik hitrosti GPS: 4 koraki (s slikami)
Merilnik hitrosti GPS: Moj službeni avtomobil, ki ga običajno vozim, ima ponavadi "majhen" občasno težave, merilnik hitrosti med vožnjo pade na 0 km/h (čez nekaj časa se znova nadaljuje). Običajno to ni velik problem, saj če veste, kako voziti avto,
Kolesarski merilnik hitrosti: 3 koraki
Kolesarski merilnik hitrosti: Pozdravljeni prijatelji … V tem navodilu bom razložil, kako narediti kolesarski merilnik hitrosti, pravzaprav imam staro vadbeno kolo, katerega mehanski merilnik hitrosti je bil že davno pokvarjen, zato sem se odločil, da ga zamenjam z elektronski, ampak
Delovni hitrostni merilnik hitrosti avtomobila: 4 koraki (s slikami)
Delovni RC avtomobilski merilnik hitrosti: To je kratek projekt, ki sem ga ustvaril kot del večje konstrukcije RC lahkega Land Roverja. Odločil sem se, da mi je všeč, da imam na armaturni plošči delujoč merilnik hitrosti, vendar sem vedel, da ga servo ne bo prerezal. Obstajala je le ena razumna možnost: d
Merilnik vrtljajev, narejen iz kolesarskega merilnika hitrosti (cikloračunalnik): 3 koraki (s slikami)
Merilnik vrtljajev, narejen iz kolesarskega merilnika hitrosti (cikloračunalnik): Včasih morate vedeti, kako hitro se obrača kolo ali gred ali motor. Merilna naprava za hitrost vrtenja je tahometer. So pa dragi in jih ni enostavno najti. Je poceni in enostaven za izdelavo s kolesarskim merilnikom hitrosti (ciklično