Interneti -spidomeeter: 9 sammu (piltidega)
Interneti -spidomeeter: 9 sammu (piltidega)
Anonim
Image
Image
Plaan
Plaan

Kuna Indias toimub täielik sulgemine, on kõik, sealhulgas postiteenused, suletud. Ei mingeid uusi trükkplaatide projekte, uusi komponente ega midagi! Nii et igavuse ületamiseks ja enda hõivamiseks otsustasin teha midagi nendest osadest, mis mul juba kodus on. Hakkasin elektroonikaprügi hunnikust otsima ja leidsin vana katkise analoog -multimeetri. Päästsin sellest 'meeterliikumise' ja otsustasin kuvada mingit teavet, kuid ei teadnud täpselt, mida. Esiteks mõtlesin kuvada COVID-19 statistikat, kuid Internetis on juba palju paremaid projekte. Samuti värskendatakse andmeid mõne tunni pärast ja arvesti liikumatu osuti oleks igav. Tahtsin andmeid, mis muutuvad kiiresti, muutuvad iga sekund. Küsisin Instagramis ettepanekuid ja üks mu jälgijatest vastas Interneti -spidomeetriga. See kõlas huvitavalt ja otsustas seda teha!

Selles juhendis näitan teile, kuidas ma SNMP abil oma WiFi -ruuterist andmeid haarasin ja arvesti üles- ja allalaadimiskiirust kuvasin.

Alustame

Samm: plaan

Nagu alati enne projektiga alustamist, uurisin natuke Internetis. Leidsin mõned selle teemaga seotud projektid. Neid oli kahte sorti. Üks, mis näitas Interneti -kiirust, mõõtes WiFi -signaali tugevust. Ma ei ole võrgustike ekspert, kuid see ei kõlanud õigesti. Teised mõõtsid latentsusaega ja liigitasid kiiruse aeglaseks, keskmiseks või kiireks. Latentsus on viivitus päringu saatmise ja vastuse saamise vahel ning seega ei saa see olla Interneti kiiruse tegelik esitus. Võime seda nimetada võrgu reageerimiskiiruseks! Siis olid legitiimsed projektid, mis mõõtsid andmete allalaadimiseks kuluvat aega ja arvutasid selle põhjal Interneti kiiruse.

Kuid just selles projektis (Alistair) sain teada lihtsast võrguhaldusprotokollist või SNMP -st. SNMP abil saame suhelda WiFi ruuteriga ja saada vajalikke andmeid otse sellelt. Lihtne, eks? Tegelikult mitte! Kuna erinevatel WiFi -ruuterite mudelitel on erinevad seadistused ja enne väljundi saamist on vaja palju katsetusi ja vigu. Ärge kartke. Selgitan lühidalt kõike, mida ma SNMP kohta õppisin ja raskusi, millega eelseisvates sammudes silmitsi seisin.

Seega on plaan WiFi -ruuteriga ühenduse loomiseks kasutada NodeMCU -d. Lõpliku väljundini jõudmiseks toimige järgmiselt.

  • Saatke ruuterile päring, milles nõutakse nõutavaid andmeid
  • Saate vastuse ruuterilt
  • Analüüsige vastust ja parsige sellest vajalikud andmed
  • Teisendage töötlemata andmed arusaadavaks teabeks
  • Looge arvesti Interneti -kiirusega proportsionaalne pinge
  • Korda

Arvesti juhtimiseks kasutan DAC -d või digitaalset analoogmuundurit.

Samm: asjad, mida vajate

Asjad, mida vajate
Asjad, mida vajate
Asjad, mida vajate
Asjad, mida vajate
Asjad, mida vajate
Asjad, mida vajate

1x sõlmeMCU

1x analoogmõõturi liikumine

1x MPU4725 DAC

1x SPDT lüliti

1x 10k potentsiomeeter

1x takisti

3. samm: täismõõduga läbipaindevoolu arvutamine

Täisskaala läbipaindevoolu arvutamine
Täisskaala läbipaindevoolu arvutamine
Täisskaala läbipaindevoolu arvutamine
Täisskaala läbipaindevoolu arvutamine

Märkus: tegeliku ehituse jaoks minge 7. sammu juurde!

Jätke see samm vahele, kui teate juba oma mõõturi täisväärtuslikku läbipaindevoolu. Minu arvesti ei maininud seda, nii et pidin arvutama. Kuid kõigepealt vaatame kiiresti, kuidas selline liikumine toimib. See koosneb magnetväljas riputatud mähist. Kui vool voolab mähist läbi, kogeb see Faraday seaduse kohaselt jõudu. Spiraalil on lubatud magnetväljas vabalt pöörelda, samuti pooli külge kinnitatud osuti. Voolu suurust, mis paneb kursori skaala lõpus liikuma, nimetatakse täisskaala läbipaindevooluks. See on ka maksimaalne vool, mis peab pooli kaudu voolama.

Toimub palju muud, kuid sellest piisab, mida me teeme. Nüüd on meil liikumine. Seda saab kasutada voltmeetrina, lisades sellega järjestikku suure takistuse või ampermeetrina, lisades sellega paralleelselt väikese takistuse. Me kasutame seda voltmeetrina, et kuvada pinge, mis on proportsionaalne Interneti kiirusega. Niisiis, peame arvutama vastupanu, mis tuleb järjestikku lisada. Selleks peame kõigepealt arvutama täismõõduga läbipaindevoolu.

  1. Valige kõrge takistuse väärtus (nt> 100k)
  2. Ühendage see liigutusega järjestikku ja rakendage potti kasutades sellele muutuv pinge.
  3. Suurendage pinget aeglaselt, kuni osuti jõuab skaala lõppu.
  4. Mõõtke multimeetriga voolav vool. See on täismõõduline läbipaindevool. (I = 150uA minu puhul)

Kasutame DAC -d, mille väljundpinge on vahemikus 0 kuni VCC (NodeMCU tõttu 3,3 V). See tähendab, et kui arvestile rakendatakse 3,3 V, peaks see näitama skaala lõppu. See võib juhtuda, kui 3,3 V rakendamisel voolab vooluringist läbi täismõõduline läbipaindevool. Kasutades Ohmi seadust, annab 3.3/(täismõõduline läbipaindevool) järjestikku sisestatava takistuse väärtuse.

Samm 4: SNMP GET päringu loomine

SNMP GET päringu loomine
SNMP GET päringu loomine
SNMP GET päringu loomine
SNMP GET päringu loomine
SNMP GET päringu loomine
SNMP GET päringu loomine

Lihtne võrguhaldusprotokoll (SNMP) on Interneti standardprotokoll hallatavate seadmete kohta IP -võrkudes teabe kogumiseks ja korraldamiseks ning selle teabe muutmiseks seadme käitumise muutmiseks. Seadmed, mis tavaliselt toetavad SNMP -d, hõlmavad kaabelmodemid, ruuterid, lülitid, serverid, tööjaamad, printerid ja palju muud. Selle ehituse jaoks suhtleme oma WiFi -ruuteriga SNMP abil ja saame vajalikud andmed.

Kuid kõigepealt peame saatma ruuterile päringu, mida nimetatakse GET -päringuks, mainides soovitud andmete üksikasju. GET päringu vorm on näidatud pildil. Taotlus koosneb erinevatest osadest. Olen toonud esile baidid, mida võiksite muuta.

Pange tähele, et kõik on kuueteistkümnendsüsteemis.

SNMP -sõnum -minu puhul on kogu sõnumi pikkus 40 (hall värv), mis kuueteistkümnendkohaks teisendamisel on 0x28.

SNMP kogukonnastring - väärtus „PUBLIC” on kirjutatud kuueteistkümnendmärgiga „70 75 62 6C 69 63”, mille pikkus on 6 (kollane).

SNMP PDU tüüp - minu puhul on sõnumi pikkus 27 (sinine), st 0x1B.

Varbind List Type - Minu puhul on sõnumi pikkus 16 (roheline), st 0x10.

Varbind Type - Minu puhul on sõnumi pikkus 14 (roosa), st 0x0E.

Objekti identifikaator -

Nagu varem mainitud, säilitavad SNMP-toega võrguseadmed (nt ruuterid, lülitid jne) andmebaasi süsteemi oleku, kättesaadavuse ja toimivusinfo kohta objektidena, mida identifitseerivad OID-d. Pakettide üles- ja allalaadimiseks peate kindlaks määrama ruuteri OID -d. Seda saab teha, kasutades sellist tasuta MIB -brauserit.

Sisestage aadress 192.168.1.1 ja OID.1.3.6.1.2.1.2.2.1.10.x (ifInOctets) või.1.3.6.1.2.1.2.2.1.16.x. (ifOutOctets). Valige Hangi operatsioon ja klõpsake nuppu Mine. Te peaksite nägema OID -d koos selle väärtuse ja tüübiga.

Minu puhul on sõnumi pikkus 10 (punane), st 0x0A. Asendage väärtus OID -ga. Sel juhul on „2B 06 01 02 01 02 02 01 10 10”

See on kõik! Teie taotlussõnum on valmis. Hoidke ülejäänud baidid sellistena, nagu need on.

SNMP sisselülitamine ruuteris:

  • Logige oma WiFi ruuteri lehele sisse vaikelüüsi kaudu. Sisestage brauserisse 192.168.1.1 ja vajutage sisestusklahvi. Vaikimisi peaks kasutajanimi ja parool olema "admin".
  • Ma kasutan TP-LINK (TD-W8961N) ruuterit. Selle ruuteri jaoks peate valima Juurdepääsuhaldus> SNMP ja valima „Aktiveeritud”.
  • GET Community: avalik
  • Lõksu vastuvõtja: 0.0.0.0

Samm 5: GET -vastuse mõistmine

GET -vastuse mõistmine
GET -vastuse mõistmine

Võite selle sammu vahele jätta, kuid on hea teada, kas teil on vaja tõrkeotsingut teha.

Kui olete koodi üles laadinud ja selle käivitanud, saate vastust seriaalmonitori kaudu vaadata. See peaks välja nägema nagu pildil näidatud. Peate otsima paar baiti, mille olen esile toonud.

Alates 0, 15. bait ütleb PDU tüübile - 0xA2 tähendab, et see on GetResponse.

48. bait ütleb andmetüübi - 0x41 tähendab, et andmetüüp on loendur.

49. bait ütleb andmete pikkuse - 0x04 tähendab, et andmed on 4 baiti pikad.

Bait 50, 51, 52, 53 sisaldab andmeid.

6. samm: digitaalsest analoogiks muundur (DAC)

Digitaal -analoogmuundur (DAC)
Digitaal -analoogmuundur (DAC)

Mikrokontrollerid on digitaalsed seadmed, mis ei mõista otse analoogpingeid. Ma kasutan analoogmõõturit, mis vajab sisendina muutuvat pinget. Kuid mikrokontroller võib lihtsalt väljastada HIGH (NodeMCU puhul 3,3 V) ja LOW (0 V). Nüüd võite öelda, miks mitte kasutada ainult PWM -i. See ei tööta, kuna arvesti kuvab ainult keskmise väärtuse.

Ma kasutan muutuva pinge saamiseks MCP4725 DAC -i. See on 12-bitine DAC, st lihtsustatult jagab see 0 kuni 3,3 V 4096 (= 2^12) osaks. Eraldusvõime on 3,3/4096 = 0,8056 mV. See tähendab, et 0 vastab 0 V -le, 1 vastab 0,8056 mV -le, 2 vastab 1,6112 mV -le,….., 4095 vastab 3,3 V -le.

Interneti kiirus kaardistatakse vahemikus 0 kuni 7 Mbps kuni 0 kuni 4095 ja seejärel antakse see väärtus DAC -le, et väljastada pinge, mis on proportsionaalne Interneti kiirusega.

7. samm: kokkupanek

Assamblee
Assamblee
Assamblee
Assamblee
Assamblee
Assamblee
Assamblee
Assamblee

Ühendused on väga lihtsad. Skeem on lisatud siia.

Kavandasin ja printisin skaala. Ülemine on allalaadimiskiiruseks ja alumine üleslaadimiskiiruseks. Kleepisin uue skaala vana peale.

Eemaldasin multimeetrist kõik vanad asjad ja toppisin kõik sinna sisse. See oli tihe istumine. Pidin ette augu puurima, et kinnitada lülituslüliti, mida kasutatakse üles- ja allalaadimiskiiruse valimiseks.

Samm: kodeerimise aeg

Kodeerimise aeg
Kodeerimise aeg
Kodeerimise aeg
Kodeerimise aeg
Kodeerimise aeg
Kodeerimise aeg

Kood on siia lisatud. Laadige see alla ja avage see Arduino IDE -s. Installige Adafruitist teek MCP4725.

Enne üleslaadimist:

  1. Sisestage oma WiFi SSID ja parool
  2. Sisestage skaalal mainitud maksimaalne üles- ja allalaadimiskiirus.
  3. Tehke vajalikud muudatused päringumassiivis allalaadimiseks ja pakettide üleslaadimiseks.
  4. Tühistage rida 165, et vaadata jadamonitori vastust.

Vajutage üleslaadimist!

Samm: nautige

Lülitage see sisse ja nautige Internetis surfamise ajal nõela tantsimist!

Aitäh, et lõpuni jäite. Loodan, et teile kõigile meeldib see projekt ja õppisite täna midagi uut. Andke mulle teada, kui teete selle endale. Selliste projektide jaoks tellige minu YouTube'i kanal.

Soovitan: