Indholdsfortegnelse:
- Trin 1: Planen
- Trin 2: Ting, du får brug for
- Trin 3: Beregning af fuldskala afbøjningsstrøm
- Trin 4: Oprettelse af SNMP GET -anmodning
- Trin 5: Forståelse af GET Response
- Trin 6: Digital til analog konverter (DAC)
- Trin 7: Forsamlingen
- Trin 8: Tid til kodning
- Trin 9: God fornøjelse
Video: Internethastighedsmåler: 9 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
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
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
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.
- Vælg en høj modstandsværdi (som> 100k)
- Forbind den i serie med bevægelsen og påfør en variabel spænding over den ved hjælp af gryden.
- Fortsæt med at øge spændingen langsomt, indtil markøren når slutningen af skalaen.
- 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
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
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)
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
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
Koden er vedhæftet her. Download og åbn den i Arduino IDE. Installer MCP4725 -biblioteket fra Adafruit.
Inden du uploader:
- Indtast dit WiFi SSID og adgangskode
- Indtast maksimal upload- og downloadhastighed, der er angivet på skalaen.
- Foretag de nødvendige ændringer i anmodnings arrayet til download samt upload pakker.
- 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:
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: 7 trin (med billeder)
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: Jeg planlægger at bruge denne Rapsberry PI i en masse sjove projekter tilbage i min blog. Tjek det gerne ud. Jeg ville tilbage til at bruge min Raspberry PI, men jeg havde ikke et tastatur eller en mus på min nye placering. Det var et stykke tid siden jeg konfigurerede en hindbær
Sådan adskilles en computer med nemme trin og billeder: 13 trin (med billeder)
Sådan adskilles en computer med nemme trin og billeder: Dette er en instruktion om, hvordan du adskiller en pc. De fleste af de grundlæggende komponenter er modulopbyggede og nemme at fjerne. Det er dog vigtigt, at du er organiseret omkring det. Dette hjælper med at forhindre dig i at miste dele og også ved at lave genmonteringen til
Ciclop 3d Scanner My Way Trin for trin: 16 trin (med billeder)
Ciclop 3d Scanner My Way Step by Step: Hej alle sammen, jeg kommer til at indse den berømte Ciclop 3D -scanner.Alle trin, der er godt forklaret på det originale projekt, er ikke til stede.Jeg lavede nogle rettelser for at forenkle processen, først Jeg udskriver basen, og end jeg genstarter printkortet, men fortsæt
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: 7 trin (med billeder)
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: Selv efter 25 års introduktion til forbrugermarkedet er infrarød kommunikation stadig meget relevant i de seneste dage. Uanset om det er dit 55 tommer 4K -fjernsyn eller dit billydsystem, har alt brug for en IR -fjernbetjening for at reagere på vores
Internethastighedsmåler: 4 trin (med billeder)
Internethastighedsmåler: OversigtDenne " Internethastighedsmåler " giver dig nærtidsovervågning af din netbrug. 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 gå