Sadržaj:
- Korak 1: Plan
- Korak 2: Stvari koje će vam trebati
- Korak 3: Izračun pune skrenute struje
- Korak 4: Stvaranje SNMP GET zahtjeva
- Korak 5: Razumijevanje GET odgovora
- Korak 6: Digitalno -analogni pretvarač (DAC)
- Korak 7: Skupština
- Korak 8: Vrijeme za kodiranje
- Korak 9: Uživajte
Video: Internet brzinomjer: 9 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
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
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
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.
- Odaberite visoku vrijednost otpora (poput> 100k)
- Spojite ga serijski s pokretom i pomoću lonca primijenite promjenjiv napon na njega.
- Polako povećavajte napon sve dok pokazivač ne dođe do kraja ljestvice.
- 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
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
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)
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
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
Kôd je priložen ovdje. Preuzmite i otvorite ga u Arduino IDE -u. Instalirajte biblioteku MCP4725 s tvrtke Adafruit.
Prije učitavanja:
- Unesite WiFi SSID i lozinku
- Unesite najveću brzinu prijenosa i preuzimanja koja je navedena na ljestvici.
- Napravite potrebne promjene u nizu zahtjeva za preuzimanje, kao i prenesite pakete.
- 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:
Brzinomjer kotača za hrčak: 11 koraka (sa slikama)
Brzinomjer na kotačima hrčaka: Prije otprilike tri godine, nećaci su dobili svog prvog ljubimca, hrčka po imenu Nugget. Znatiželja o Nuggetovoj rutini vježbi započela je projekt koji je dugo trajao Nugget (RIP). Ovaj Instructable opisuje funkcionalni optički držač kotača za vježbanje
Arduino biciklistički brzinomjer pomoću GPS -a: 8 koraka
Arduino biciklistički brzinomjer pomoću GPS -a: U ovom ćemo vodiču koristiti Arduino i Visuino za prikaz trenutne brzine bicikla s GPS -a na zaslonu ST7735. Pogledajte demonstracijski video
GPS brzinomjer: 4 koraka (sa slikama)
GPS brzinomjer: Moj službeni automobil koji inače vozim obično ima "mali" problemi s vremena na vrijeme, brzinomjer padne na 0 Km/h tijekom vožnje (nakon nekog vremena se ponovno nastavi). Obično to nije veliki problem jer ako znate voziti automobil
Radni brzinomjer RC automobila: 4 koraka (sa slikama)
Radni brzinomjer RC automobila: Ovo je kratki projekt koji sam stvorio kao dio veće RC konstrukcije lakog Land Rovera. Odlučio sam da mi se sviđa imati radni brzinomjer na nadzornoj ploči, ali znao sam da ga servo neće prerezati. Postojala je samo jedna razumna opcija: d
Ciklički brzinomjer za DIY: 6 koraka (sa slikama)
DIY Cycle Speedometer: Ovaj projekt mi je pao na pamet dok sam radila svoj MEM (Mechanical Engineering Measurement) projekt, predmet u mojoj B.tech. Ideja je izmjeriti kutnu brzinu kotača mog bicikla. Znajući tako promjer i matematičku legendu svih vremena