Talaan ng mga Nilalaman:

Speedometer sa Internet: 9 Mga Hakbang (na may Mga Larawan)
Speedometer sa Internet: 9 Mga Hakbang (na may Mga Larawan)

Video: Speedometer sa Internet: 9 Mga Hakbang (na may Mga Larawan)

Video: Speedometer sa Internet: 9 Mga Hakbang (na may Mga Larawan)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Nobyembre
Anonim
Image
Image
Ang plano
Ang plano

Sa kumpletong lockdown na nangyayari sa India, ang lahat kasama ang mga serbisyo sa mail ay sarado. Walang bagong mga proyekto sa PCB, walang bagong mga bahagi, wala! Kaya upang mapagtagumpayan ang inip at panatilihing abala ang aking sarili, nagpasya akong gumawa ng isang bagay mula sa mga bahagi na mayroon na ako sa bahay. Sinimulan kong maghanap mula sa tumpok ng junk electronics at nakakita ng isang luma, sirang analog multimeter. Iniligtas ko ang 'paggalaw ng metro' mula rito at nagpasyang magpakita ng isang uri ng impormasyon ngunit hindi eksaktong alam kung ano. Una, naisip kong ipakita ang mga istatistika ng COVID-19 ngunit marami nang mas magagandang proyekto sa internet. Gayundin, ang data ay na-update pagkatapos ng ilang oras at ang isang pointer pa rin ng metro ay magiging mainip. Gusto ko ng data na mabilis na nagbabago, nagbabago bawat segundo. Humingi ako ng mga mungkahi sa Instagram at ang isa sa aking mga tagasunod ay tumugon sa Internet Speedometer. Ito ay kagiliw-giliw na tunog at nagpasyang gawin ito!

Sa Instructable na ito, ipapakita ko sa iyo kung paano ako kumuha ng data mula sa aking WiFi router gamit ang SNMP at ipinakita ang mga bilis ng pag-upload at pag-download sa metro.

Magsimula na tayo

Hakbang 1: Ang Plano

Tulad ng dati bago magsimula sa proyekto ay gumawa ako ng kaunting pagsasaliksik sa internet. Natagpuan ko ang ilang mga proyekto na nauugnay sa paksang ito. Dalawa silang uri. Isa na ipinakita ang bilis ng internet sa pamamagitan ng pagsukat ng 'lakas' ng signal ng WiFi. Hindi ako isang dalubhasa sa dalubhasa sa networking ngunit hindi ito wastong tunog. Sinukat ng iba ang latency at ikinategorya ang bilis bilang mabagal, katamtaman o mabilis. Ang latency ay ang pagkaantala ng oras sa pagitan ng pagpapadala ng kahilingan at pagkuha ng tugon at sa gayon hindi ito maaaring maging aktwal na representasyon ng bilis ng internet. Maaari natin itong tawaging isang bilis ng tugon sa network! Pagkatapos ay may mga legit na proyekto na sumukat sa oras na kinakailangan upang mag-download ng ilang data at kinakalkula ang bilis ng internet batay dito.

Ngunit sa proyektong ito (ni Alistair) natutunan ko ang tungkol sa Simple Network Management Protocol o SNMP. Gamit ang SNMP, maaari kaming makipag-usap sa router ng WiFi at makuha ang kinakailangang data nang direkta mula rito. Madali, tama? Sa totoo lang hindi! Dahil ang iba't ibang mga modelo ng paggamit ng mga router ng WiFi ay may iba't ibang mga setting at kailangan ng maraming pagsubok at error bago mo makuha ang output. Wag kang matakot. Ipapaliwanag ko nang maikling kung ano man ang natutunan ko tungkol sa SNMP at ang mga paghihirap na naharap ko sa mga paparating na hakbang.

Kaya't ang plano ay gamitin ang NodeMCU upang kumonekta sa WiFi Router. Ito ang mga hakbang upang makarating sa huling output:

  • Magpadala ng isang kahilingan sa router na 'humihiling' ng kinakailangang data
  • Kunin ang tugon mula sa router
  • Pag-aralan ang tugon at i-parse ang kinakailangang data mula rito
  • I-convert ang 'hilaw' na data sa naiintindihan na impormasyon
  • Bumuo ng boltahe proporsyonal sa bilis ng internet para sa metro
  • Ulitin

Gumagamit ako ng isang DAC o Digital sa Analog Converter para sa pagkontrol sa metro.

Hakbang 2: Mga Bagay na Kakailanganin Mo

Mga Bagay na Kakailanganin Mo
Mga Bagay na Kakailanganin Mo
Mga Bagay na Kakailanganin Mo
Mga Bagay na Kakailanganin Mo
Mga Bagay na Kakailanganin Mo
Mga Bagay na Kakailanganin Mo

1x NodeMCU

1x Kilusan ng Analog Meter

1x MPU4725 DAC

1x SPDT Switch

1x 10k Potensyomiter

1x Resistor

Hakbang 3: Kinakalkula ang Kasalukuyang Deflection Kasalukuyang

Kinakalkula ang Kasalukuyang Deflection Kasalukuyang
Kinakalkula ang Kasalukuyang Deflection Kasalukuyang
Kinakalkula ang Kasalukuyang Deflection Kasalukuyang
Kinakalkula ang Kasalukuyang Deflection Kasalukuyang

Tandaan: Tumalon sa Hakbang 7 para sa aktwal na pagbuo!

Laktawan ang hakbang na ito kung alam mo na ang full-scale deflection kasalukuyang para sa iyong metro. Ang aking metro ay walang nabanggit dito kaya kailangan kong kalkulahin. Ngunit una, tingnan natin nang mabilis kung paano gumagana ang gayong kilusan. Binubuo ito ng isang coil na nasuspinde sa isang magnetic field. Kapag ang kasalukuyang daloy sa pamamagitan ng coil, alinsunod sa batas ni Faraday, nakakaranas ito ng isang puwersa. Pinapayagan ang likaw na paikutin nang malaya sa magnetic field at gayundin ang pointer na nakakabit sa coil. Ang laki ng kasalukuyang kung saan ay gumagawa ng pointer ilipat sa 'dulo ng scale' ay tinatawag na kasalukuyang ganap na pagpapalihis. Ito rin ang maximum na kasalukuyang na dapat payagan na dumaloy sa likid.

Marami pang nangyayari ngunit sapat na ito para sa ginagawa namin. Mayroon na tayong kilusan. Maaari itong magamit bilang isang voltmeter sa pamamagitan ng pagdaragdag ng isang mataas na paglaban sa serye kasama nito o bilang isang Ammeter sa pamamagitan ng pagdaragdag ng isang maliit na paglaban kahanay nito. Gagamitin namin ito bilang isang voltmeter upang ipakita ang proporsyonal na boltahe sa bilis ng internet. Kaya, kailangan nating kalkulahin ang paglaban na maidaragdag sa serye. Para doon, kailangan muna nating kalkulahin ang kasalukuyang pagsukat ng buong scale.

  1. Pumili ng isang mataas na halaga ng paglaban (tulad ng> 100k)
  2. Ikonekta ito sa serye sa paggalaw at maglapat ng isang variable na boltahe sa kabuuan nito gamit ang palayok.
  3. Panatilihing dahan-dahang pagtaas ng boltahe hanggang sa maabot ng pointer ang dulo ng sukatan.
  4. Gamit ang isang multimeter, sukatin ang kasalukuyang dumadaloy. Ito ang kasalukuyang pagsukat ng buong scale. (I = 150uA sa aking kaso)

Gumagamit kami ng isang DAC na mayroong saklaw ng boltahe ng output mula 0 hanggang VCC (3.3V dahil sa NodeMCU). Nangangahulugan ito na kapag inilapat ang 3.3V sa metro, dapat itong ituro sa dulo ng sukatan. Maaari itong mangyari kapag ang daloy ng buong pagpapalihis kasalukuyang dumadaloy sa pamamagitan ng circuit kapag inilapat ang 3.3V. Gamit ang Batas ng Ohm, ang 3.3 / (full-scale deflection kasalukuyang) ay nagbibigay ng halaga sa paglaban na maipapasok sa serye.

Hakbang 4: Lumilikha ng Humiling ng SNMP

Lumilikha ng SNMP GET Request
Lumilikha ng SNMP GET Request
Lumilikha ng SNMP GET Request
Lumilikha ng SNMP GET Request
Lumilikha ng SNMP GET Request
Lumilikha ng SNMP GET Request

Ang Simple Network Management Protocol (SNMP) ay isang Internet Standard protocol para sa pagkolekta at pag-oorganisa ng impormasyon tungkol sa mga pinamamahalaang aparato sa mga network ng IP at para sa pagbabago ng impormasyong iyon upang mabago ang pag-uugali ng aparato. Ang mga aparato na karaniwang sumusuporta sa SNMP ay nagsasama ng mga cable modem, router, switch, server, workstation, printer, at marami pa. Para sa pagbuo na ito, makikipag-usap kami sa aming WiFi Router gamit ang SNMP at makuha ang kinakailangang data.

Ngunit una, kailangan naming magpadala ng isang kahilingan na kilala bilang isang 'GET Request' sa router na binabanggit ang mga detalye ng data na nais namin. Ang GET na format ng Kahilingan ay ipinapakita sa larawan. Ang kahilingan ay binubuo ng iba't ibang mga bahagi. Na-highlight ko ang mga byte na maaaring gusto mong baguhin.

Mangyaring tandaan na ang lahat ay nasa Hexadecimal.

Mensahe ng SNMP-Sa aking kaso, ang haba ng buong mensahe ay 40 (kulay-abong kulay) na kapag na-convert sa hexadecimal ay 0x28.

SNMP Community String - Ang halagang 'PUBLIC' ay nakasulat sa hexadecimal bilang '70 75 62 6C 69 63 'na ang haba ay 6 (dilaw).

Uri ng SNMP PDU - Sa aking kaso, ang haba ng mensahe ay 27 (asul) ibig sabihin, 0x1B.

Uri ng Listahan ng Varbind - Sa aking kaso, ang haba ng mensahe ay 16 (berde) ibig sabihin, 0x10.

Uri ng Varbind - Sa aking kaso, ang haba ng mensahe ay 14 (rosas) ibig sabihin, 0x0E.

Identifier ng Bagay -

Tulad ng nabanggit kanina, ang mga aparato ng network na pinagana ng SNMP (hal. Mga router, switch, atbp.) Ay nagpapanatili ng isang database ng katayuan ng system, pagkakaroon, at impormasyon sa pagganap bilang mga bagay, na kinilala ng OIDs. Kailangan mong kilalanin ang mga OID ng iyong router para sa Mga packet ng Pag-upload at Pag-download. Maaari itong gawin gamit ang isang libreng MIB Browser tulad ng isang ito.

Ipasok ang Address bilang 192.168.1.1 at OID bilang.1.3.6.1.2.1.2.2.1.10.x (ifInOctets) o.1.3.6.1.2.1.2.2.1.16.x. (ifOutOctets). Piliin ang Kumuha ng operasyon at mag-click sa Go. Dapat mong makita ang OID kasama ang halaga at uri nito.

Sa aking kaso, ang haba ng mensahe ay 10 (pula) ibig sabihin, 0x0A. Palitan ang halaga ng OID. Sa kasong ito, '2B 06 01 02 01 02 02 01 10 10'

Ayan yun! Handa na ang iyong mensahe sa kahilingan. Panatilihin ang natitirang mga byte tulad ng mga ito.

I-ON ang SNMP sa iyong router:

  • Mag-log on sa pahina ng iyong router ng WiFi sa pamamagitan ng default gateway. I-type ang 192.168.1.1 sa iyong browser at pindutin ang enter. Bilang default, ang username at password ay dapat na 'admin'.
  • Gumagamit ako ng isang TP-LINK (TD-W8961N) router. Para sa router na ito, kailangan mong pumunta sa Access Management> SNMP at piliin ang 'Aktibo'.
  • GET Community: pampubliko
  • Trap host: 0.0.0.0

Hakbang 5: Pag-unawa sa GET Tugon

Pag-unawa sa GET Tugon
Pag-unawa sa GET Tugon

Maaari mong laktawan ang hakbang na ito, ngunit magandang malaman kung kailangan mong gumawa ng ilang pag-troubleshoot.

Kapag na-upload mo ang code at pinatakbo ito, maaari mong tingnan ang tugon sa pamamagitan ng Serial monitor. Dapat magmukhang tulad ng ipinakita sa larawan. Mayroong ilang mga byte na kailangan mong hanapin kung saan ko na-highlight.

Simula sa 0, Ang ika-15 byte ay nagsasabi sa Uri ng PDU - 0xA2 ay nangangahulugang ito ay isang GetResponse.

Sinabi ng ika-48 na byte ang uri ng data - nangangahulugan ang 0x41 na ang uri ng data ay Counter.

Sinabi ng 49th byte ang haba ng data - nangangahulugan ang 0x04 na ang data ay 4 bytes ang haba.

Ang Byte 50, 51, 52, 53 ay naglalaman ng data.

Hakbang 6: Digital to Analog Converter (DAC)

Digital to Analog Converter (DAC)
Digital to Analog Converter (DAC)

Ang mga Microcontroller ay mga digital na aparato na hindi naiintindihan nang direkta ang mga voltages ng Analog. Gumagamit ako ng isang analog meter na nangangailangan ng isang variable na boltahe bilang input. Ngunit ang microcontroller ay maaaring maglabas lamang ng TAAS (3.3V sa kaso ng NodeMCU) at LOW (0V). Ngayon ay maaari mong sabihin kung bakit hindi na lang gumamit ng PWM. Hindi ito gagana dahil ipapakita lamang ng metro ang average na halaga.

Gumagamit ako ng MCP4725 DAC upang makakuha ng variable boltahe. Ito ay isang 12-bit DAC ibig sabihin sa simpleng mga termino, hahatiin nito ang 0 hanggang 3.3V sa 4096 (= 2 ^ 12) na mga bahagi. Ang resolusyon ay magiging 3.3 / 4096 = 0.8056mV. Nangangahulugan ito na 0 ay tumutugma sa 0V, 1 ay tumutugma sa 0.8056mV, 2 ay tumutugon sa 1.6112mV,….., 4095 ay tumutugma sa 3.3V.

Ang bilis ng internet ay 'mapa' mula '0 hanggang 7 mbps' hanggang '0 hanggang 4095' at pagkatapos ay ibibigay ang halagang ito sa DAC upang mag-output ng isang boltahe na magiging proporsyonal sa bilis ng internet.

Hakbang 7: Ang Assembly

Ang pagtitipon
Ang pagtitipon
Ang pagtitipon
Ang pagtitipon
Ang pagtitipon
Ang pagtitipon
Ang pagtitipon
Ang pagtitipon

Ang mga koneksyon ay napaka-simple. Ang eskematiko ay nakalakip dito.

Ako ang nagdisenyo at naglimbag ng iskala. Ang nasa itaas ay para sa bilis ng pag-download at ang mas mababa ay para sa bilis ng pag-upload. Idinikit ko ang bagong sukat sa dati.

Inalis ko ang lahat ng mga lumang bagay mula sa multimeter at siniksik ko ang lahat dito. Ito ay isang masikip na magkasya. Kailangan kong mag-drill ng isang butas sa harap upang ilakip ang toggle switch na ginagamit upang pumili sa pagitan ng bilis ng pag-upload at pag-download.

Hakbang 8: Oras para sa Coding

Oras para sa Coding
Oras para sa Coding
Oras para sa Coding
Oras para sa Coding
Oras para sa Coding
Oras para sa Coding

Ang code ay nakalakip dito. I-download at buksan ito sa Arduino IDE. I-install ang MCP4725 library mula sa Adafruit.

Bago ka mag-upload:

  1. Ipasok ang iyong WiFi SSID at Password
  2. Ipasok ang maximum na bilis ng pag-upload at pag-download na nabanggit sa sukatan.
  3. Gawin ang mga kinakailangang pagbabago sa hanay ng kahilingan para sa pag-download pati na rin ang mga upload na packet.
  4. Uncomment line 165 upang matingnan ang tugon sa serial monitor.

Pindutin ang upload!

Hakbang 9: Masiyahan

Patayin ito at masiyahan sa panonood ng karayom na sumasayaw sa paligid habang nag-i-surf ka sa internet!

Salamat sa pagdikit hanggang sa huli. Inaasahan kong mahal ninyong lahat ang proyektong ito at may natutunan na bagong araw ngayon. Ipaalam sa akin kung gumawa ka ng isa para sa iyong sarili. Mag-subscribe sa aking YouTube channel para sa mas maraming mga nasabing proyekto.

Inirerekumendang: