Indholdsfortegnelse:

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

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

Video: Internethastighedsmåler: 9 trin (med billeder)
Video: Kursus i Matematik Færdighedsregning (9. klasse) 2024, November
Anonim
Image
Image
Planen
Planen

Med fuldstændig lockdown i gang i Indien, er alt inklusive posttjenester blevet lukket. Ingen nye PCB -projekter, ingen nye komponenter, ingenting! Så for at overvinde kedsomheden og for at holde mig beskæftiget besluttede jeg mig for at lave noget fra de dele, som jeg allerede har derhjemme. Jeg begyndte at søge fra bunken elektronikskram og fandt et gammelt, ødelagt analogt multimeter. Jeg bjærgede 'meterbevægelsen' fra den og besluttede at vise en slags information, men vidste ikke ligefrem hvad. Først tænkte jeg på at vise COVID-19-statistik, men der er allerede mange bedre projekter på internettet. Dataene opdateres også efter et par timer, og en stille markør af måleren ville være kedelig. Jeg ville have data, der ændres hurtigt, ændres hvert sekund. Jeg bad om forslag på Instagram, og en af mine følgere svarede med internethastighedsmåler. Det lød interessant og besluttede at gøre det!

I denne instruks vil jeg vise dig, hvordan jeg tog data fra min WiFi -router ved hjælp af SNMP og viste upload- og downloadhastigheder på måleren.

Lad os komme igang

Trin 1: Planen

Som altid før jeg startede med projektet, undersøgte jeg lidt på internettet. Jeg fandt et par projekter relateret til dette emne. De var af to slags. En der viste internethastighed ved at måle 'styrken' af WiFi -signalet. Jeg er ikke en netværksekspert, men det lød ikke rigtigt. De andre målte latensen og kategoriserede hastigheden som langsom, medium eller hurtig. Latens er forsinkelsen mellem afsendelse af anmodningen og svaret, og det kan derfor ikke være den faktiske repræsentation af internethastigheden. Vi kan dog kalde det en netværksresponshastighed! Derefter var der legitime projekter, der målte den tid, det krævede at downloade nogle data og beregnet internethastigheden baseret på det.

Men det var i dette projekt (af Alistair), at jeg lærte om Simple Network Management Protocol eller SNMP. Ved hjælp af SNMP kan vi kommunikere med WiFi -routeren og få de nødvendige data direkte fra den. Let, ikke? Faktisk nej! Fordi forskellige modeller af WiFi -routere bruger har forskellige indstillinger og har brug for en masse forsøg og fejl, før du endelig får output. Vær ikke bange. Jeg vil kort forklare, hvad jeg lærte om SNMP og de vanskeligheder, jeg stod over for i de kommende trin.

Så planen er at bruge NodeMCU til at oprette forbindelse til WiFi Router. Dette er trinene for at komme til det endelige output:

  • Send en anmodning til routeren, der 'anmoder om' de nødvendige data
  • Få svaret fra routeren
  • Analyser svaret og analyser de nødvendige data fra det
  • Konverter de "rå" data til forståelige oplysninger
  • Generer spænding, der er proportional med internethastigheden for måleren
  • Gentage

Jeg vil bruge en DAC eller Digital til Analog Converter til styring af måleren.

Trin 2: Ting, du får brug for

Ting du får brug for
Ting du får brug for
Ting du får brug for
Ting du får brug for
Ting du får brug for
Ting du får brug for

1x NodeMCU

1x Analog måler bevægelse

1x MPU4725 DAC

1x SPDT -switch

1x 10k potentiometer

1x modstand

Trin 3: Beregning af fuldskala afbøjningsstrøm

Beregning af afbøjningsstrøm i fuld skala
Beregning af afbøjningsstrøm i fuld skala
Beregning af afbøjningsstrøm i fuld skala
Beregning af afbøjningsstrøm i fuld skala

Bemærk: Gå til trin 7 for den faktiske opbygning!

Spring dette trin over, hvis du allerede kender afbøjningsstrømmen i fuld skala til din måler. Min måler havde ingen omtale af det, så jeg var nødt til at beregne. Men lad os først hurtigt se, hvordan en sådan bevægelse fungerer. Den består af en spole, der er suspenderet i et magnetfelt. Når strømmen strømmer gennem spolen, oplever den ifølge Faradays lov en kraft. Spolen får lov til at rotere frit i magnetfeltet, og det samme gør markøren, der er fastgjort til spolen. Størrelsen af strøm, der får markøren til at bevæge sig i 'enden af skalaen' kaldes fuldskala afbøjningsstrøm. Dette er også den maksimale strøm, der skal have lov til at strømme gennem spolen.

Der sker meget mere, men det er nok til det, vi laver. Vi har nu bevægelsen. Det kan bruges som voltmeter ved at tilføje en høj modstand i serie med det eller som et amperemeter ved at tilføje en lille modstand parallelt med det. Vi vil bruge det som et voltmeter til at vise spændingen, der er proportional med internethastigheden. Så vi skal beregne den modstand, der skal tilføjes i serie. Til det skal vi først beregne afbøjningsstrømmen i fuld skala.

  1. Vælg en høj modstandsværdi (som> 100k)
  2. Forbind den i serie med bevægelsen og påfør en variabel spænding over den ved hjælp af gryden.
  3. Fortsæt med at øge spændingen langsomt, indtil markøren når slutningen af skalaen.
  4. Brug et multimeter til at måle strømmen, der strømmer igennem. Dette er afbøjningsstrømmen i fuld skala. (I = 150uA i mit tilfælde)

Vi bruger en DAC, der har udgangsspændingsområdet fra 0 til VCC (3,3V på grund af NodeMCU). Det betyder, at når 3,3V påføres måleren, skal den pege i slutningen af skalaen. Dette kan ske, når afbøjningsstrøm i fuld skala strømmer gennem kredsløbet, når 3,3V påføres. Ved hjælp af Ohms lov giver 3.3/(fuldskala afbøjningsstrøm) værdien til modstand, der skal indsættes i serie.

Trin 4: Oprettelse af SNMP GET -anmodning

Oprettelse af SNMP GET -anmodning
Oprettelse af SNMP GET -anmodning
Oprettelse af SNMP GET -anmodning
Oprettelse af SNMP GET -anmodning
Oprettelse af SNMP GET -anmodning
Oprettelse af SNMP GET -anmodning

Simple Network Management Protocol (SNMP) er en internetstandardprotokol til indsamling og organisering af oplysninger om administrerede enheder på IP -netværk og til at ændre disse oplysninger for at ændre enhedens adfærd. Enheder, der typisk understøtter SNMP, omfatter kabelmodem, routere, switches, servere, arbejdsstationer, printere og mere. Til denne build kommunikerer vi med vores WiFi -router ved hjælp af SNMP og får de nødvendige data.

Men først skal vi sende en anmodning kendt som en 'GET Request' til routeren med angivelse af detaljerne i de data, vi ønsker. GET Request -format vises på billedet. Anmodningen består af forskellige dele. Jeg har fremhævet de bytes, som du måske vil ændre.

Bemærk, at alt er i hexadecimal.

SNMP -meddelelse -I mit tilfælde er hele meddelelsens længde 40 (grå farve), som når den konverteres til hexadecimal er 0x28.

SNMP Community String - Værdien 'PUBLIC' skrives hexadecimal som '70 75 62 6C 69 63 ', hvis længde er 6 (gul).

SNMP PDU Type - I mit tilfælde er meddelelsens længde 27 (blå) dvs. 0x1B.

Varbind List Type - I mit tilfælde er meddelelsens længde 16 (grøn) dvs. 0x10.

Varbind Type - I mit tilfælde er meddelelsens længde 14 (pink) dvs. 0x0E.

Objektidentifikator -

Som tidligere nævnt opretholder SNMP-aktiverede netværksenheder (f.eks. Routere, switches osv.) En database med systemstatus, tilgængelighed og ydelsesinformation som objekter, identificeret med OID'er. Du skal identificere OID'erne på din router til upload og download pakker. Det kan gøres ved hjælp af en gratis MIB -browser som denne.

Indtast 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). Vælg Get operation, og klik på Go. Du bør se OID sammen med dens værdi og type.

I mit tilfælde er meddelelsens længde 10 (rød) dvs. 0x0A. Udskift værdien med OID. I dette tilfælde '2B 06 01 02 01 02 02 01 10 10'

Det er det! Din anmodningsbesked er klar. Behold resten af bytes, som de er.

Tænd SNMP på din router:

  • Log på din WiFi -routers side via standardgatewayen. Skriv 192.168.1.1 i din browser, og tryk på enter. Brugernavn og adgangskode skal som standard være 'admin'.
  • Jeg bruger en TP-LINK (TD-W8961N) router. For denne router skal du gå til Adgangsstyring> SNMP og vælge 'Aktiveret'.
  • GET Community: offentligt
  • Fældevært: 0.0.0.0

Trin 5: Forståelse af GET Response

Forståelse af GET Response
Forståelse af GET Response

Du kan springe dette trin over, men det er godt at vide, om du skal foretage fejlfinding.

Når du har uploadet koden og kørt den, kan du se på svaret via den serielle skærm. Det skal se ud som vist på billedet. Der er et par bytes, du skal kigge efter, som jeg har fremhævet.

Fra 0, 15. byte fortæller PDU Type - 0xA2 betyder, at det er et GetResponse.

48. byte fortæller datatypen - 0x41 betyder, at datatypen er Counter.

49. byte fortæller længden af data - 0x04 betyder, at dataene er 4 bytes lange.

Byte 50, 51, 52, 53 indeholder dataene.

Trin 6: Digital til analog konverter (DAC)

Digital til analog konverter (DAC)
Digital til analog konverter (DAC)

Mikrocontrollere er digitale enheder, der ikke forstår analoge spændinger direkte. Jeg bruger en analog måler, der har brug for en variabel spænding som input. Men mikrokontroller kan bare udsende HIGH (3.3V i tilfælde af NodeMCU) og LOW (0V). Nu kan du sige, hvorfor ikke bare bruge PWM. Det virker ikke, da måleren kun viser gennemsnitsværdien.

Jeg bruger MCP4725 DAC til at få variabel spænding. Det er en 12-bit DAC, dvs. i enkle termer, vil den opdele 0 til 3,3V i 4096 (= 2^12) dele. Opløsningen vil være 3,3/4096 = 0,8056mV. Det betyder, at 0 svarer til 0V, 1 svarer til 0,8056mV, 2 svarer til 1,6112mV, ….., 4095 svarer til 3,3V.

Internethastigheden vil blive 'kortlagt' fra '0 til 7 mbps' til '0 til 4095', og derefter vil denne værdi blive givet til DAC for at udsende en spænding, der vil være proportional med internethastigheden.

Trin 7: Forsamlingen

Forsamlingen
Forsamlingen
Forsamlingen
Forsamlingen
Forsamlingen
Forsamlingen
Forsamlingen
Forsamlingen

Forbindelser er meget enkle. Skemaet er vedhæftet her.

Jeg har designet og printet vægten. Den øverste er til downloadhastighed, og den nederste er til uploadhastighed. Jeg limede den nye skala over den gamle.

Jeg fjernede alle de gamle ting fra multimeteret, og jeg stappede alt i det. Det var en stram pasform. Jeg var nødt til at bore et hul i fronten for at vedhæfte vippekontakten, der bruges til at vælge mellem upload og download hastighed.

Trin 8: Tid til kodning

Tid til kodning
Tid til kodning
Tid til kodning
Tid til kodning
Tid til kodning
Tid til kodning

Koden er vedhæftet her. Download og åbn den i Arduino IDE. Installer MCP4725 -biblioteket fra Adafruit.

Inden du uploader:

  1. Indtast dit WiFi SSID og adgangskode
  2. Indtast maksimal upload- og downloadhastighed, der er angivet på skalaen.
  3. Foretag de nødvendige ændringer i anmodnings arrayet til download samt upload pakker.
  4. Fjern linje fra 165 for at se svar på den serielle skærm.

Hit upload!

Trin 9: God fornøjelse

Tænd for den, og nyd at se nålen danse rundt, mens du surfer på internettet!

Tak fordi du holdt fast i slutningen. Håber I alle elsker dette projekt og lærte noget nyt i dag. Lad mig vide, hvis du laver en til dig selv. Abonner på min YouTube -kanal for flere sådanne projekter.

Anbefalede: