Satura rādītājs:

Interneta spidometrs: 9 soļi (ar attēliem)
Interneta spidometrs: 9 soļi (ar attēliem)

Video: Interneta spidometrs: 9 soļi (ar attēliem)

Video: Interneta spidometrs: 9 soļi (ar attēliem)
Video: Ceļojums ASV | Neticami skaistas vietas – Arizona, Nevada, Jūta un Kalifornija 2024, Novembris
Anonim
Image
Image
Plāns
Plāns

Tā kā Indijā notiek pilnīga bloķēšana, viss, ieskaitot pasta pakalpojumus, ir slēgts. Nav jaunu PCB projektu, nav jaunu komponentu, nekas! Tāpēc, lai pārvarētu garlaicību un aizņemtu sevi, es nolēmu kaut ko izgatavot no tām daļām, kas man jau ir mājās. Es sāku meklēt no elektronikas atkritumu kaudzes un atradu vecu, salauztu analogo multimetru. Es izglābu no tā “skaitītāja kustību” un nolēmu parādīt kaut kādu informāciju, bet precīzi nezināju, ko. Pirmkārt, es domāju parādīt COVID-19 statistiku, taču internetā jau ir daudz labāku projektu. Arī dati tiek atjaunināti pēc dažām stundām, un skaitītāja nekustīgs rādītājs būtu garlaicīgs. Es gribēju datus, kas ātri mainās, mainās katru sekundi. Es jautāju ieteikumus vietnē Instagram, un viens no maniem sekotājiem atbildēja ar interneta spidometru. Tas izklausījās interesanti un nolēma to izdarīt!

Šajā pamācībā es jums parādīšu, kā es paņēmu datus no sava WiFi maršrutētāja, izmantojot SNMP, un parādīju augšupielādes un lejupielādes ātrumu skaitītājā.

Sāksim

1. solis: plāns

Kā vienmēr pirms projekta uzsākšanas, es mazliet pētīju internetā. Es atradu dažus projektus, kas saistīti ar šo tēmu. Tie bija divu veidu. Viens, kas parādīja interneta ātrumu, izmērot WiFi signāla “stiprumu”. Es neesmu tīkla eksperts, bet tas neizklausījās pareizi. Pārējie mērīja latentumu un kategorizēja ātrumu kā lēnu, vidēju vai ātru. Latentums ir laika aizture starp pieprasījuma nosūtīšanu un atbildes saņemšanu, tāpēc tas nevar būt faktiskais interneta ātruma attēlojums. Mēs to varam saukt par tīkla reakcijas ātrumu! Tad bija likumīgi projekti, kuros tika mērīts dažu datu lejupielādei nepieciešamais laiks un, pamatojoties uz to, aprēķināts interneta ātrums.

Bet tieši šajā projektā (Alistair) es uzzināju par vienkāršo tīkla pārvaldības protokolu vai SNMP. Izmantojot SNMP, mēs varam sazināties ar WiFi maršrutētāju un iegūt nepieciešamos datus tieši no tā. Viegli, vai ne? Patiesībā nē! Tā kā dažādiem WiFi maršrutētāju modeļiem ir dažādi iestatījumi, un pirms iznākuma iegūšanas ir nepieciešams daudz izmēģinājumu un kļūdu. Nebaidieties. Īsumā paskaidrošu visu, ko uzzināju par SNMP un grūtībām, ar kurām saskāros turpmākajos soļos.

Tātad plāns ir izmantot NodeMCU, lai izveidotu savienojumu ar WiFi maršrutētāju. Lai sasniegtu galīgo rezultātu, veiciet tālāk norādītās darbības.

  • Nosūtiet pieprasījumu maršrutētājam, pieprasot nepieciešamos datus
  • Saņemiet atbildi no maršrutētāja
  • Analizējiet atbildi un parsējiet no tās nepieciešamos datus
  • Pārvērtiet “neapstrādātus” datus saprotamā informācijā
  • Izveidojiet skaitītājam spriegumu, kas ir proporcionāls interneta ātrumam
  • Atkārtojiet

Skaitītāja kontrolei izmantošu DAC vai digitālā -analogā pārveidotāju.

2. solis: lietas, kas jums būs nepieciešamas

Lietas, kas jums būs nepieciešamas
Lietas, kas jums būs nepieciešamas
Lietas, kas jums būs nepieciešamas
Lietas, kas jums būs nepieciešamas
Lietas, kas jums būs nepieciešamas
Lietas, kas jums būs nepieciešamas

1x mezglsMCU

1x analogā skaitītāja kustība

1x MPU4725 DAC

1x SPDT slēdzis

1x 10k potenciometrs

1x rezistors

3. solis: pilna mēroga novirzes strāvas aprēķināšana

Pilnas skalas novirzes strāvas aprēķināšana
Pilnas skalas novirzes strāvas aprēķināšana
Pilnas skalas novirzes strāvas aprēķināšana
Pilnas skalas novirzes strāvas aprēķināšana

Piezīme: pārejiet uz 7. darbību, lai iegūtu faktisko uzbūvi!

Izlaidiet šo darbību, ja jau zināt sava skaitītāja pilna mēroga novirzes strāvu. Manā skaitītājā tas nebija minēts, tāpēc man bija jāaprēķina. Bet vispirms ātri apskatīsim, kā šāda kustība darbojas. Tas sastāv no spoles, kas apturēta magnētiskajā laukā. Kad strāva plūst caur spoli, saskaņā ar Faradeja likumu tā piedzīvo spēku. Spolei ir atļauts brīvi griezties magnētiskajā laukā, tāpat kā rādītājam, kas ir piestiprināts pie spoles. Strāvas lielumu, kas liek rādītājam kustēties “skalas beigās”, sauc par pilna mēroga novirzes strāvu. Šī ir arī maksimālā strāva, kas jāļauj plūst caur spoli.

Notiek daudz kas cits, bet ar to pietiek, lai mēs darītu. Tagad mums ir kustība. To var izmantot kā voltmetru, sērijveidā pievienojot tam lielu pretestību, vai kā ampērmetru, paralēli tam pievienojot nelielu pretestību. Mēs to izmantosim kā voltmetru, lai parādītu spriegumu, kas ir proporcionāls interneta ātrumam. Tātad, mums ir jāaprēķina pretestība, kas jāpievieno virknē. Lai to izdarītu, mums vispirms jāaprēķina pilna mēroga novirzes strāva.

  1. Izvēlieties augstu pretestības vērtību (piemēram,> 100k)
  2. Savienojiet to virknē ar kustību un pielieciet tai mainīgu spriegumu, izmantojot katlu.
  3. Turpiniet lēnām palielināt spriegumu, līdz rādītājs sasniedz skalas galu.
  4. Izmantojot multimetru, izmēriet strāvu, kas plūst cauri. Šī ir pilna mēroga novirzes strāva. (I = 150uA manā gadījumā)

Mēs izmantojam DAC, kura izejas sprieguma diapazons ir no 0 līdz VCC (3.3V NodeMCU dēļ). Tas nozīmē, ka tad, kad mērierīcei tiek uzlikts 3.3V, tam jābūt norādītam skalas beigās. Tas var notikt, ja ķēdē plūst pilna mēroga novirzes strāva, kad tiek pielietota 3.3V. Izmantojot Ohma likumu, 3.3/(pilna mēroga novirzes strāva) dod vērtību pretestībai, kas jāievieto sērijveidā.

4. darbība. SNMP GET pieprasījuma izveide

SNMP GET pieprasījuma izveide
SNMP GET pieprasījuma izveide
SNMP GET pieprasījuma izveide
SNMP GET pieprasījuma izveide
SNMP GET pieprasījuma izveide
SNMP GET pieprasījuma izveide

Vienkāršais tīkla pārvaldības protokols (SNMP) ir interneta standarta protokols informācijas vākšanai un sakārtošanai par pārvaldītajām ierīcēm IP tīklos un šīs informācijas modificēšanai, lai mainītu ierīces darbību. Ierīces, kas parasti atbalsta SNMP, ietver kabeļmodemus, maršrutētājus, slēdžus, serverus, darbstacijas, printerus un daudz ko citu. Šai būvei mēs sazināsimies ar mūsu WiFi maršrutētāju, izmantojot SNMP, un iegūsim nepieciešamos datus.

Bet vispirms mums ir jānosūta maršrutētājam pieprasījums, kas pazīstams kā “GET pieprasījums”, norādot vēlamo datu informāciju. GET Pieprasījuma formāts ir parādīts attēlā. Pieprasījums sastāv no dažādām daļām. Esmu uzsvēris baitus, kurus jūs varētu vēlēties mainīt.

Lūdzu, ņemiet vērā, ka viss ir heksadecimālā.

SNMP ziņojums -manā gadījumā visa ziņojuma garums ir 40 (pelēka krāsa), kas, pārvēršot heksadecimālā skaitlī, ir 0x28.

SNMP kopienas virkne - vērtība “PUBLIC” ir rakstīta heksadecimālā formā kā “70 75 62 6C 69 63”, kuras garums ir 6 (dzeltens).

SNMP PDU tips - manā gadījumā ziņojuma garums ir 27 (zils), t.i., 0x1B.

Varbind List Type - Manā gadījumā ziņojuma garums ir 16 (zaļš), t.i., 0x10.

Varbind tips - manā gadījumā ziņojuma garums ir 14 (rozā), t.i., 0x0E.

Objekta identifikators -

Kā minēts iepriekš, tīkla ierīces ar SNMP (piemēram, maršrutētāji, slēdži utt.) Uztur sistēmas statusa, pieejamības un veiktspējas informācijas datubāzi kā objektus, kurus identificē OID. Lai augšupielādētu un lejupielādētu paketes, jums jāidentificē maršrutētāja OID. To var izdarīt, izmantojot bezmaksas MIB pārlūkprogrammu, piemēram, šo.

Ievadiet adresi kā 192.168.1.1 un OID kā.1.3.6.1.2.1.2.2.1.10.x (ifInOctets) vai.1.3.6.1.2.1.2.2.1.16.x. (ifOutOctets). Atlasiet Saņemt darbību un noklikšķiniet uz Iet. Jums vajadzētu redzēt OID kopā ar tā vērtību un veidu.

Manā gadījumā ziņojuma garums ir 10 (sarkans), t.i., 0x0A. Aizstājiet vērtību ar OID. Šajā gadījumā “2B 06 01 02 01 02 02 01 10 10”

Tieši tā! Jūsu pieprasījuma ziņojums ir gatavs. Pārējos baitus saglabājiet tādus, kādi tie ir.

SNMP ieslēgšana maršrutētājā:

  • Piesakieties sava WiFi maršrutētāja lapā, izmantojot noklusējuma vārteju. Pārlūkprogrammā ierakstiet 192.168.1.1 un nospiediet enter. Pēc noklusējuma lietotājvārdam un parolei jābūt 'admin'.
  • Es izmantoju TP-LINK (TD-W8961N) maršrutētāju. Šim maršrutētājam dodieties uz Piekļuves pārvaldība> SNMP un atlasiet “Aktivizēts”.
  • GET kopiena: publiska
  • Slazdošanas saimnieks: 0.0.0.0

5. darbība: izpratne par GET Response

Izpratne par GET Response
Izpratne par GET Response

Jūs varat izlaist šo darbību, taču ir labi zināt, vai jums ir jāveic kāda problēmu novēršana.

Kad esat augšupielādējis kodu un palaidis to, varat apskatīt atbildi, izmantojot seriālo monitoru. Tam vajadzētu izskatīties tā, kā parādīts attēlā. Jums ir jāmeklē daži baiti, kurus esmu uzsvēris.

Sākot no 0, 15. baits norāda PDU tipu - 0xA2 nozīmē, ka tas ir GetResponse.

48. baits norāda datu tipu - 0x41 nozīmē, ka datu tips ir Counter.

49. baits norāda datu garumu - 0x04 nozīmē, ka dati ir 4 baitus gari.

50, 51, 52, 53 baiti satur datus.

6. darbība. Digitālā -analogā pārveidotājs (DAC)

Digitālais uz analogo pārveidotājs (DAC)
Digitālais uz analogo pārveidotājs (DAC)

Mikrokontrolleri ir digitālās ierīces, kas tieši nesaprot analogos spriegumus. Es izmantoju analogo skaitītāju, kura ieejai nepieciešams mainīgs spriegums. Bet mikrokontrolleris var vienkārši izvadīt HIGH (3.3V NodeMCU gadījumā) un LOW (0V). Tagad jūs varētu teikt, kāpēc neizmantot tikai PWM. Tas nedarbosies, jo skaitītājs parādīs tikai vidējo vērtību.

Es izmantoju MCP4725 DAC, lai iegūtu mainīgu spriegumu. Tas ir 12 bitu DAC, t.i. vienkāršā izteiksmē tas sadalīs 0 līdz 3.3V 4096 (= 2^12) daļās. Izšķirtspēja būs 3,3/4096 = 0,8056mV. Tas nozīmē, ka 0 atbilst 0 V, 1 atbilst 0,8056 mV, 2 atbilst 1,6112 mV,….., 4095 atbilst 3,3 V.

Interneta ātrums tiks “kartēts” no “0 līdz 7 Mbps” līdz “0 līdz 4095”, un tad šī vērtība tiks piešķirta DAC, lai izvadītu spriegumu, kas būs proporcionāls interneta ātrumam.

7. solis: montāža

Asambleja
Asambleja
Asambleja
Asambleja
Asambleja
Asambleja
Asambleja
Asambleja

Savienojumi ir ļoti vienkārši. Shēma ir pievienota šeit.

Es izstrādāju un izdrukāju skalu. Augšējais ir paredzēts lejupielādes ātrumam, bet apakšējais - augšupielādes ātrumam. Es pielīmēju jauno skalu pār veco.

Es no multimetra izņēmu visas vecās lietas un saliku tajā visu. Tas bija cieši pieguļošs. Man bija jāizurbj caurums priekšpusē, lai pievienotu pārslēgšanas slēdzi, ko izmanto, lai izvēlētos starp augšupielādes un lejupielādes ātrumu.

8. solis: laiks kodēšanai

Laiks kodēšanai
Laiks kodēšanai
Laiks kodēšanai
Laiks kodēšanai
Laiks kodēšanai
Laiks kodēšanai

Kods ir pievienots šeit. Lejupielādējiet un atveriet to Arduino IDE. Instalējiet MCP4725 bibliotēku no Adafruit.

Pirms augšupielādes:

  1. Ievadiet savu WiFi SSID un paroli
  2. Ievadiet skalā minēto maksimālo augšupielādes un lejupielādes ātrumu.
  3. Veiciet nepieciešamās izmaiņas pieprasījumu masīvā lejupielādei, kā arī augšupielādējiet paketes.
  4. Noņemiet komentāru rindu 165, lai sērijas monitorā skatītu atbildi.

Noklikšķiniet uz augšupielādes!

9. solis: izbaudiet

Ieslēdziet to un izbaudiet, kā sērfojot internetā, adatas dejo apkārt!

Paldies, ka pieturējāties līdz galam. Ceru, ka jums visiem patīk šis projekts un šodien uzzinājāt kaut ko jaunu. Ļaujiet man zināt, vai jūs to izgatavojat sev. Abonējiet manu YouTube kanālu, lai iegūtu vairāk šādu projektu.

Ieteicams: