Cuprins:

Indicator de viteză Internet: 4 pași (cu imagini)
Indicator de viteză Internet: 4 pași (cu imagini)

Video: Indicator de viteză Internet: 4 pași (cu imagini)

Video: Indicator de viteză Internet: 4 pași (cu imagini)
Video: Curs de legislație rutieră - Cap 4 Part 2 - Intersecția cu sens giratoriu 2024, Iulie
Anonim
Image
Image
Indicator de viteză Internet
Indicator de viteză Internet
Indicator de viteză Internet
Indicator de viteză Internet

Prezentare generală

Acest „Indicator de viteză Internet” vă va oferi o supraveghere aproape în timp real a utilizării rețelei. Aceste informații sunt disponibile pe interfața web a majorității routerelor de acasă. Cu toate acestea, accesarea acestuia necesită oprirea sarcinii curente pentru a continua să o căutați.

Am vrut să vizualizez aceste informații fără să trebuiască să întrerup sarcina mea curentă, să le afișez într-un format ușor de înțeles și să obțin informațiile într-un mod care să funcționeze cu cât mai multe routere posibil, astfel încât alții să poată folosiți-l și pe acesta.

Cum face lucrurile

Am decis SNMP (Simple Network Management Protocol) ca modalitate de a obține informațiile de la router. SNMP este utilizat pe scară largă în echipamentele de rețea și dacă dispozitivul dvs. nu îl acceptă în mod implicit, DDWRT (firmware-ul routerului sursă deschisă) poate fi utilizat pentru a implementa SNMP.

Pentru a afișa informațiile într-un mod ușor de înțeles, am folosit un indicator de la o mașină. Indicatoarele auto sunt concepute pentru a vă oferi informații fără a vă distrage atenția sau a vă deruta, astfel încât șoferul să poată ține ochii pe drum. De asemenea, am avut niște așezări în jur.

Deoarece acest lucru va fi pe biroul meu, am decis să fac și lumina din spate RGB, deoarece accesoriile computerului ar trebui să fie toate RGB. Dreapta?

Provocări

Indicatoarele pe care le aveam folosesc un actuator Air-Core. Nu auzisem niciodată de acestea înainte de acest proiect.

Din Wikipedia: Ecartamentul miezului de aer este format din două bobine independente, perpendiculare, care înconjoară o cameră goală. Un arbore cu ac iese în cameră, unde un magnet permanent este fixat pe arbore. Când curentul curge prin bobinele perpendiculare, câmpurile lor magnetice se suprapun, iar magnetul este liber să se alinieze cu câmpurile combinate.

Nu am putut găsi o bibliotecă pentru Arduino care să accepte SNMP în configurația managerului. SNMP are două forme principale, agent și manager. Agenții răspund la cerere, iar managerii trimit cererea agenților. Am reușit să funcționez funcționalitatea managerului modificând biblioteca Arduino_SNMP creată de 0neblock. Nu am programat niciodată în C ++ decât să fac să clipească LED-urile pe un Arduino, așa că, dacă există probleme cu biblioteca SNMP, anunțați-mă și voi încerca să le rezolv, deocamdată funcționează.

În plus, SNMP nu este conceput pentru vizualizarea în timp real. Utilizarea intenționată este pentru urmărirea statisticilor și detectarea întreruperilor. Din acest motiv, informațiile de pe router sunt actualizate doar la fiecare 5 secunde (dispozitivul dvs. poate varia). Aceasta este cauza întârzierii dintre numărul de pe testul de viteză și mișcarea acului.

Pasul 1: Instrumente și materiale

Instrumente și materiale
Instrumente și materiale
Instrumente și materiale
Instrumente și materiale
Instrumente și materiale
Instrumente și materiale
Instrumente și materiale
Instrumente și materiale
Proiectarea circuitului
Proiectarea circuitului

Vom avea nevoie de 3 poduri H complete. Modelele pe care le-am folosit sunt Dual TB6612FNGand Dual L298N.

Fiecare actuator Air-Core necesită 2 punți H complete, deoarece bobinele trebuie controlate independent.

Unul dintre indicatoarele pe care le folosesc are o bobină scurtcircuitată la masă cu o diodă și un rezistor. Nu sunt sigur de știința din spatele ei, dar acest lucru îi permite să se rotească cu aproximativ 90 de grade cu o singură bobină alimentată.

Voi folosi regulatorul de 12v la 5v care face parte din placa L298N pe care am selectat-o pentru alimentarea ESP32.

Toate circuitele LED sunt opționale, precum și conectorii JST. Puteți lipi cu ușurință firele direct la ESP32 și la șoferul motorului.

Pasul 3: Proiectarea codului

Configurare cod

Va trebui să configurăm Arduino pentru a putea utiliza placa ESP32. Există un ghid bun situat aici, care vă va conduce prin configurarea ESP32 Arduino.

De asemenea, veți avea nevoie de biblioteca Arduino_SNMP aflată aici.

Pentru a configura codul, va trebui să colectați câteva informații.

  1. Router IP
  2. Viteza maximă de încărcare
  3. Viteza maximă de descărcare
  4. Numele și parola dvs. WiFi
  5. OID care conține numărul de octeți pentru „in” și „out” pe interfața WAN a routerelor

Există OID-uri standard (identificatori de obiecte) pentru informațiile pe care le dorim. Conform standardului MIB-2, numerele pe care le dorim sunt:

ifInOctets.1.3.6.1.2.1.2.2.1.16. X

ifOutOctets.1.3.6.1.2.1.2.2.1.10. X

De unde X este numărul atribuit interfeței de la care doriți să obțineți statisticile. Pentru mine, acest număr este 3. O modalitate de a confirma că acesta este OID corect pentru dvs. și de a identifica ce număr de interfață trebuie să utilizați, este să utilizați un instrument precum MIB Browser.

Pentru a obține viteze maxime, am folosit SpeedTest.net. odată ce veți avea viteza în Mbps, va trebui să le convertiți în octeți folosind această formulă.

Octeti pe secundă = (Rezultatul testului de viteză în Mbps * 1048576) / 8

Funcția de cod

Codul trimite o cerere de primire SNMP către router. Ruterul răspunde apoi cu un număr, numărul reprezintă numărul de octeți care au fost trimiși sau primiți. În același timp, înregistrăm numărul de milisecunde care au trecut de când a început Arduino.

Odată ce acest proces s-a întâmplat cel puțin de două ori, putem calcula procentul de utilizare pe baza valorilor maxime folosind acest cod

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

Matematica se descompune astfel:

octetsDiff = snmp_result - Previous_ snmp_result

timeFrame = currentTime - timeLast

MaxPosableOverTime = (timeFrame * Octets_per_second) / 1000

Procent = (octetsDiff / MaxPosableOverTime) * 100

Acum, că avem procentul de utilizare a rețelei, trebuie doar să o scriem în gabarit. Facem asta în 2 pași. Mai întâi folosim funcția updateDownloadGauge. În această funcție folosim „hartă” pentru a converti procentajul într-un număr care reprezintă o poziție radiană pe ecartament. Apoi dăm acel număr funcției setMeterPosition pentru a muta acul în noua poziție.

Pasul 4: Proiectarea carcasei

Proiectarea carcasei
Proiectarea carcasei
Proiectarea carcasei
Proiectarea carcasei
Proiectarea carcasei
Proiectarea carcasei

Pentru a conține totul, am proiectat o incintă în fusion360 și am imprimat-o 3D. Designul pe care l-am făcut este relativ simplu. Am folosit lipici fierbinte pentru a fixa componentele în interior, iar manometrul este ținut în poziție prin prinderea dintre capacul frontal și capacul din spate. Nu este nevoie să utilizați imprimarea 3D pentru a crea carcasa. De exemplu, ați putea face o carcasă din lemn sau ați putea pune totul înapoi în carcasa originală în care au intrat ecartamentele.

Fișierele mele STL sunt disponibile pe thingiverse dacă doriți să le priviți, dar este puțin probabil să funcționeze pentru dvs., cu excepția cazului în care obțineți exact aceleași calibre pe care le-am folosit.

Dosare de caz:

Mulțumesc pentru lectură. Spuneți-mi dacă aveți întrebări și voi face tot posibilul pentru a răspunde.

Recomandat: