Cuprins:

Vitezometru Internet: 9 pași (cu imagini)
Vitezometru Internet: 9 pași (cu imagini)
Anonim
Image
Image
Planul
Planul

Odată cu blocarea completă în India, totul, inclusiv serviciile de poștă electronică, a fost închis. Fără proiecte PCB noi, fără componente noi, nimic! Așadar, pentru a depăși plictiseala și pentru a mă ocupa, am decis să fac ceva din părțile pe care le am deja acasă. Am început să caut din teancul de gunoi electronic și am găsit un multimetru analog vechi, rupt. Am salvat „mișcarea contorului” din ea și am decis să afișez un fel de informații, dar nu știam exact ce. În primul rând, m-am gândit să afișez statistici COVID-19, dar există deja multe proiecte mai bune pe internet. De asemenea, datele sunt actualizate după câteva ore și un indicator al contorului ar fi plictisitor. Am vrut date care se schimbă rapid, se schimbă în fiecare secundă. Am cerut sugestii pe Instagram și unul dintre adepții mei a răspuns cu vitezometrul pe internet. A sunat interesant și a decis să o facă!

În acest instructabil, vă voi arăta cum am preluat date de pe routerul meu WiFi folosind SNMP și am afișat viteza de încărcare și descărcare pe contor.

Să începem

Pasul 1: Planul

Ca întotdeauna înainte de a începe cu proiectul, am făcut câteva cercetări pe internet. Am găsit câteva proiecte legate de acest subiect. Erau de două feluri. Unul care a arătat viteza internetului măsurând „puterea” semnalului WiFi. Nu sunt un tip expert în rețele, dar acest lucru nu a sunat corect. Ceilalți au măsurat latența și au clasificat viteza ca fiind lentă, medie sau rapidă. Latența este întârzierea dintre trimiterea cererii și obținerea răspunsului și, prin urmare, nu poate fi reprezentarea reală a vitezei internetului. O putem numi o viteză de răspuns în rețea! Apoi au existat proiecte legitime care au măsurat timpul necesar descărcării unor date și au calculat viteza internetului pe baza acestui lucru.

Dar tocmai în acest proiect (de Alistair) am aflat despre Simple Network Management Protocol sau SNMP. Folosind SNMP, putem comunica cu routerul WiFi și putem obține datele necesare direct de pe acesta. Ușor, nu? De fapt nu! Deoarece diferitele modele de routere WiFi folosite au setări diferite și au nevoie de multe încercări și erori înainte de a obține în cele din urmă rezultatul. Nu te speria. Voi explica pe scurt orice am aflat despre SNMP și dificultățile cu care m-am confruntat în pașii următori.

Deci, planul este să utilizați NodeMCU pentru a vă conecta la routerul WiFi. Iată pașii pentru a ajunge la rezultatul final:

  • Trimiteți o solicitare către router „solicitând” datele necesare
  • Obțineți răspunsul de la router
  • Analizați răspunsul și analizați datele necesare din acesta
  • Convertiți datele „brute” în informații ușor de înțeles
  • Generați tensiune proporțională cu viteza internetului pentru contor
  • Repeta

Voi folosi un convertor DAC sau digital în analog pentru controlul contorului.

Pasul 2: Lucruri de care vei avea nevoie

Lucruri de care vei avea nevoie
Lucruri de care vei avea nevoie
Lucruri de care vei avea nevoie
Lucruri de care vei avea nevoie
Lucruri de care vei avea nevoie
Lucruri de care vei avea nevoie

1x NodeMCU

1x mișcare analogică a contorului

1x MPU4725 DAC

1x comutator SPDT

1x Potențiometru 10k

1x rezistor

Pasul 3: Calcularea curentului de deflexiune la scară completă

Calculul curentului de deflexiune la scară completă
Calculul curentului de deflexiune la scară completă
Calculul curentului de deflexiune la scară completă
Calculul curentului de deflexiune la scară completă

Notă: Salt la Pasul 7 pentru versiunea reală!

Treceți peste acest pas dacă știți deja curentul de deviere la scară completă pentru contorul dvs. Contorul meu nu a menționat nimic, așa că a trebuit să calculez. Dar mai întâi, să vedem rapid cum funcționează o astfel de mișcare. Se compune dintr-o bobină suspendată într-un câmp magnetic. Când curentul curge prin bobină, conform legii lui Faraday, el experimentează o forță. Bobina este lăsată să se rotească liber în câmpul magnetic, la fel și indicatorul care este atașat bobinei. Mărimea curentului care face ca indicatorul să se miște la „sfârșitul scalei” se numește curent de deviere la scară completă. Acesta este, de asemenea, curentul maxim care trebuie lăsat să curgă prin bobină.

Se întâmplă mult mai multe, dar acest lucru este suficient pentru ceea ce facem. Acum avem mișcarea. Poate fi folosit ca voltmetru prin adăugarea unei rezistențe ridicate în serie cu acesta sau ca ampermetru prin adăugarea unei rezistențe mici în paralel cu acesta. Îl vom folosi ca voltmetru pentru a afișa tensiunea proporțională cu viteza internetului. Deci, trebuie să calculăm rezistența care trebuie adăugată în serie. Pentru aceasta, trebuie mai întâi să calculăm curentul de deviere la scară completă.

  1. Alegeți o valoare de rezistență ridicată (cum ar fi> 100k)
  2. Conectați-l în serie cu mișcarea și aplicați o tensiune variabilă peste ea folosind oala.
  3. Continuați să creșteți tensiunea încet până când indicatorul ajunge la sfârșitul scalei.
  4. Folosind un multimetru, măsurați curentul care trece. Acesta este curentul de deviere la scară completă. (I = 150uA în cazul meu)

Folosim un DAC care are intervalul de tensiune de ieșire de la 0 la VCC (3,3V datorită NodeMCU). Aceasta înseamnă că, atunci când 3,3V este aplicat contorului, acesta ar trebui să indice spre sfârșitul scalei. Acest lucru se poate întâmpla atunci când curentul de deviere la scară completă circulă prin circuit atunci când este aplicat 3,3V. Folosind Legea lui Ohm, 3.3 / (curent de deviere la scară completă) oferă valoarea rezistenței care trebuie introdusă în serie.

Pasul 4: Crearea cererii SNMP GET

Crearea cererii SNMP GET
Crearea cererii SNMP GET
Crearea cererii SNMP GET
Crearea cererii SNMP GET
Crearea cererii SNMP GET
Crearea cererii SNMP GET

Protocolul de gestionare simplă a rețelei (SNMP) este un protocol standard Internet pentru colectarea și organizarea informațiilor despre dispozitivele gestionate din rețelele IP și pentru modificarea acelor informații pentru a schimba comportamentul dispozitivului. Dispozitivele care acceptă de obicei SNMP includ modemuri prin cablu, routere, switch-uri, servere, stații de lucru, imprimante și multe altele. Pentru această versiune, vom comunica cu routerul nostru WiFi folosind SNMP și vom obține datele necesare.

Dar mai întâi, trebuie să trimitem o solicitare cunoscută sub numele de „GET Request” către router menționând detaliile datelor pe care le dorim. Formatul GET Request este afișat în imagine. Cererea constă din diferite părți. Am evidențiat octeții pe care ați putea dori să îi modificați.

Vă rugăm să rețineți că totul este în hexazecimal.

Mesaj SNMP -În cazul meu, lungimea întregului mesaj este de 40 (culoare gri) care atunci când este convertită în hexazecimală este 0x28.

Șir de comunitate SNMP - Valoarea „PUBLIC” este scrisă în hexazecimal ca „70 75 62 6C 69 63” a cărei lungime este 6 (galben).

Tip SNMP PDU - În cazul meu, lungimea mesajului este de 27 (albastru), adică 0x1B.

Tip listă Varbind - În cazul meu, lungimea mesajului este 16 (verde), adică 0x10.

Tip Varbind - În cazul meu, lungimea mesajului este 14 (roz), adică 0x0E.

Identificator de obiect -

Așa cum s-a menționat mai devreme, dispozitivele de rețea compatibile SNMP (de exemplu, routere, switch-uri etc.) păstrează o bază de date cu informații despre starea, disponibilitatea și performanța sistemului ca obiecte, identificate prin OID-uri. Trebuie să identificați OID-urile routerului pentru încărcarea și descărcarea pachetelor. Se poate face folosind un browser MIB gratuit ca acesta.

Introduceți adresa ca 192.168.1.1 și OID ca.1.3.6.1.2.1.2.2.1.10.x (ifInOctets) sau.1.3.6.1.2.1.2.2.1.16.x. (ifOutOctets). Selectați Operați și faceți clic pe Go. Ar trebui să vedeți OID împreună cu valoarea și tipul său.

În cazul meu, lungimea mesajului este 10 (roșu), adică 0x0A. Înlocuiți valoarea cu OID. În acest caz, „2B 06 01 02 01 02 02 01 10 10”

Asta e! Mesajul dvs. de solicitare este gata. Păstrați restul de octeți așa cum sunt.

Activarea SNMP pe router:

  • Conectați-vă la pagina routerului WiFi prin gateway-ul implicit. Tastați 192.168.1.1 în browser și apăsați Enter. În mod implicit, numele de utilizator și parola ar trebui să fie „administrator”.
  • Folosesc un router TP-LINK (TD-W8961N). Pentru acest router, trebuie să accesați Gestionare acces> SNMP și să selectați „Activat”.
  • Obțineți comunitatea: publică
  • Capcana gazdă: 0.0.0.0

Pasul 5: Înțelegerea răspunsului GET

Înțelegerea răspunsului GET
Înțelegerea răspunsului GET

Puteți sări peste acest pas, dar este bine să știți dacă trebuie să rezolvați problemele.

După ce încărcați codul și îl rulați, puteți arunca o privire asupra răspunsului prin intermediul monitorului Serial. Ar trebui să arate așa cum se arată în imagine. Trebuie să căutați câțiva octeți pe care i-am evidențiat.

Începând de la 0, Al 15-lea octet spune că tipul PDU - 0xA2 înseamnă că este un GetResponse.

48 octet spune tipul de date - 0x41 înseamnă că tipul de date este Contor.

Al 49-lea octet spune lungimea datelor - 0x04 înseamnă că datele au o lungime de 4 octeți.

Octetul 50, 51, 52, 53 conține datele.

Pasul 6: Convertor digital-analog (DAC)

Convertor digital-analog (DAC)
Convertor digital-analog (DAC)

Microcontrolerele sunt dispozitive digitale care nu înțeleg direct tensiunile analogice. Folosesc un contor analogic care are nevoie de o tensiune variabilă ca intrare. Dar microcontrolerul poate scoate doar HIGH (3,3V în cazul NodeMCU) și LOW (0V). Acum ați putea spune de ce nu folosiți doar PWM. Nu va funcționa, deoarece contorul va afișa doar valoarea medie.

Folosesc MCP4725 DAC pentru a obține tensiune variabilă. Este un DAC pe 12 biți, adică, în termeni simpli, va împărți 0 la 3,3V în 4096 (= 2 ^ 12) părți. Rezoluția va fi de 3,3 / 4096 = 0,8056mV. Aceasta înseamnă că 0 corespunde 0V, 1 corespunde 0,8056mV, 2 corespunde 1,6112mV, ….., 4095 corespunde 3,3V.

Viteza internetului va fi „mapată” de la „0 la 7 mbps” la „0 la 4095” și apoi această valoare va fi dată DAC pentru a emite o tensiune care va fi proporțională cu viteza internetului.

Pasul 7: Adunarea

Adunarea
Adunarea
Adunarea
Adunarea
Adunarea
Adunarea
Adunarea
Adunarea

Conexiunile sunt foarte simple. Schema a fost atașată aici.

Am proiectat și tipărit cântarul. Cea superioară este pentru viteza de descărcare, iar cea inferioară este pentru viteza de încărcare. Am lipit noua scară peste cea veche.

Am scos toate lucrurile vechi din multimetru și am înghesuit totul din el. A fost o potrivire strânsă. A trebuit să fac o gaură în partea din față pentru a atașa comutatorul care este folosit pentru a selecta între viteza de încărcare și descărcare.

Pasul 8: Timp pentru codificare

Timp pentru codificare
Timp pentru codificare
Timp pentru codificare
Timp pentru codificare
Timp pentru codificare
Timp pentru codificare

Codul a fost atașat aici. Descărcați-l și deschideți-l în Arduino IDE. Instalați biblioteca MCP4725 de la Adafruit.

Înainte de a încărca:

  1. Introduceți SSID-ul WiFi și parola
  2. Introduceți viteza maximă de încărcare și descărcare menționată pe scară.
  3. Efectuați modificările necesare în matricea de solicitări pentru descărcare, precum și încărcați pachete.
  4. Decomentați linia 165 pentru a vizualiza răspunsul pe monitorul serial.

Hit upload!

Pasul 9: Bucurați-vă

Porniți-l și bucurați-vă de privirea acului care dansează în timp ce navigați pe internet!

Vă mulțumesc că ați rămas până la capăt. Sper că tuturor vă place acest proiect și ați învățat ceva nou astăzi. Anunță-mă dacă îți faci una pentru tine. Abonați-vă la canalul meu YouTube pentru mai multe astfel de proiecte.

Recomandat: