INHOUDSOPGAWE:
Video: Internetsnelheidsmeter: 4 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Oorsig
Hierdie "internetsnelheidsmeter" gee u byna intydse toesig oor u netwerkgebruik. Hierdie inligting is beskikbaar op die webkoppelvlak van die meeste tuisroeters. Om toegang daartoe te verkry, moet u egter u huidige taak stop om dit te gaan opsoek.
Ek wou hierdie inligting sien sonder om my huidige taak te onderbreek, dit in 'n verstaanbare formaat te vertoon met 'n vinnige blik en om die inligting op 'n manier te kry wat met soveel routers as moontlik werk, sodat ander gebruik dit moontlik ook.
Hoe dit die dinge doen
Ek het besluit op SNMP (Simple Network Management Protocol) as die manier om die inligting van die router af te kry. SNMP word wyd gebruik in netwerktoerusting en as u toestel dit nie standaard ondersteun nie, kan DDWRT (open source router -firmware) gebruik word om SNMP te implementeer.
Om die inligting op 'n maklik verstaanbare manier te vertoon, het ek 'n meter van 'n motor gebruik. Motormeters is ontwerp om u inligting te gee sonder om afleidend of verwarrend te wees, sodat die bestuurder hul oë op die pad kan hou. Ek het ook 'n bietjie gaan lê.
Aangesien dit op my lessenaar sou lê, het ek besluit om ook die agterlig RGB te maak, want rekenaartoebehore moet almal RGB wees. Reg?
Uitdagings
Die meters wat ek gehad het, gebruik 'n Air-Core-aandrywer. Ek het nog nooit hiervan gehoor voor hierdie projek nie.
Van Wikipedia: Die lugkernmeter bestaan uit twee onafhanklike, loodregte spoele wat 'n hol kamer omring. 'N Naaldas steek in die kamer, waar 'n permanente magneet op die as aangebring word. As stroom deur die loodregte spoele vloei, val hul magnetiese velde bo -op, en die magneet is vry om in lyn te kom met die gekombineerde velde.
Ek kon nie 'n biblioteek vir Arduino vind wat SNMP ondersteun in die bestuurderkonfigurasie nie. SNMP het twee hoofvorme, agent en bestuurder. Agente reageer op versoek en bestuurders stuur versoek aan agente. Ek kon bestuurderfunksies laat werk deur die Arduino_SNMP -biblioteek te verander wat deur 0neblock geskep is. Ek het nog nooit in C ++ geprogrammeer nie, behalwe dat LED's op 'n Arduino laat knip, so laat weet my as daar probleme is met die SNMP -biblioteek, en ek sal probeer om dit reg te stel, maar dit werk nou.
Boonop is SNMP nie ontwerp vir real -time kyk nie. Die beoogde gebruik is om statistieke op te spoor en onderbrekings op te spoor. As gevolg hiervan word die inligting op die router slegs ongeveer elke 5 sekondes bygewerk (u toestel kan wissel). Dit is die oorsaak van die vertraging tussen die nommer op die snelheidstoets en die naald wat beweeg.
Stap 1: gereedskap en materiaal
Ons benodig 3 volle H-brûe. Die modelle wat ek gebruik het, is Dual TB6612FNGand Dual L298N.
Elke Air-Core-aandrywer benodig 2 volle H-brûe omdat die spoele onafhanklik beheer moet word.
Een van die meters wat ek gebruik, het 'n spoel wat met 'n diode en weerstand op die grond gekort is. Ek is nie seker van die wetenskap daaragter nie, maar deur dit te doen, kan dit ongeveer 90 grade draai met slegs een spoel.
Ek sal die 12v tot 5v -reguleerder gebruik wat deel uitmaak van die L298N -bord wat ek gekies het om die ESP32 aan te dryf.
Al die LED -stroombane is opsioneel, sowel as die JST -verbindings. U kan die drade maklik aan die ESP32 en die motorbestuurder soldeer.
Stap 3: Kodeontwerp
Opstelling van kode
Ons sal Arduino moet instel om die ESP32 -bord te kan gebruik. Hier is 'n goeie gids wat u deur die ESP32 Arduino -opstelling kan lei.
U het ook die Arduino_SNMP -biblioteek hier nodig.
Om die kode op te stel, moet u inligting versamel.
- Router IP
- Maksimum oplaaisnelheid
- Maksimum aflaai spoed
- U WiFi -naam en wagwoord
- OID wat die oktettellings bevat vir "in" en "uit" op u routers WAN -koppelvlak
Daar is standaard OID's (Object Identifiers) vir die inligting wat ons wil hê. Volgens die MIB-2 standaard is die getalle wat ons wil hê:
ifInOctets.1.3.6.1.2.1.2.2.1.16. X
ifOutOctets.1.3.6.1.2.1.2.2.1.10. X
Waar X die nommer is wat aan die koppelvlak toegewys is waaruit u die statistieke wil kry. Vir my is die nommer 3. Een manier om te bevestig dat dit die regte OID vir u is en om te identifiseer watter koppelvlaknommer u moet gebruik, is om 'n instrument soos MIB Browser te gebruik.
Ek het SpeedTest.net gebruik om maksimum snelhede te kry. sodra u die snelheid in Mbps het, moet u dit omskep in oktette met behulp van hierdie formule.
Oktette per sekonde = (Resultaat van spoedtoets in Mbps * 1048576) / 8
Kode Funksie
Die kode stuur 'n SNMP-aanvraag na die router. Die router antwoord dan met 'n nommer, die getal verteenwoordig die aantal oktette wat gestuur of ontvang is. Terselfdertyd teken ons die aantal millisekondes aan wat verloop het sedert die Arduino begin het.
Sodra hierdie proses ten minste twee keer plaasgevind het, kan ons die persentasie gebruik bereken op grond van ons maksimum waardes met behulp van hierdie kode
percentDown = ((float) (byteDown - byteDownLast)/(float) (maxDown * ((millis () - timeLast)/1000)))) * 100;
Die wiskunde verdeel so:
octetsDiff = snmp_result - Vorige_ snmp_result
timeFrame = currentTime - timeLast
MaxPosableOverTime = (timeFrame * Octets_per_second)/1000
Persent = (octetsDiff / MaxPosableOverTime) * 100
Noudat ons die persentasie netwerkverbruik het, hoef ons dit net aan die meter te skryf. Ons doen dit in 2 stappe. Eerstens gebruik ons die updateDownloadGauge -funksie. In hierdie funksie gebruik ons 'kaart' om die persentasie om te skakel na 'n getal wat 'n radiale posisie op die meter verteenwoordig. Dan gee ons die nommer aan die setMeterPosition -funksie om die naald na die nuwe posisie te skuif.
Stap 4: Case Design
Om alles te bevat, het ek 'n omhulsel in fusion360 ontwerp en dit 3D gedruk. Die ontwerp wat ek gemaak het, is relatief eenvoudig. Ek het warm gom gebruik om die komponente aan die binnekant vas te maak, en die meter word vasgehou deur tussen die voorblad en die agterblad vas te knyp. U hoef nie 3D -drukwerk te gebruik om die tas te skep nie. Byvoorbeeld, jy kan 'n boks van hout maak, of jy kan alles terugsit in die oorspronklike omhulsel waarin die meters ingekom het.
My STL -lêers is beskikbaar op thingiverse as u daarna wil kyk, maar dit is onwaarskynlik dat dit vir u sal werk, tensy u presies dieselfde meters kry as wat ek gebruik het.
Saaklêers:
Dankie vir die lees. Laat weet my as u vrae het, en ek sal my bes doen om dit te beantwoord.
Aanbeveel:
Neem wonderlike foto's met 'n iPhone: 9 stappe (met foto's)
Neem wonderlike foto's met 'n iPhone: die meeste van ons dra deesdae 'n slimfoon oral, daarom is dit belangrik om te weet hoe u u slimfoonkamera kan gebruik om fantastiese foto's te neem! Ek het net 'n paar jaar 'n slimfoon gehad, en ek hou daarvan om 'n ordentlike kamera te hê om dinge te dokumenteer wat ek
Howto: Raspberry PI 4 Headless (VNC) installeer met Rpi-imager en foto's: 7 stappe (met foto's)
Howto: Raspberry PI 4 Headless (VNC) installeer met Rpi-imager en foto's: ek is van plan om hierdie Rapsberry PI te gebruik in 'n klomp prettige projekte in my blog. Kyk gerus daarna. Ek wou weer my Raspberry PI gebruik, maar ek het nie 'n sleutelbord of muis op my nuwe plek gehad nie. Dit was 'n rukkie sedert ek 'n Framboos opgestel het
Internetsnelheidsmeter: 9 stappe (met foto's)
Internetsnelheidsmeter: Met die volledige sluiting in Indië, is alles, insluitend posdienste, gesluit. Geen nuwe PCB -projekte, geen nuwe komponente, niks! Om die verveling te oorkom en myself besig te hou, het ek besluit om iets te maak uit die dele wat ek alr
Draadlose afstandsbediening met 2,4 GHz NRF24L01 -module met Arduino - Nrf24l01 4 -kanaals / 6 -kanaals sender -ontvanger voor quadcopter - Rc Helikopter - Rc -vliegtuig met Arduino: 5 stappe (met foto's)
Draadlose afstandsbediening met 2,4 GHz NRF24L01 -module met Arduino | Nrf24l01 4 -kanaals / 6 -kanaals sender -ontvanger voor quadcopter | Rc Helikopter | Rc -vliegtuig met Arduino: om 'n Rc -motor te bestuur | Quadcopter | Drone | RC -vliegtuig | RC -boot, ons het altyd 'n ontvanger en sender nodig, veronderstel dat ons vir RC QUADCOPTER 'n 6 -kanaals sender en ontvanger nodig het en dat die tipe TX en RX te duur is, so ons maak een op ons
Hoe om 'n rekenaar met maklike stappe en foto's uitmekaar te haal: 13 stappe (met foto's)
Hoe om 'n rekenaar uitmekaar te haal met eenvoudige stappe en foto's: dit is 'n instruksie oor hoe om 'n rekenaar uitmekaar te haal. Die meeste basiese komponente is modulêr en kan maklik verwyder word. Dit is egter belangrik dat u daaroor georganiseerd is. Dit sal u verhinder om onderdele te verloor, en ook om die montering weer