Sadržaj:
- Korak 1: Plan
- Korak 2: Stvari koje će vam trebati
- Korak 3: Izračunavanje pune skretanja struje
- Korak 4: Kreiranje 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: Brzinomjer na internetu: 9 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
S potpunom blokadom 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 pretraživati s hrpe elektroničkog smeća i pronašao stari, pokvareni analogni multimetar. Spasio sam 'kretanje brojila' i odlučio da prikažem neku vrstu informacija, ali nisam znao tačno šta. Prvo sam razmišljao o prikazivanju statistike o COVID-19, ali na internetu već postoji mnogo boljih projekata. Također, podaci se ažuriraju nakon nekoliko sati i nepomičan pokazivač mjerača bi bio 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 Internet brzinomjerom. 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 učitavanja i preuzimanja na mjeraču.
Hajde da počnemo
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. Kašnjenje je vremensko kašnjenje između slanja zahtjeva i dobijanja odgovora, pa ne može biti stvarni prikaz brzine interneta. Ipak, to možemo nazvati brzinom mrežnog odziva! Zatim su postojali legalni projekti koji su mjerili vrijeme potrebno za preuzimanje nekih podataka i na osnovu toga izračunavali brzinu interneta.
Ali upravo u ovom projektu (Alistair) sam naučio 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čita podešavanja i potrebno im je mnogo pokušaja i grešaka prije nego što konačno dobijete izlaz. Ne plaši se. Ukratko ću objasniti sve što sam naučio o SNMP -u i poteškoćama sa kojima sam se susreo u narednim koracima.
Stoga je plan koristiti NodeMCU za povezivanje s WiFi usmjerivačem. Ovo su koraci do konačnog rezultata:
- Pošaljite zahtjev usmjerivaču 'tražeći' potrebne podatke
- Dobijte odgovor od usmjerivača
- Analizirajte odgovor i raščlanite potrebne podatke iz njega
- Pretvorite „sirove“podatke u razumljive informacije
- Generirajte napon proporcionalan brzini interneta za brojilo
- Ponovi
Za upravljanje brojilom koristit ću DAC ili digitalno -analogni pretvarač.
Korak 2: Stvari koje će vam trebati
1x NodeMCU
1x Pokret analognog metra
1x MPU4725 DAC
1x SPDT prekidač
1x 10k potenciometar
1x otpornik
Korak 3: Izračunavanje pune skretanja struje
Napomena: Pređite na korak 7 za stvarnu verziju!
Preskočite ovaj korak ako već znate punu skalu skretanja za svoje brojilo. Moj mjerač to nije spomenuo pa sam morao izračunati. Ali prvo, hajde da brzo vidimo kako takav pokret funkcionira. Sastoji se od zavojnice suspendirane u magnetskom polju. Kada struja teče kroz zavojnicu, prema Faradayevom zakonu, ona doživljava silu. Zavojnici je dozvoljeno da se slobodno okreće 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 razmjera. Ovo je ujedno i najveća struja kojoj se mora dopustiti da teče kroz zavojnicu.
Još se mnogo toga dešava, 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 serijski. Za to prvo moramo izračunati struju skretanja u punom opsegu.
- Odaberite visoku vrijednost otpora (poput> 100k)
- Spojite ga serijski s pokretom i primijenite promjenjivi napon na njega pomoću lonca.
- 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 kada se primijeni 3,3 V. Koristeći Ohmov zakon, 3.3/(struja skretanja u punoj skali) daje vrijednost otpora koji se unosi u seriju.
Korak 4: Kreiranje SNMP GET zahtjeva
Jednostavni protokol za upravljanje mrežom (SNMP) je protokol standardnog Interneta za prikupljanje i organiziranje informacija o upravljanim uređajima na IP mrežama i za izmjenu tih informacija 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 još mnogo toga. Za ovu verziju komunicirat ćemo s našim WiFi usmjerivačem koristeći SNMP i dobiti potrebne podatke.
Ali prvo moramo usmjerivaču poslati zahtjev poznat kao 'GET zahtjev' u kojem se spominju detalji 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 heksadecimalnom obliku.
SNMP poruka -U mom slučaju, dužina cele 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 dužina 6 (žuta).
SNMP PDU Type - U mom slučaju, dužina poruke je 27 (plava), odnosno 0x1B.
Vrsta Varbind liste - U mom slučaju, dužina poruke je 16 (zelena), odnosno 0x10.
Varbind Type - U mom slučaju, dužina poruke je 14 (ružičasta), odnosno 0x0E.
Identifikator objekta -
Kao što je ranije spomenuto, mrežni uređaji sa omogućenim SNMP-om (npr. Usmjerivači, sklopke itd.) Vode bazu podataka o statusu sistema, dostupnosti i podacima o performansama kao objekte, identificirane OID-ovima. Morate identificirati OID -ove vašeg usmjerivača za otpremanje i preuzimanje paketa. 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, dužina poruke je 10 (crvena), odnosno 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 sa zahtjevom je spremna. Ostatak bajtova ostavite onakvima kakvi jesu.
Uključivanje SNMP -a na usmjerivaču:
- Prijavite se na stranicu svog WiFi usmjerivača putem zadanog pristupnika. Upišite u preglednik 192.168.1.1 i pritisnite enter. Korisničko ime i lozinka prema zadanim postavkama trebaju biti 'admin'.
- Koristim ruter 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. Trebalo bi da izgleda kao što je prikazano na slici. Morate potražiti nekoliko bajtova koje sam istaknuo.
Počevši od 0, 15. bajt govori PDU Type - 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 dužini podataka - 0x04 znači da su podaci dugački 4 bajta.
Bajtovi 50, 51, 52, 53 sadrže podatke.
Korak 6: Digitalno -analogni pretvarač (DAC)
Mikrokontroleri su digitalni uređaji koji ne razumiju izravno 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 ova vrijednost biti data DAC -u za izlaz napona koji će biti proporcionalan brzini interneta.
Korak 7: Skupština
Veze su vrlo jednostavne. Shema je priložena ovdje.
Dizajnirao sam i odštampao 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. Bilo je usko. Morao sam izbušiti rupu na prednjoj strani za pričvršćivanje prekidača koji se koristi za odabir između brzine učitavanja i preuzimanja.
Korak 8: Vrijeme za kodiranje
Kôd je priložen ovde. Preuzmite i otvorite ga u Arduino IDE. Instalirajte biblioteku MCP4725 s Adafruit -a.
Prije postavljanja:
- Unesite WiFi SSID i lozinku
- Unesite maksimalnu brzinu otpremanja i preuzimanja koja je navedena na ljestvici.
- Napravite potrebne promjene u nizu zahtjeva za preuzimanje, kao i otpremite 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 sami. Pretplatite se na moj YouTube kanal za još ovakvih projekata.
Preporučuje se:
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 tač 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 vodiču koristit ćemo Arduino i Visuino za prikaz trenutne brzine bicikla s GPS -a na ekranu 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 za vrijeme vožnje (nakon nekog vremena se ponovo nastavi). Obično to nije veliki problem jer ako znate voziti automobil
Brzinomjer za bicikl: 3 koraka
Brzinomjer za bicikl: Zdravo prijatelji … U ovom uputstvu ću vam objasniti kako napraviti brzinomjer za bicikl, u stvari imam stari bicikl za vježbanje čiji je mehanički brzinomjer davno pokvaren i odlučio sam ga zamijeniti sa elektronski, ali
Brzinomjer Instagramu se sviđa Arduino & ESP8266: 6 koraka
Brzinomjer Instagramu se sviđa Arduino i ESP8266: Bilo bi zabavno vidjeti kako se vaši postovi na Instagramu izvode na djelu! Napravit ćemo mjerač koji prikazuje vašu brzinu sviđanja po minuti. U ovom ćete članku naučiti kako dobiti podatke s web stranica pomoću ESP8266 i poslati ih na Arduino radi analize i pregledavanja