Indholdsfortegnelse:

Internethastighedsmåler: 4 trin (med billeder)
Internethastighedsmåler: 4 trin (med billeder)

Video: Internethastighedsmåler: 4 trin (med billeder)

Video: Internethastighedsmåler: 4 trin (med billeder)
Video: Hvilken internethastighed skal du vælge? 2024, Juli
Anonim
Image
Image
Internet hastighedsmåler
Internet hastighedsmåler
Internet hastighedsmåler
Internet hastighedsmåler

Oversigt

Denne "internethastighedsmåler" giver dig nærtidsovervågning af dit netforbrug. Disse oplysninger er tilgængelige på webgrænsefladen for de fleste hjemmeroutere. Men adgang til den kræver, at du stopper din nuværende opgave for at slå den op.

Jeg ville se disse oplysninger uden at skulle afbryde min nuværende opgave, vise dem i et format, der var forståeligt med et hurtigt blik, og at få informationen på en måde, der ville fungere med så mange routere som muligt, så andre kunne muligvis også bruge det.

Hvordan det gør tingene

Jeg besluttede mig for SNMP (Simple Network Management Protocol) som måden at hente oplysningerne fra routeren. SNMP bruges meget i netværksudstyr, og hvis din enhed ikke understøtter det som standard, kan DDWRT (open source router -firmware) bruges til at implementere SNMP.

For at vise oplysningerne på en letforståelig måde brugte jeg en måler fra en bil. Bilmålere er designet til at give dig information uden at være distraherende eller forvirrende, så føreren kan holde øje med vejen. Jeg havde også nogle liggende.

Da dette ville være på mit skrivebord, besluttede jeg, at jeg også ville lave baggrundslyset RGB, fordi computertilbehør alle skulle være RGB. Ret?

Udfordringer

Målerne, jeg havde, brugte en Air-Core-aktuator. Jeg havde aldrig hørt om disse før dette projekt.

Fra Wikipedia: Luftkernemåleren består af to uafhængige, vinkelrette spoler, der omgiver et hul kammer. En nålestang stikker ind i kammeret, hvor en permanent magnet er fastgjort til skaftet. Når strøm strømmer gennem de vinkelrette spoler, overlejrer deres magnetfelter, og magneten er fri til at justere med de kombinerede felter.

Jeg kunne ikke finde et bibliotek til Arduino, der understøttede SNMP i managerkonfigurationen. SNMP har to hovedformer, agent og manager. Agenter reagerer på anmodning, og ledere sender anmodning til agenter. Jeg var i stand til at få managerfunktionaliteten til at fungere ved at ændre Arduino_SNMP -biblioteket oprettet af 0neblock. Jeg har aldrig programmeret i C ++ andet end at få lysdioder til at blinke på en Arduino, så lad mig vide det, hvis der er problemer med SNMP -biblioteket, så prøver jeg at rette dem, for nu virker det dog.

Derudover er SNMP ikke designet til visning i realtid. Den påtænkte anvendelse er til sporing af statistik og registrering af afbrydelser. På grund af dette opdateres oplysningerne på routeren kun cirka hvert 5. sekund (din enhed kan variere). Det er årsagen til forsinkelsen mellem nummeret på hastighedstesten og nålen, der bevæger sig.

Trin 1: Værktøjer og materialer

Værktøjer og materialer
Værktøjer og materialer
Værktøjer og materialer
Værktøjer og materialer
Værktøjer og materialer
Værktøjer og materialer
Værktøjer og materialer
Værktøjer og materialer
Kredsløbsdesign
Kredsløbsdesign

Vi skal bruge 3 fulde H-broer. De modeller, jeg brugte, er Dual TB6612FNGand Dual L298N.

Hver Air-Core-aktuator kræver 2 fulde H-broer, fordi spolerne skal styres uafhængigt.

En af målerne, jeg bruger, har en spole, der er kortsluttet til jorden med en diode og modstand. Jeg er ikke sikker på videnskaben bag det, men det gør det muligt at rotere omkring 90 grader med kun en spole drevet.

Jeg bruger 12v til 5v regulatoren, der er en del af L298N -kortet, som jeg valgte til at drive ESP32.

Alle LED -kredsløb er valgfrie samt JST -stik. Du kan let lodde ledningerne direkte til ESP32 og motordriveren.

Trin 3: Kodesign

Kodeopsætning

Vi bliver nødt til at konfigurere Arduino for at kunne bruge ESP32 -kortet. Der er en god guide placeret her, der vil lede dig gennem ESP32 Arduino -opsætning.

Du får også brug for Arduino_SNMP -biblioteket her.

For at konfigurere koden skal du indsamle nogle oplysninger.

  1. Router IP
  2. Maksimal uploadhastighed
  3. Maksimal downloadhastighed
  4. Dit WiFi -navn og adgangskode
  5. OID, der indeholder oktettællinger for "in" og "out" på din routers WAN -interface

Der er standard OID'er (Object Identifiers) til de oplysninger, vi ønsker. I henhold til MIB-2-standarden er de tal, vi ønsker:

ifInOctets.1.3.6.1.2.1.2.2.1.16. X

ifOutOctets.1.3.6.1.2.1.2.2.1.10. X

Hvor X er det nummer, der er tildelt den grænseflade, du vil hente statistikken fra. For mig er dette nummer 3. En måde at bekræfte, at dette er den korrekte OID for dig og identificere, hvilket grænsefladesnummer du skal bruge, er at bruge et værktøj som MIB Browser.

For at få maks hastigheder brugte jeg SpeedTest.net. Når du har dine hastigheder i Mbps, skal du konvertere dem til oktetter ved hjælp af denne formel.

Oktetter pr. Sekund = (Resultat fra hastighedstest i Mbps * 1048576) / 8

Kodefunktion

Koden sender en SNMP get-anmodning til routeren. Routeren svarer derefter med et nummer, tallet repræsenterer antallet af oktetter, der er blevet sendt eller modtaget. På samme tid registrerer vi antallet af millisekunder, der er gået siden Arduino startede.

Når denne proces er sket mindst to gange, kan vi beregne procentdelen af brug baseret på vores maksimalværdier ved hjælp af denne kode

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

Matematikken bryder således sammen:

octetsDiff = snmp_result - Forrige_ snmp_result

timeFrame = currentTime - timeLast

MaxPosableOverTime = (timeFrame * Octets_per_second)/1000

Procent = (octetsDiff / MaxPosableOverTime) * 100

Nu hvor vi har procentdelen af netværksforbruget, skal vi bare skrive det til måleren. Det gør vi i 2 trin. Først bruger vi updateDownloadGauge -funktionen. I denne funktion bruger vi "kort" til at konvertere procentdelen til et tal, der repræsenterer en radianposition på måleren. Derefter giver vi dette nummer til setMeterPosition -funktionen for at flytte nålen til den nye position.

Trin 4: Case Design

Case Design
Case Design
Case Design
Case Design
Case Design
Case Design

For at indeholde alt designede jeg et kabinet i fusion360 og 3Dprintede det. Det design, jeg lavede, er relativt enkelt. Jeg brugte varm lim til at fastgøre komponenterne på indersiden, og måleren holdes på plads ved at blive klemt mellem frontdækslet og bagdækslet. Du behøver ikke bruge 3D -print til at oprette sagen. For eksempel kan du lave en kasse af træ, eller du kan lægge alt tilbage i den originale kasse, som målerne kom i.

Mine STL -filer er tilgængelige på thingiverse, hvis du vil se på dem, men det er usandsynligt, at de vil fungere for dig, medmindre du får de nøjagtig samme målere, som jeg brugte.

Sagsakter:

Tak fordi du læste. Lad mig vide, hvis du har spørgsmål, og jeg vil gøre mit bedste for at svare.

Anbefalede: