Innholdsfortegnelse:

Internetthastighetsmåler: 9 trinn (med bilder)
Internetthastighetsmåler: 9 trinn (med bilder)

Video: Internetthastighetsmåler: 9 trinn (med bilder)

Video: Internetthastighetsmåler: 9 trinn (med bilder)
Video: Online 4G internet speed meter 2024, November
Anonim
Image
Image
Planen
Planen

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 av delene som jeg allerede har hjemme. Jeg begynte å søke fra haugen med elektronikk -søppel og fant et gammelt, ødelagt analogt multimeter. Jeg reddet "meterbevegelsen" fra den og bestemte meg for å vise informasjon, men visste ikke akkurat hva. Først tenkte jeg på å vise statistikk over COVID-19, men det er allerede mange bedre prosjekter på internett. Dataene oppdateres også etter noen timer, og en stille peker på måleren ville være kjedelig. Jeg ville ha data som endres raskt, endres hvert sekund. Jeg ba om forslag på Instagram, og en av mine følgere svarte med Internetthastighetsmåler. Det hørtes interessant ut og bestemte seg for å klare det!

I denne instruksen vil jeg vise deg hvordan jeg hentet data fra WiFi -ruteren min ved hjelp av SNMP og viste opplastings- og nedlastningshastigheter på måleren.

La oss komme i gang

Trinn 1: Planen

Som alltid før jeg begynte med prosjektet, forsket jeg litt på internett. Jeg fant noen prosjekter knyttet til dette emnet. De var av to slag. En som viste internetthastighet ved å måle "styrken" til WiFi -signalet. Jeg er ikke en nettverksekspert, men dette hørtes ikke riktig ut. De andre målte latensen og kategoriserte hastigheten som sakte, middels eller rask. Latens er forsinkelsen mellom å sende forespørselen og få svaret, og det kan derfor ikke være den faktiske representasjonen av internetthastigheten. Vi kan kalle det en nettverksresponshastighet! Så var det legitime prosjekter som målte tiden det tok å laste ned noen data og beregnet internetthastigheten basert på det.

Men det var i dette prosjektet (av Alistair) jeg lærte om Simple Network Management Protocol eller SNMP. Ved å bruke SNMP kan vi kommunisere med WiFi -ruteren og få nødvendige data direkte fra den. Lett, ikke sant? Faktisk nei! Fordi forskjellige modeller av WiFi -rutere bruker forskjellige innstillinger og trenger mye prøving og feiling før du endelig får utgangen. Ikke vær redd. Jeg vil kort forklare alt jeg har lært om SNMP og vanskelighetene jeg møtte i de kommende trinnene.

Så planen er å bruke NodeMCU for å koble til WiFi -ruteren. Dette er trinnene for å komme til den endelige utgangen:

  • Send en forespørsel til ruteren og ber om de nødvendige dataene
  • Få svar fra ruteren
  • Analyser svaret og analyser nødvendige data fra det
  • Konverter "rådata" til forståelig informasjon
  • Generer spenning proporsjonal med internettets hastighet for måleren
  • Gjenta

Jeg bruker en DAC eller Digital to Analog Converter for å kontrollere måleren.

Trinn 2: Ting du trenger

Ting du trenger
Ting du trenger
Ting du trenger
Ting du trenger
Ting du trenger
Ting du trenger

1x NodeMCU

1x Analog målerbevegelse

1x MPU4725 DAC

1x SPDT -bryter

1x 10k potensiometer

1x motstand

Trinn 3: Beregning av nedbøyningsstrøm i full skala

Beregning av nedbøyningsstrøm i full skala
Beregning av nedbøyningsstrøm i full skala
Beregning av nedbøyningsstrøm i full skala
Beregning av nedbøyningsstrøm i full skala

Merk: Gå til trinn 7 for selve byggingen!

Hopp over dette trinnet hvis du allerede kjenner nedbøyningsstrømmen i full skala for måleren din. Måleren min hadde ingen omtale av det, så jeg måtte beregne. Men først, la oss raskt se hvordan en slik bevegelse fungerer. Den består av en spole suspendert i et magnetfelt. Når strømmen strømmer gjennom spolen, opplever den i henhold til Faradays lov en kraft. Spolen får rotere fritt i magnetfeltet, og det samme gjør pekeren som er festet til spolen. Størrelsen på strømmen som får pekeren til å bevege seg ved 'enden av skalaen' kalles fullskala avbøyningsstrøm. Dette er også maksimal strøm som må få strømme gjennom spolen.

Det skjer mye mer, men dette er nok for det vi gjør. Vi har nå bevegelsen. Det kan brukes som et voltmeter ved å legge til en høy motstand i serie med det eller som et amperemeter ved å legge til en liten motstand parallelt med den. Vi skal bruke det som et voltmeter for å vise spenningen proporsjonal med internetthastigheten. Så vi må beregne motstanden som skal legges til i serie. For det må vi først beregne nedbøyningsstrømmen i full skala.

  1. Velg en høy motstandsverdi (som> 100k)
  2. Koble den i serie med bevegelsen og påfør en variabel spenning over den ved hjelp av potten.
  3. Fortsett å øke spenningen sakte til pekeren når slutten av skalaen.
  4. Måle strømmen som strømmer gjennom et multimeter. Dette er nedbøyningsstrømmen i full skala. (I = 150uA i mitt tilfelle)

Vi bruker en DAC som har utgangsspenningsområdet fra 0 til VCC (3,3V på grunn av NodeMCU). Dette betyr at når 3,3V påføres måleren, bør den peke på slutten av skalaen. Dette kan skje når nedbøyningsstrøm i full skala strømmer gjennom kretsen når 3,3V påføres. Ved å bruke Ohms lov gir 3.3/(fullskala avbøyningsstrøm) verdien til motstand som skal settes inn i serie.

Trinn 4: Opprette SNMP GET -forespørsel

Oppretter SNMP GET -forespørsel
Oppretter SNMP GET -forespørsel
Oppretter SNMP GET -forespørsel
Oppretter SNMP GET -forespørsel
Oppretter SNMP GET -forespørsel
Oppretter SNMP GET -forespørsel

Simple Network Management Protocol (SNMP) er en Internett -standardprotokoll for innsamling og organisering av informasjon om administrerte enheter på IP -nettverk og for å endre informasjonen for å endre enhetsatferd. Enheter som vanligvis støtter SNMP inkluderer kabelmodem, rutere, switcher, servere, arbeidsstasjoner, skrivere og mer. For denne bygningen vil vi kommunisere med WiFi -ruteren vår ved hjelp av SNMP og få nødvendige data.

Men først må vi sende en forespørsel kjent som en 'GET Request' til ruteren og nevne detaljene for dataene vi ønsker. GET Request -format vises på bildet. Forespørselen består av forskjellige deler. Jeg har markert byte som du kanskje vil endre.

Vær oppmerksom på at alt er i heksadesimal.

SNMP -melding -I mitt tilfelle er lengden på hele meldingen 40 (grå farge), som når den konverteres til heksadesimal er 0x28.

SNMP Community String - Verdien 'PUBLIC' skrives heksadesimalt som '70 75 62 6C 69 63 'hvis lengde er 6 (gul).

SNMP PDU Type - I mitt tilfelle er lengden på meldingen 27 (blå) dvs. 0x1B.

Varbind List Type - I mitt tilfelle er lengden på meldingen 16 (grønn) dvs. 0x10.

Varbind Type - I mitt tilfelle er lengden på meldingen 14 (rosa) dvs. 0x0E.

Objektidentifikator -

Som nevnt tidligere opprettholder SNMP-aktiverte nettverksenheter (f.eks. Rutere, svitsjer, etc.) en database med systemstatus, tilgjengelighet og ytelsesinformasjon som objekter, identifisert av OID-er. Du må identifisere OID -ene til ruteren din for opplasting og nedlasting av pakker. Det kan gjøres ved hjelp av en gratis MIB -nettleser som denne.

Skriv inn adresse som 192.168.1.1 og OID som.1.3.6.1.2.1.2.2.1.10.x (ifInOctets) eller.1.3.6.1.2.1.2.2.1.16.x. (ifOutOctets). Velg Get operation og klikk på Go. Du bør se OID sammen med verdien og typen.

I mitt tilfelle er lengden på meldingen 10 (rød) dvs. 0x0A. Erstatt verdien med OID. I dette tilfellet '2B 06 01 02 01 02 02 01 10 10'

Det er det! Forespørselsmeldingen din er klar. Behold resten av byte som de er.

Slå på SNMP på ruteren din:

  • Logg deg på WiFi -rutersiden din via standard gateway. Skriv 192.168.1.1 i nettleseren din og trykk enter. Som standard bør brukernavnet og passordet være 'admin'.
  • Jeg bruker en TP-LINK (TD-W8961N) ruter. For denne ruteren må du gå til Access Management> SNMP og velge 'Aktivert'.
  • GET Community: offentlig
  • Fellevert: 0.0.0.0

Trinn 5: Forstå GET Response

Forstå GET Response
Forstå GET Response

Du kan hoppe over dette trinnet, men det er godt å vite om du trenger å gjøre noen feilsøking.

Når du har lastet opp koden og kjørt den, kan du se på svaret gjennom seriell skjerm. Det skal se ut som vist på bildet. Det er noen byte du må se etter som jeg har fremhevet.

Fra 0, 15. byte forteller PDU Type - 0xA2 betyr at det er en GetResponse.

48. byte forteller datatypen - 0x41 betyr at datatypen er Counter.

49. byte forteller lengden på data - 0x04 betyr at dataene er 4 byte lange.

Byte 50, 51, 52, 53 inneholder dataene.

Trinn 6: Digital til analog omformer (DAC)

Digital til analog omformer (DAC)
Digital til analog omformer (DAC)

Mikrokontrollere er digitale enheter som ikke forstår analoge spenninger direkte. Jeg bruker en analog måler som trenger en variabel spenning som inngang. Men mikrokontrolleren kan bare sende ut HIGH (3.3V i tilfelle NodeMCU) og LOW (0V). Nå kan du si hvorfor ikke bare bruke PWM. Det vil ikke fungere siden måleren bare viser gjennomsnittsverdien.

Jeg bruker MCP4725 DAC for å få variabel spenning. Det er en 12-biters DAC, dvs. enkelt sagt, den vil dele 0 til 3,3V i 4096 (= 2^12) deler. Oppløsningen vil være 3,3/4096 = 0,8056mV. Dette betyr at 0 tilsvarer 0V, 1 tilsvarer 0,8056mV, 2 tilsvarer 1,6112mV, ….., 4095 tilsvarer 3,3V.

Internetthastigheten vil bli 'kartlagt' fra '0 til 7 mbps' til '0 til 4095', og deretter vil denne verdien bli gitt til DAC for å sende ut en spenning som vil være proporsjonal med internetthastigheten.

Trinn 7: Forsamlingen

Forsamlingen
Forsamlingen
Forsamlingen
Forsamlingen
Forsamlingen
Forsamlingen
Forsamlingen
Forsamlingen

Tilkoblinger er veldig enkle. Skjemaet er vedlagt her.

Jeg designet og skrev ut vekten. Den øverste er for nedlastningshastighet og den nedre er for opplastingshastighet. Jeg limte den nye vekten over den gamle.

Jeg fjernet alt det gamle fra multimeteret, og jeg stappet alt i det. Det passet godt. Jeg måtte bore et hull i fronten for å feste vippebryteren som brukes til å velge mellom opplastings- og nedlastningshastighet.

Trinn 8: Tid for koding

Tid for koding
Tid for koding
Tid for koding
Tid for koding
Tid for koding
Tid for koding

Koden er lagt ved her. Last ned og åpne den i Arduino IDE. Installer MCP4725 -biblioteket fra Adafruit.

Før du laster opp:

  1. Skriv inn WiFi SSID og passord
  2. Skriv inn maksimal opplastings- og nedlastningshastighet som er nevnt på skalaen.
  3. Gjør de nødvendige endringene i forespørselsmatrisen for nedlasting og opplasting av pakker.
  4. Ikke kommenter linje 165 for å se respons på den serielle skjermen.

Trykk på opplasting!

Trinn 9: Kos deg

Slå på den og nyt å se nålen danse rundt mens du surfer på internett!

Takk for at du holder deg til slutten. Håper dere alle liker dette prosjektet og lærte noe nytt i dag. Gi meg beskjed hvis du lager en selv. Abonner på YouTube -kanalen min for flere slike prosjekter.

Anbefalt: