Turinys:

Interneto greičio matuoklis: 4 žingsniai (su nuotraukomis)
Interneto greičio matuoklis: 4 žingsniai (su nuotraukomis)

Video: Interneto greičio matuoklis: 4 žingsniai (su nuotraukomis)

Video: Interneto greičio matuoklis: 4 žingsniai (su nuotraukomis)
Video: Profesionalus radarų detektorius Genevo One Lt PLUS ir stacionarus greičio matuoklis 2024, Lapkritis
Anonim
Image
Image
Interneto greičio matuoklis
Interneto greičio matuoklis
Interneto greičio matuoklis
Interneto greičio matuoklis

Apžvalga

Šis „interneto greičio matuoklis“leis jums beveik realiu laiku stebėti tinklo naudojimą. Šią informaciją galima rasti daugelio namų maršrutizatorių žiniatinklio sąsajoje. Tačiau norint jį pasiekti reikia sustabdyti dabartinę užduotį ir eiti jos ieškoti.

Norėjau peržiūrėti šią informaciją nenutraukdamas dabartinės užduoties, parodyti ją tokiu formatu, kuris būtų suprantamas vos vienu žvilgsniu, ir gauti informaciją taip, kad ji veiktų su kuo daugiau maršrutizatorių, kad kiti galėtų potencialiai jį taip pat naudoti.

Kaip tai daro dalykus

Aš nusprendžiau naudoti SNMP (paprastą tinklo valdymo protokolą) kaip būdą gauti informaciją iš maršrutizatoriaus. SNMP yra plačiai naudojamas tinklo įrangoje ir, jei jūsų įrenginys jo nepalaiko pagal numatytuosius nustatymus, DMPW (atvirojo kodo maršrutizatoriaus programinė įranga) gali būti naudojama SNMP įdiegti.

Norėdami pateikti informaciją lengvai suprantamu būdu, naudoju automobilio matuoklį. Automobilio matuokliai yra skirti suteikti jums informacijos, netrukdant ir nesuklaidinant, todėl vairuotojas gali nepamiršti kelio. Be to, aš šiek tiek gulėjau.

Kadangi tai būtų ant mano stalo, nusprendžiau, kad taip pat padarysiu foninį apšvietimą RGB, nes visi kompiuterių priedai turėtų būti RGB. Teisingai?

Iššūkiai

Mano matuokliai naudojo „Air-Core“pavarą. Aš niekada negirdėjau apie juos iki šio projekto.

Iš Vikipedijos: Oro šerdies matuoklį sudaro dvi nepriklausomos, statmenos ritės, supančios tuščiavidurę kamerą. Adatos velenas išsikiša į kamerą, kur prie veleno pritvirtintas nuolatinis magnetas. Kai srovė teka per statmenas rites, jų magnetiniai laukai sutampa, o magnetas gali laisvai derintis prie kombinuotų laukų.

Nepavyko rasti „Arduino“bibliotekos, kuri palaikytų SNMP valdytojo konfigūracijoje. SNMP turi dvi pagrindines formas - agentą ir vadybininką. Agentai atsako į užklausą, o vadovai siunčia užklausą agentams. Man pavyko įjungti valdytojo funkcijas, pakeisdamas „0neblock“sukurtą „Arduino_SNMP“biblioteką. Niekada nesu programavęs C ++, išskyrus tai, kad „Arduino“mirksi šviesos diodai, taigi, jei kyla problemų dėl SNMP bibliotekos, praneškite man ir aš pabandysiu jas išspręsti, kol kas ji veikia.

Be to, SNMP nėra skirtas žiūrėti realiuoju laiku. Numatoma naudoti statistikai stebėti ir sutrikimams nustatyti. Dėl šios priežasties informacija maršrutizatoriuje atnaujinama tik maždaug kas 5 sekundes (jūsų įrenginys gali skirtis). Tai yra priežastis, dėl kurios vėluojama tarp greičio bandymo skaičiaus ir adatos judėjimo.

1 žingsnis: įrankiai ir medžiagos

Įrankiai ir medžiagos
Įrankiai ir medžiagos
Įrankiai ir medžiagos
Įrankiai ir medžiagos
Įrankiai ir medžiagos
Įrankiai ir medžiagos
Įrankiai ir medžiagos
Įrankiai ir medžiagos
Grandinės dizainas
Grandinės dizainas

Mums reikės 3 pilnų H tiltų. Mano naudojami modeliai yra „Dual TB6612FNG“ir „Dual L298N“.

Kiekvienai „Air-Core“pavarai reikia 2 pilnų H tiltų, nes ritės turi būti valdomos nepriklausomai.

Vienas iš mano naudojamų matuoklių turi vieną ritę, sujungtą su žeme su diodu ir rezistoriumi. Nesu tikras dėl to slypinčio mokslo, tačiau tai leidžia suktis apie 90 laipsnių, kai naudojama tik viena ritė.

Aš naudosiu 12–5 V reguliatorių, kuris yra L298N plokštės dalis, kurią pasirinkau ESP32 maitinti.

Visos LED grandinės yra neprivalomos, taip pat JST jungtys. Galite lengvai lituoti laidus tiesiai prie ESP32 ir variklio tvarkyklės.

3 žingsnis: kodo projektavimas

Kodo sąranka

Turėsime nustatyti „Arduino“, kad galėtume naudoti ESP32 plokštę. Čia yra geras vadovas, kuris padės jums atlikti ESP32 „Arduino“sąranką.

Jums taip pat reikės Arduino_SNMP bibliotekos, esančios čia.

Norėdami sukonfigūruoti kodą, turėsite surinkti tam tikrą informaciją.

  1. Maršrutizatoriaus IP
  2. Maksimalus įkėlimo greitis
  3. Maksimalus atsisiuntimo greitis
  4. Jūsų „WiFi“vardas ir slaptažodis
  5. OID, kuriame yra oktetas, reiškia „įeiti“ir „išeiti“jūsų maršrutizatoriaus WAN sąsajoje

Yra standartiniai norimos informacijos OID (objektų identifikatoriai). Pagal MIB-2 standartą norime tokių skaičių:

ifInOctets.1.3.6.1.2.1.2.2.1.16. X

ifOutOctets.1.3.6.1.2.1.2.2.1.10. X

Kur X yra numeris, priskirtas sąsajai, iš kurios norite gauti statistiką. Man šis skaičius yra 3. Vienas iš būdų patvirtinti, kad tai tinkamas OID, ir nustatyti, kokį sąsajos numerį reikia naudoti, yra naudoti tokį įrankį kaip MIB naršyklė.

Norėdami gauti maksimalų greitį, naudoju SpeedTest.net. Kai turėsite greitį Mbps, turėsite konvertuoti juos į oktetus pagal šią formulę.

Oktetai per sekundę = (greičio bandymo rezultatas Mbps * 1048576) / 8

Kodo funkcija

Kodas siunčia SNMP gavimo užklausą maršrutizatoriui. Tada maršrutizatorius atsako skaičiumi, šis skaičius reiškia išsiųstų ar gautų oktetų skaičių. Tuo pačiu metu mes įrašome milisekundžių skaičių, praėjusį nuo „Arduino“pradžios.

Kai šis procesas įvyks bent du kartus, naudodami šį kodą galime apskaičiuoti naudojimo procentą pagal maksimalias vertes

procentasDown = ((plūdė) (baitas žemyn - baitasDownLast)/(plūdė) (maxDown * ((milis () - laikasLast)/1000))) * 100;

Matematika suskyla taip:

octetsDiff = snmp_result - Ankstesnis_ snmp_result

timeFrame = currentTime - timeLast

MaxPosableOverTime = (timeFrame * Octets_per_second)/1000

Procentas = (oktetaiDiff / MaxPosableOverTime) * 100

Dabar, kai turime tinklo naudojimo procentą, mes tiesiog turime jį parašyti matuoklyje. Mes tai darome 2 žingsniais. Pirmiausia mes naudojame funkciją updateDownloadGauge. Šioje funkcijoje mes naudojame „žemėlapį“, norėdami konvertuoti procentą į skaičių, kuris reiškia radianinę padėtį matuoklyje. Tada mes suteikiame šį skaičių funkcijai setMeterPosition, kad adata būtų perkelta į naują padėtį.

4 žingsnis: korpuso dizainas

Korpuso dizainas
Korpuso dizainas
Korpuso dizainas
Korpuso dizainas
Korpuso dizainas
Korpuso dizainas

Kad būtų viskas, sukūriau „fusion360“korpusą ir atspausdinau 3D. Mano sukurtas dizainas yra gana paprastas. Naudojau karštus klijus, kad pritvirtinčiau komponentus į vidų, o matuoklis laikomas vietoje, nes jis yra suspaustas tarp priekinio ir galinio dangčio. Norėdami sukurti dėklą, jums nereikia naudoti 3D spausdinimo. Pvz., Galite pagaminti dėklą iš medžio arba įdėti viską atgal į originalią dėžutę, kurioje buvo matuokliai.

Mano STL failai yra pasiekiami „thingiverse“, jei norite į juos pažvelgti, tačiau mažai tikėtina, kad jie jums padės, nebent gausite tuos pačius matuoklius, kuriuos naudojau.

Bylos failai:

Ačiū, kad perskaitėte. Praneškite man, jei turite klausimų, ir aš padarysiu viską, kad atsakyčiau.

Rekomenduojamas: