Sadržaj:

Internet brzinomjer: 9 koraka (sa slikama)
Internet brzinomjer: 9 koraka (sa slikama)

Video: Internet brzinomjer: 9 koraka (sa slikama)

Video: Internet brzinomjer: 9 koraka (sa slikama)
Video: Kako postaviti brzinomjer na bicikl (Cateye Velo 9) 2024, Studeni
Anonim
Image
Image
Plan
Plan

S potpunom blokadom koja se događa u Indiji, sve uključujući poštanske usluge je zatvoreno. Nema novih projekata PCB -a, nema novih komponenti, ništa! Stoga sam, kako bih prevladao dosadu i bio zauzet, odlučio napraviti nešto od dijelova koje već imam kod kuće. Počeo sam tražiti iz hrpe smeća elektronike i pronašao stari, pokvareni analogni multimetar. Spasio sam 'kretanje brojila' iz njega i odlučio prikazati neku vrstu podataka, ali nisam točno znao što. Prvo sam mislio prikazati statistiku o COVID-19, ali na internetu već postoji mnogo boljih projekata. Također, podaci se ažuriraju nakon nekoliko sati i nepomični pokazivač mjerača bio bi dosadan. Htio sam podatke koji se brzo mijenjaju, mijenjaju se svake sekunde. Zatražio sam prijedloge na Instagramu, a jedan od mojih sljedbenika odgovorio je brzinom interneta. Zvučalo je zanimljivo i odlučio sam uspjeti!

U ovom Instructable -u pokazat ću vam kako sam uzeo podatke sa svog WiFi usmjerivača koristeći SNMP i prikazao brzine prijenosa i preuzimanja na mjeraču.

Započnimo

Korak 1: Plan

Kao i uvijek prije početka projekta, malo sam istraživao na internetu. Pronašao sam nekoliko projekata vezanih za ovu temu. Bile su dvije vrste. Ona koja je pokazala brzinu interneta mjerenjem 'snage' WiFi signala. Nisam stručnjak za umrežavanje, ali ovo nije zvučalo kako treba. Ostali su mjerili latenciju i kategorizirali brzinu kao sporu, srednju ili brzu. Latencija je vremenski razmak između slanja zahtjeva i dobivanja odgovora, pa ne može biti stvarni prikaz brzine interneta. Ipak, to možemo nazvati brzinom mrežnog odgovora! Zatim su postojali legalni projekti koji su mjerili vrijeme potrebno za preuzimanje nekih podataka i na temelju toga izračunali brzinu interneta.

No, upravo u ovom projektu (Alistair) naučio sam o jednostavnom protokolu za upravljanje mrežom ili SNMP -u. Pomoću SNMP -a možemo komunicirati s WiFi usmjerivačem i izravno dobivati potrebne podatke. Lako, zar ne? Zapravo ne! Budući da različiti modeli WiFi usmjerivača koji koriste imaju različite postavke i potrebno im je mnogo pokušaja i pogrešaka prije nego što konačno dobijete izlaz. Nemojte se bojati. Ukratko ću objasniti sve što sam naučio o SNMP -u i poteškoćama s kojima sam se suočio u nadolazećim koracima.

Dakle, plan je koristiti NodeMCU za povezivanje s WiFi usmjerivačem. Ovo su koraci do konačnog rezultata:

  • Pošaljite zahtjev usmjerivaču koji 'traži' potrebne podatke
  • Dobijte odgovor od usmjerivača
  • Analizirajte odgovor i raščlanite potrebne podatke iz njega
  • Pretvorite 'sirove' podatke u razumljive podatke
  • Generirajte napon proporcionalan brzini interneta za mjerač
  • Ponoviti

Za upravljanje brojilom koristit ću DAC ili digitalno -analogni pretvarač.

Korak 2: Stvari koje će vam trebati

Stvari koje će vam trebati
Stvari koje će vam trebati
Stvari koje će vam trebati
Stvari koje će vam trebati
Stvari koje će vam trebati
Stvari koje će vam trebati

1x NodeMCU

1x Pokret analognog mjerača

1x MPU4725 DAC

1x SPDT prekidač

1x 10k potenciometar

1x otpornik

Korak 3: Izračun pune skrenute struje

Proračun skrenuće struje u punom opsegu
Proračun skrenuće struje u punom opsegu
Proračun skrenuće struje u punom opsegu
Proračun skrenuće struje u punom opsegu

Napomena: Prijeđite na korak 7 radi stvarne izrade!

Preskočite ovaj korak ako već znate punu struju skretanja za svoje brojilo. Moj mjerač to nije spomenuo pa sam morao izračunati. No prvo, da vidimo brzo kako takav pokret funkcionira. Sastoji se od zavojnice suspendirane u magnetskom polju. Kad struja teče kroz zavojnicu, prema Faradayevom zakonu, ona doživljava silu. Zavojnici je dopušteno slobodno okretanje u magnetskom polju, a isto tako i pokazivač koji je pričvršćen na zavojnicu. Veličina struje zbog koje se pokazivač pomiče na 'kraju ljestvice' naziva se struja skretanja punog mjerila. Ovo je ujedno i najveća struja kojoj se mora dopustiti da teče kroz zavojnicu.

Još se mnogo toga događa, ali ovo je dovoljno za ono što radimo. Sada imamo pokret. Može se koristiti kao voltmetar dodavanjem velikog otpora uzastopno s njim ili kao ampermetar dodavanjem malog otpora paralelno s njim. Koristit ćemo ga kao voltmetar za prikaz napona proporcionalnog brzini interneta. Dakle, moramo izračunati otpor koji se dodaje u nizu. Za to prvo moramo izračunati struju skretanja u punom opsegu.

  1. Odaberite visoku vrijednost otpora (poput> 100k)
  2. Spojite ga serijski s pokretom i pomoću lonca primijenite promjenjiv napon na njega.
  3. Polako povećavajte napon sve dok pokazivač ne dođe do kraja ljestvice.
  4. Pomoću multimetra izmjerite struju koja prolazi. Ovo je struja skretanja u punom opsegu. (I = 150uA u mom slučaju)

Koristimo DAC koji ima raspon izlaznog napona od 0 do VCC (3,3 V zbog NodeMCU -a). To znači da kada se na mjerač primijeni 3,3 V, on bi trebao biti usmjeren na kraj ljestvice. To se može dogoditi kada struja skretanja u punom opsegu teče kroz krug pri primjeni 3,3 V. Koristeći Ohmov zakon, 3.3/(struja skretanja u punom opsegu) daje vrijednost otpora koji se unosi u seriju.

Korak 4: Stvaranje SNMP GET zahtjeva

Stvaranje SNMP GET zahtjeva
Stvaranje SNMP GET zahtjeva
Stvaranje SNMP GET zahtjeva
Stvaranje SNMP GET zahtjeva
Stvaranje SNMP GET zahtjeva
Stvaranje SNMP GET zahtjeva

Jednostavni protokol za upravljanje mrežom (SNMP) protokol je internetskog standarda za prikupljanje i organiziranje informacija o upravljanim uređajima na IP mrežama i za mijenjanje tih podataka radi promjene ponašanja uređaja. Uređaji koji obično podržavaju SNMP uključuju kabelske modeme, usmjerivače, sklopke, poslužitelje, radne stanice, pisače i drugo. Za ovu ćemo verziju komunicirati s našim WiFi usmjerivačem koristeći SNMP i dobiti potrebne podatke.

No, prvo moramo usmjerivaču poslati zahtjev poznat kao 'GET zahtjev' u kojem se spominju pojedinosti podataka koje želimo. GET Format zahtjeva prikazan je na slici. Zahtjev se sastoji od različitih dijelova. Istaknuo sam bajtove koje biste možda htjeli promijeniti.

Imajte na umu da je sve u šesnaestercu.

SNMP poruka -U mom slučaju, duljina cijele poruke je 40 (siva boja) koja je kada se pretvori u heksadecimalnu 0x28.

SNMP Community String - Vrijednost 'PUBLIC' napisana je heksadecimalno kao '70 75 62 6C 69 63 'čija je duljina 6 (žuta).

SNMP PDU Type - U mom slučaju, duljina poruke je 27 (plava), tj. 0x1B.

Vrsta popisa Varbind - U mom slučaju, duljina poruke je 16 (zelena), tj. 0x10.

Varbind Type - U mom slučaju duljina poruke je 14 (ružičasta), tj. 0x0E.

Identifikator objekta -

Kao što je ranije spomenuto, mrežni uređaji s omogućenim SNMP-om (npr. Usmjerivači, sklopke itd.) Vode bazu podataka o statusu sustava, dostupnosti i podacima o performansama kao objekte, identificirane OID-ovima. Morate identificirati OID -ove vašeg usmjerivača za pakete za prijenos i preuzimanje. To se može učiniti pomoću besplatnog MIB preglednika poput ovog.

Unesite adresu kao 192.168.1.1, a OID kao.1.3.6.1.2.1.2.2.1.10.x (ifInOctets) ili.1.3.6.1.2.1.2.2.1.16.x. (ifOutOctets). Odaberite Preuzmi operaciju i kliknite Idi. Trebali biste vidjeti OID zajedno s njegovom vrijednošću i vrstom.

U mom slučaju, duljina poruke je 10 (crvena) tj. 0x0A. Zamijenite vrijednost OID -om. U ovom slučaju, '2B 06 01 02 01 02 02 01 10 10'

To je to! Vaša poruka zahtjeva je spremna. Ostatak bajtova neka ostane.

Uključivanje SNMP -a na usmjerivaču:

  • Prijavite se na stranicu svog WiFi usmjerivača putem zadanog pristupnika. U preglednik upišite 192.168.1.1 i pritisnite enter. Korisničko ime i lozinka prema zadanim postavkama trebaju biti "admin".
  • Koristim usmjerivač TP-LINK (TD-W8961N). Za ovaj usmjerivač morate otići na Upravljanje pristupom> SNMP i odabrati 'Aktivirano'.
  • GET zajednica: javna
  • Trap host: 0.0.0.0

Korak 5: Razumijevanje GET odgovora

Razumijevanje GET odgovora
Razumijevanje GET odgovora

Ovaj korak možete preskočiti, ali dobro je znati trebate li riješiti neke probleme.

Nakon što učitate kôd i pokrenete ga, možete pogledati odgovor putem Serijskog monitora. Trebao bi izgledati kao što je prikazano na slici. Trebate potražiti nekoliko bajtova koje sam istaknuo.

Počevši od 0, 15. bajt govori PDU vrsti - 0xA2 znači da je to GetResponse.

48. bajt govori o tipu podataka - 0x41 znači da je tip podataka Counter.

49. bajt govori o duljini podataka - 0x04 znači da su podaci dugački 4 bajta.

Bajti 50, 51, 52, 53 sadrže podatke.

Korak 6: Digitalno -analogni pretvarač (DAC)

Digitalno -analogni pretvarač (DAC)
Digitalno -analogni pretvarač (DAC)

Mikrokontroleri su digitalni uređaji koji izravno ne razumiju analogne napone. Koristim analogni mjerač kojem je za ulaz potreban promjenjivi napon. Ali mikrokontroler može samo izlaziti VISOKO (3,3 V u slučaju NodeMCU) i NISKO (0 V). Sada biste mogli reći zašto jednostavno ne koristite PWM. Neće raditi jer će mjerač prikazivati samo prosječnu vrijednost.

Koristim MCP4725 DAC za dobivanje promjenjivog napona. To je 12-bitni DAC, tj. Jednostavno rečeno, podijelit će 0 do 3,3 V na 4096 (= 2^12) dijelova. Rezolucija će biti 3.3/4096 = 0.8056mV. To znači da 0 odgovara 0V, 1 odgovara 0.8056mV, 2 odgovara 1.6112mV,….., 4095 odgovara 3.3V.

Brzina interneta bit će "preslikana" s "0 do 7 mbps" na "0 do 4095", a zatim će se ta vrijednost dati DAC -u za izlaz napona koji će biti proporcionalan brzini interneta.

Korak 7: Skupština

Skupština
Skupština
Skupština
Skupština
Skupština
Skupština
Skupština
Skupština

Veze su vrlo jednostavne. Shema je ovdje priložena.

Dizajnirao sam i ispisao vagu. Gornji služi za brzinu preuzimanja, a donji za brzinu učitavanja. Zalijepio sam novu vagu preko stare.

Uklonio sam sve stare stvari s multimetra i ugurao sve u njega. Bio je to uski spoj. Morao sam izbušiti rupu sprijeda za pričvršćivanje prekidača koji se koristi za odabir između brzine prijenosa i preuzimanja.

Korak 8: Vrijeme za kodiranje

Vrijeme za kodiranje
Vrijeme za kodiranje
Vrijeme za kodiranje
Vrijeme za kodiranje
Vrijeme za kodiranje
Vrijeme za kodiranje

Kôd je priložen ovdje. Preuzmite i otvorite ga u Arduino IDE -u. Instalirajte biblioteku MCP4725 s tvrtke Adafruit.

Prije učitavanja:

  1. Unesite WiFi SSID i lozinku
  2. Unesite najveću brzinu prijenosa i preuzimanja koja je navedena na ljestvici.
  3. Napravite potrebne promjene u nizu zahtjeva za preuzimanje, kao i prenesite pakete.
  4. Uklonite komentar 165 za pregled odgovora na serijskom monitoru.

Hit upload!

Korak 9: Uživajte

Uključite ga i uživajte gledajući iglu kako pleše dok surfate internetom!

Hvala vam što ste se držali kraja. Nadam se da vam se svi sviđa ovaj projekt i da ste danas naučili nešto novo. Javite mi ako napravite jedan za sebe. Pretplatite se na moj YouTube kanal za više takvih projekata.

Preporučeni: