Sadržaj:

Mjerač brzine interneta: 4 koraka (sa slikama)
Mjerač brzine interneta: 4 koraka (sa slikama)

Video: Mjerač brzine interneta: 4 koraka (sa slikama)

Video: Mjerač brzine interneta: 4 koraka (sa slikama)
Video: Moja omiljena veličina Pe***a 2024, Novembar
Anonim
Image
Image
Internetski mjerač brzine
Internetski mjerač brzine
Internetski mjerač brzine
Internetski mjerač brzine

Pregled

Ovaj "internetski mjerač brzine" omogućit će vam nadzor u stvarnom vremenu nad korištenjem vaše mreže. Ove su informacije dostupne na web sučelju većine kućnih usmjerivača. Međutim, da biste mu pristupili, morate zaustaviti trenutni zadatak da biste ga potražili.

Htio sam pregledati ove podatke bez prekidanja trenutnog zadatka, prikazati ih u formatu koji je razumljiv samo kratkim pogledom i dobiti informacije na način koji će raditi sa što je moguće više usmjerivača, kako bi drugi mogli potencijalno ga koristiti i.

Kako radi stvari

Odlučio sam se za SNMP (Simple Network Management Protocol) kao način za dobijanje informacija s usmjerivača. SNMP se široko koristi u mrežnoj opremi i ako ga vaš uređaj ne podržava prema zadanim postavkama, DDWRT (otvoreni izvorni softver usmjerivača) može se koristiti za implementaciju SNMP -a.

Za prikaz informacija na način koji je lako razumljiv upotrijebio sam mjerač iz automobila. Automobilski mjerači dizajnirani su da vam daju informacije bez ometanja ili zbunjivanja, tako da vozač može držati pogled na cesti. Takođe, malo sam legao.

Budući da bi ovo bilo na mom stolu, odlučio sam da napravim i pozadinsko svjetlo RGB jer bi svi računarski dodaci trebali biti RGB. Tačno?

Izazovi

Mjerači koje sam koristio koriste Air-Core aktuator. Nikada prije ovog projekta nisam čuo za njih.

Iz Wikipedije: Mjerač jezgre zraka sastoji se od dva nezavisna, okomita namotaja koji okružuju šuplju komoru. Vratilo igle strši u komoru, gdje je na vratilo pričvršćen stalni magnet. Kada struja teče kroz okomite zavojnice, njihova se magnetska polja nadovezuju, a magnet se može slobodno poravnati s kombiniranim poljima.

Nisam uspio pronaći biblioteku za Arduino koja podržava SNMP u konfiguraciji upravitelja. SNMP ima dva glavna oblika, agenta i menadžera. Agenti odgovaraju na zahtjev, a menadžeri šalju zahtjev agentima. Uspio sam pokrenuti funkcionalnost menadžera izmjenom Arduino_SNMP biblioteke koju je kreirao 0neblock. Nikada nisam programirao u C ++ osim što LED -e trepere na Arduinu, pa ako postoje problemi sa SNMP bibliotekom, obavijestite me i pokušat ću ih popraviti, ali zasad funkcionira.

Osim toga, SNMP nije dizajniran za gledanje u stvarnom vremenu. Predviđena upotreba je za praćenje statistike i otkrivanje prekida. Zbog toga se podaci na usmjerivaču ažuriraju otprilike svakih 5 sekundi (vaš uređaj može varirati). To je uzrok kašnjenja između broja na testu brzine i pomicanja igle.

Korak 1: Alati i materijali

Alati i materijali
Alati i materijali
Alati i materijali
Alati i materijali
Alati i materijali
Alati i materijali
Alati i materijali
Alati i materijali
Dizajn kola
Dizajn kola

Trebat će nam 3 puna H-mosta. Modeli koje sam koristio su Dual TB6612FNG i Dual L298N.

Svaki pokretač s Air-Core-om zahtijeva 2 puna H-mosta jer se zavojnice moraju kontrolirati nezavisno.

Jedan od mjerača koje koristim ima jednu zavojnicu kratko spojenu na masu s diodom i otpornikom. Nisam siguran u nauku koja stoji iza toga, ali to mu omogućava da se okreće za oko 90 stepeni sa samo jednom zavojnicom.

Koristit ću regulator od 12v do 5v koji je dio ploče L298N koju sam odabrao za napajanje ESP32.

Sva LED kola su opcionalna, kao i JST konektori. Možete jednostavno spajati žice direktno na ESP32 i upravljački program motora.

Korak 3: Dizajn koda

Podešavanje koda

Morat ćemo postaviti Arduino da bi mogao koristiti ESP32 ploču. Ovdje se nalazi dobar vodič koji će vas provesti kroz postavljanje ESP32 Arduino.

Trebat će vam i biblioteka Arduino_SNMP koja se nalazi ovdje.

Da biste konfigurirali kôd, morat ćete prikupiti neke podatke.

  1. IP usmjerivača
  2. Maksimalna brzina otpremanja
  3. Maksimalna brzina preuzimanja
  4. Vaše WiFi ime i lozinka
  5. OID koji sadrži oktete za "ulaz" i "izlaz" na WAN sučelju vaših usmjerivača

Postoje standardni OID -ovi (identifikatori objekata) za informacije koje želimo. Prema standardu MIB-2, brojevi koje želimo su:

ifInOctets.1.3.6.1.2.1.2.2.1.16. X

ifOutOctets.1.3.6.1.2.1.2.2.1.10. X

Gdje je X broj dodijeljen sučelju s kojeg želite dobiti statistiku. Za mene je taj broj 3. Jedan način da potvrdite da je ovo ispravan OID za vas i da odredite koji broj sučelja trebate koristiti je korištenje alata poput MIB Browser.

Da bih postigao maksimalne brzine, koristio sam SpeedTest.net. nakon što imate svoje brzine u Mbps, morat ćete ih pretvoriti u oktete koristeći ovu formulu.

Okteti u sekundi = (Rezultat testa brzine u Mbps * 1048576) / 8

Funkcija koda

Kod šalje usmjerivaču SNMP get-request. Ruter zatim odgovara brojem, broj predstavlja broj okteta koji su poslani ili primljeni. U isto vrijeme bilježimo broj milisekundi koje su prošle od pokretanja Arduina.

Kada se ovaj proces dogodi najmanje dva puta, pomoću ovog koda možemo izračunati postotak korištenja na osnovu naših maksimalnih vrijednosti

percentDown = ((float) (byteDown - byteDownLast)/(float) (maxDown * ((millis () - timeLast)/1000))) * 100;

Matematika se pokvari ovako:

octetsDiff = snmp_result - Prethodni_ snmp_result

timeFrame = currentTime - timeLast

MaxPosableOverTime = (timeFrame * Octets_per_second)/1000

Postotak = (octetsDiff / MaxPosableOverTime) * 100

Sada kada imamo postotak korištenja mreže, samo ga trebamo zapisati u mjerač. To radimo u 2 koraka. Prvo koristimo funkciju updateDownloadGauge. U ovoj funkciji koristimo “map” za pretvaranje postotka u broj koji predstavlja radijansku poziciju na mjeraču. Zatim dajemo taj broj funkciji setMeterPosition za pomicanje igle na novi položaj.

Korak 4: Dizajn kućišta

Dizajn kućišta
Dizajn kućišta
Dizajn kućišta
Dizajn kućišta
Dizajn kućišta
Dizajn kućišta

Da bih sadržao sve, dizajnirao sam kućište u fusion360 i 3D ga odštampao. Dizajn koji sam napravio je relativno jednostavan. Upotrijebio sam vruće ljepilo za pričvršćivanje komponenti iznutra, a mjerač se drži na mjestu tako da se stisne između prednjeg i stražnjeg poklopca. Za izradu kućišta ne morate koristiti 3D štampanje. Na primjer, možete napraviti kovčeg od drveta ili možete sve vratiti u originalno kućište u koje su ušli mjerači.

Moji STL fajlovi su dostupni na thingiverse -u ako ih želite pogledati, ali malo je vjerojatno da će vam uspjeti ako ne nabavite potpuno iste mjerače koje sam koristio.

Dokumenti slučaja:

Hvala na čitanju. Javite mi ako imate pitanja i potrudit ću se odgovoriti.

Preporučuje se: