Innholdsfortegnelse:
Video: Internetthastighetsmåler: 4 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Oversikt
Denne "Internetthastighetsmåleren" vil gi deg nær sanntids tilsyn med nettverksbruken din. Denne informasjonen er tilgjengelig på webgrensesnittet til de fleste hjemrutere. Men for å få tilgang til den må du stoppe din nåværende oppgave for å slå den opp.
Jeg ønsket å se denne informasjonen uten å måtte avbryte min nåværende oppgave, vise den i et format som var forståelig med et raskt blikk, og for å få informasjonen på en måte som ville fungere med så mange rutere som mulig, slik at andre kunne potensielt bruke den også.
Hvordan det gjør tingene
Jeg bestemte meg for SNMP (Simple Network Management Protocol) som måten å få informasjonen fra ruteren. SNMP er mye brukt i nettverksutstyr, og hvis enheten ikke støtter det som standard, kan DDWRT (åpen kildekode -ruter -fastvare) brukes til å implementere SNMP.
For å vise informasjonen på en måte som er lett å forstå brukte jeg en måler fra en bil. Bilmålere er designet for å gi deg informasjon uten å være distraherende eller forvirrende, slik at sjåføren kan holde øynene på veien. Dessuten hadde jeg litt liggende.
Siden dette ville ligge på skrivebordet mitt, bestemte jeg meg for at jeg også ville lage bakgrunnslyset RGB fordi datatilbehør alt skulle være RGB. Ikke sant?
Utfordringer
Målerne som jeg hadde brukte en Air-Core-aktuator. Jeg hadde aldri hørt om disse før dette prosjektet.
Fra Wikipedia: Luftkjernemåler består av to uavhengige, vinkelrette spoler som omgir et hul kammer. En nåleaksel stikker inn i kammeret, hvor en permanent magnet er festet til akselen. Når strøm strømmer gjennom de vinkelrette spolene, ligger magnetfeltene over hverandre, og magneten står fritt til å justere med de kombinerte feltene.
Jeg klarte ikke å finne et bibliotek for Arduino som støttet SNMP i managerkonfigurasjonen. SNMP har to hovedformer, agent og manager. Agenter svarer på forespørsel og ledere sender forespørsel til agenter. Jeg klarte å få lederfunksjonaliteten til å fungere ved å endre Arduino_SNMP -biblioteket opprettet av 0neblock. Jeg har aldri programmert i C ++ annet enn å få lysdioder til å blinke på en Arduino, så gi meg beskjed hvis det er problemer med SNMP -biblioteket, så prøver jeg å fikse dem, for nå fungerer det imidlertid.
I tillegg er SNMP ikke designet for visning i sanntid. Tiltenkt bruk er for å spore statistikk og oppdage avbrudd. På grunn av dette oppdateres informasjonen på ruteren bare omtrent hvert 5. sekund (enheten din kan variere). Det er årsaken til forsinkelsen mellom tallet på hastighetstesten og nålen som beveger seg.
Trinn 1: Verktøy og materialer
Vi trenger 3 H-broer. Modellene jeg brukte er Dual TB6612FNGand Dual L298N.
Hver Air-Core-aktuator krever 2 fulle H-broer fordi spolene må styres uavhengig.
En av målerne jeg bruker har en spole kortsluttet til bakken med en diode og motstand. Jeg er ikke sikker på vitenskapen bak det, men det gjør at den kan rotere omtrent 90 grader med bare en spole drevet.
Jeg bruker 12v til 5v regulatoren som er en del av L298N -kortet som jeg valgte for å drive ESP32.
Alle LED -kretsene er valgfrie, i tillegg til JST -kontaktene. Du kan enkelt lodde ledningene direkte til ESP32 og motordriveren.
Trinn 3: Kodesign
Kodeoppsett
Vi må konfigurere Arduino for å kunne bruke ESP32 -kortet. Det er en god guide som vil lede deg gjennom ESP32 Arduino -oppsettet.
Du trenger også Arduino_SNMP -biblioteket som ligger her.
For å konfigurere koden må du samle inn informasjon.
- Ruter IP
- Maks opplastningshastighet
- Maks nedlastningshastighet
- WiFi -navnet og passordet ditt
- OID som inneholder oktett teller for "inn" og "ut" på ruterne WAN -grensesnittet
Det finnes standard OID (Object Identifiers) for informasjonen vi ønsker. I henhold til MIB-2-standarden er tallene 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 tallet som er tilordnet grensesnittet du vil hente statistikken fra. For meg er tallet 3. En måte å bekrefte at dette er riktig OID for deg og å identifisere hvilket grensesnittnummer du trenger å bruke, er å bruke et verktøy som MIB Browser.
For å få maks hastigheter brukte jeg SpeedTest.net. Når du har hastighetene dine i Mbps, må du konvertere dem til oktetter ved å bruke denne formelen.
Oktetter per sekund = (Resultat fra hastighetstest i Mbps * 1048576) / 8
Kodefunksjon
Koden sender en SNMP-forespørsel til ruteren. Ruteren svarer deretter med et tall, tallet representerer antallet oktetter som er sendt eller mottatt. Samtidig registrerer vi antall millisekunder som har gått siden Arduino startet.
Når denne prosessen har skjedd minst to ganger, kan vi beregne prosentandelen av bruk basert på våre maksverdier ved hjelp av denne koden
percentDown = ((float) (byteDown - byteDownLast)/(float) (maxDown * ((millis () - timeLast)/1000))) * 100;
Regnestykket brytes slik:
octetsDiff = snmp_result - Forrige_ snmp_result
timeFrame = currentTime - timeLast
MaxPosableOverTime = (timeFrame * Octets_per_second)/1000
Prosent = (octetsDiff / MaxPosableOverTime) * 100
Nå som vi har prosentandelen av nettverksbruk, trenger vi bare å skrive det til måleren. Vi gjør det i 2 trinn. Først bruker vi updateDownloadGauge -funksjonen. I denne funksjonen bruker vi "kart" for å konvertere prosentandelen til et tall som representerer en radianposisjon på måleren. Deretter gir vi det tallet til setMeterPosition -funksjonen for å flytte nålen til den nye posisjonen.
Trinn 4: Case Design
For å inneholde alt, designet jeg et kabinett i fusion360 og 3Dprintet det. Designet jeg laget er relativt enkelt. Jeg brukte varmt lim for å feste komponentene på innsiden, og måleren holdes på plass ved å bli klemt mellom frontdekselet og bakdekselet. Du trenger ikke å bruke 3D -utskrift for å lage saken. For eksempel kan du lage et etui av tre, eller du kan sette alt tilbake i det originale etuiet som målerne kom i.
Mine STL -filer er tilgjengelige på thingiverse hvis du vil se på dem, men det er usannsynlig at de vil fungere for deg med mindre du får nøyaktig de samme målerne som jeg brukte.
Saksfiler:
Takk for at du leste. Gi meg beskjed hvis du har spørsmål, så skal jeg gjøre mitt beste for å svare.
Anbefalt:
Ta flotte bilder med en iPhone: 9 trinn (med bilder)
Ta flotte bilder med en iPhone: De fleste av oss har med oss en smarttelefon overalt i disse dager, så det er viktig å vite hvordan du bruker smarttelefonkameraet ditt til å ta flotte bilder! Jeg har bare hatt en smarttelefon i et par år, og jeg har elsket å ha et greit kamera for å dokumentere ting jeg
Slik gjør du det: Installere Raspberry PI 4 Headless (VNC) med Rpi-imager og bilder: 7 trinn (med bilder)
Howto: Installere Raspberry PI 4 Headless (VNC) Med Rpi-imager og bilder: Jeg planlegger å bruke denne Rapsberry PI i en haug med morsomme prosjekter tilbake i bloggen min. Sjekk det gjerne ut. Jeg ønsket å begynne å bruke Raspberry PI igjen, men jeg hadde ikke tastatur eller mus på min nye plassering. Det var en stund siden jeg konfigurerte en bringebær
Internetthastighetsmåler: 9 trinn (med bilder)
Internetthastighetsmåler: Med fullstendig lockdown i India har alt inkludert posttjenester blitt stengt. Ingen nye PCB -prosjekter, ingen nye komponenter, ingenting! Så for å overvinne kjedsomheten og for å holde meg opptatt, bestemte jeg meg for å lage noe fra delene som jeg alr
Slik demonterer du en datamaskin med enkle trinn og bilder: 13 trinn (med bilder)
Slik demonterer du en datamaskin med enkle trinn og bilder: Dette er en instruksjon om hvordan du demonterer en PC. De fleste grunnkomponentene er modulære og fjernes lett. Det er imidlertid viktig at du er organisert om det. Dette vil bidra til å hindre deg i å miste deler, og også i å gjøre monteringen igjen
PCB -design med enkle og enkle trinn: 30 trinn (med bilder)
PCB -design med enkle og enkle trinn: HELLO VENNER Den veldig nyttige og enkle opplæringen for de som ønsker å lære PCB -design, kan komme i gang