Բովանդակություն:

Ինտերնետի արագաչափ. 4 քայլ (նկարներով)
Ինտերնետի արագաչափ. 4 քայլ (նկարներով)

Video: Ինտերնետի արագաչափ. 4 քայլ (նկարներով)

Video: Ինտերնետի արագաչափ. 4 քայլ (նկարներով)
Video: IV Դաս 34։ Մատ վերջին հորիզոնականում 2024, Հուլիսի
Anonim
Image
Image
Ինտերնետ արագության չափիչ
Ինտերնետ արագության չափիչ
Ինտերնետի արագության չափիչ
Ինտերնետի արագության չափիչ

Ակնարկ

Այս «Ինտերնետի արագաչափը» ձեզ հնարավորություն կտա իրական ժամանակում վերահսկել ձեր ցանցի օգտագործումը: Այս տեղեկատվությունը հասանելի է տնային երթուղիչների մեծ մասի վեբ ինտերֆեյսում: Այնուամենայնիվ, դրան մուտք գործելը պահանջում է դադարեցնել ձեր ընթացիկ առաջադրանքը ՝ այն փնտրելու համար:

Ես ուզում էի դիտել այս տեղեկատվությունը ՝ առանց իմ ընթացիկ առաջադրանքը ընդհատելու, ցուցադրելու այն ձևաչափով, որը հասկանալի էր միայն արագ հայացքով, և տեղեկատվությունը ստանալ այնպես, որ հնարավորինս շատ երթուղիչների հետ աշխատեր, որպեսզի մյուսները կարողանային հնարավոր է նաև օգտագործել այն:

Ինչպես է դա անում իրերը

Ես որոշեցի SNMP- ը (Simple Network Management Protocol) որպես երթուղիչից տեղեկատվություն ստանալու միջոց: SNMP- ը լայնորեն օգտագործվում է ցանցային սարքավորումների մեջ, և եթե ձեր սարքը այն լռելյայն չի աջակցում, DDWRT- ը (բաց կոդով երթուղիչի որոնվածը) կարող է օգտագործվել SNMP- ի իրականացման համար:

Տեղեկատվությունը հեշտ հասկանալի ձևով ցուցադրելու համար ես օգտագործեցի մեքենայի չափիչ: Ավտոմոբիլային չափիչ սարքերը նախատեսված են ձեզ տեղեկատվություն տալու համար, առանց շեղելու կամ շփոթեցնելու, այնպես որ վարորդը կարող է աչքերը պահել ճանապարհի վրա: Բացի այդ, ես որոշ պառկեցի շուրջս:

Քանի որ սա գրասեղանիս վրա էր, որոշեցի նաև հետևի լույսը RGB դարձնել, քանի որ համակարգչի պարագաները բոլորը պետք է լինեն RGB: Ճիշտ?

Մարտահրավերներ

Չափիչները, որոնք ես ունեի, օգտագործում էին Air-Core ակտիվացուցիչ: Նախքան այս նախագիծը ես երբեք չէի լսել դրանց մասին:

Վիքիպեդիայից. Օդի միջուկի չափիչը բաղկացած է երկու անկախ, ուղղահայաց կծիկներից, որոնք շրջապատում են խոռոչի խցիկը: Ասեղի լիսեռը դուրս է գալիս խցիկ, որտեղ մշտական մագնիսը ամրացված է լիսեռին: Երբ հոսանքը հոսում է ուղղահայաց ոլորունների միջով, դրանց մագնիսական դաշտերը գերակշռում են, և մագնիսը ազատորեն համընկնում է համակցված դաշտերի հետ:

Ես չկարողացա Arduino- ի համար գտնել այնպիսի գրադարան, որն աջակցում էր SNMP- ը կառավարչի կազմաձևում: SNMP- ն ունի երկու հիմնական ձև ՝ գործակալ և կառավարիչ: Գործակալները պատասխանում են խնդրանքին, և ղեկավարները հարցում են ուղարկում գործակալներին: Ես կարողացա կառավարչի գործառույթն աշխատել `փոփոխելով 0neblock- ի կողմից ստեղծված Arduino_SNMP գրադարանը: Ես երբեք չեմ ծրագրավորել C ++ - ում, բացի LED- ների առկայծումը Arduino- ում, այնպես որ, եթե SNMP գրադարանի հետ կապված խնդիրներ կան, ինձ տեղյակ պահեք և կփորձեմ դրանք շտկել, առայժմ այն, սակայն, աշխատում է:

Բացի այդ, SNMP- ը նախատեսված չէ իրական ժամանակի դիտման համար: Նախատեսված օգտագործումը վիճակագրությանը հետևելու և խափանումների հայտնաբերման համար է: Դրա պատճառով երթուղղիչի մասին տեղեկությունները թարմացվում են միայն մոտ 5 վայրկյանը մեկ (ձեր սարքը կարող է տարբեր լինել): Դա արագության փորձարկման թվի և ասեղի շարժման միջև ուշացման պատճառն է:

Քայլ 1: Գործիքներ և նյութեր

Գործիքներ և նյութեր
Գործիքներ և նյութեր
Գործիքներ և նյութեր
Գործիքներ և նյութեր
Գործիքներ և նյութեր
Գործիքներ և նյութեր
Գործիքներ և նյութեր
Գործիքներ և նյութեր
Շղթայի ձևավորում
Շղթայի ձևավորում

Մեզ անհրաժեշտ կլինի 3 լիարժեք H կամուրջ: Իմ օգտագործած մոդելներն են Dual TB6612FNGand Dual L298N:

Օդային միջուկի յուրաքանչյուր շարժիչ պահանջում է 2 լրիվ H կամուրջ, քանի որ կծիկներն անհրաժեշտ է ինքնուրույն վերահսկել:

Չափիչներից մեկը, որն օգտագործում եմ, ունի մեկ կծիկ, որը կարճացված է գետնին ՝ դիոդով և դիմադրիչով: Ես համոզված չեմ դրա հիմքում ընկած գիտության մեջ, բայց դա անելը թույլ է տալիս պտտվել մոտ 90 աստիճան միայն մեկ կծիկով:

Ես կօգտագործեմ 12v- ից 5v կարգավորիչ, որը L298N տախտակի մի մասն է, որը ես ընտրել եմ ESP32- ը սնուցելու համար:

Բոլոր LED սխեմաներն ընտրովի են, ինչպես նաև JST միակցիչները: Դուք հեշտությամբ կարող եք լարերը միացնել ուղղակիորեն ESP32- ին և շարժիչի վարորդին:

Քայլ 3: Կոդի ձևավորում

Կոդի կարգավորում

Մենք պետք է կարգավորենք Arduino- ն, որպեսզի կարողանանք օգտագործել ESP32 տախտակը: Այստեղ կա մի լավ ուղեցույց, որը ձեզ կտանի ESP32 Arduino- ի կարգավորումների միջոցով:

Ձեզ նույնպես պետք կգա այստեղ տեղակայված Arduino_SNMP գրադարանը:

Կոդը կազմաձևելու համար ձեզ հարկավոր է որոշակի տեղեկատվություն հավաքել:

  1. Ուղղորդիչի IP
  2. Բեռնման առավելագույն արագություն
  3. Ներբեռնման առավելագույն արագություն
  4. Ձեր WiFi անունը և գաղտնաբառը
  5. OID- ը, որը պարունակում է օկտետների հաշվարկը ձեր մուտքի և ելքի համար WAN ինտերֆեյսում

Կան ստանդարտ OID (օբյեկտի նույնացուցիչներ) մեր ուզած տեղեկատվության համար: Ըստ MIB-2 ստանդարտի, մեր ուզած թվերն են.

ifInOctets.1.3.6.1.2.1.2.2.1.16. X

ifOutOctets.1.3.6.1.2.1.2.2.1.10. X

Որտեղ X- ն այն թիվն է, որը նշանակված է ինտերֆեյսի վրա, որից ցանկանում եք ստանալ վիճակագրությունը: Ինձ համար այդ թիվը 3 -ն է: Հաստատելու, որ սա ձեզ համար ճիշտ OID- ն է և որոշելու համար, թե որ ինտերֆեյսի համարն է անհրաժեշտ օգտագործել, դա միջոց է օգտագործել այնպիսի գործիք, ինչպիսին է MIB Browser- ը:

Առավելագույն արագություն ստանալու համար ես օգտագործեցի SpeedTest.net- ը: Մբիթ / վ արագություն ստանալուց հետո դրանք պետք է փոխարկեք օկտետների ՝ օգտագործելով այս բանաձևը:

Օկտետներ վայրկյանում = (Արագության թեստի արդյունք Մբիթ / վրկ * 1048576) / 8

Կոդի գործառույթ

Կոդն ուղարկում է SNMP get-request երթուղիչին: Այնուհետև երթուղիչը պատասխանում է թվով, թիվը ներկայացնում է ուղարկված կամ ստացված ութնյակների թիվը: Միևնույն ժամանակ, մենք գրանցում ենք միլիվայրկյանների թիվը, որոնք անցել են Arduino- ի մեկնարկից ի վեր:

Երբ այս գործընթացը տեղի ունենա առնվազն երկու անգամ, մենք կարող ենք հաշվարկել օգտագործման տոկոսը `ելնելով մեր առավելագույն արժեքներից` օգտագործելով այս ծածկագիրը

տոկոսային իջեցում = ((float) (byteDown - byteDownLast)/(float) (maxDown * ((millis () - timeLast)/1000))) * 100;

Մաթեմատիկան քանդվում է այսպես.

octetsDiff = snmp_result - Նախորդ_ snmp_result

timeFrame = currentTime - timeLast

MaxPosableOverTime = (ժամկետը * Octets_per_second)/1000

Տոկոս = (octetsDiff / MaxPosableOverTime) * 100

Այժմ, երբ մենք ունենք ցանցի օգտագործման տոկոսը, մենք պարզապես պետք է այն գրենք չափիչին: Մենք դա անում ենք 2 քայլով: Սկզբում մենք օգտագործում ենք updateDownloadGauge գործառույթը: Այս գործառույթում մենք օգտագործում ենք «քարտեզ» ՝ տոկոսը փոխակերպելու համարի, որը ներկայացնում է ռադիոնի դիրքը չափիչի վրա: Հետո այդ թիվը տալիս ենք setMeterPosition գործառույթին ՝ ասեղը նոր դիրքի տեղափոխելու համար:

Քայլ 4: Գործի ձևավորում

Գործի ձևավորում
Գործի ձևավորում
Գործի ձևավորում
Գործի ձևավորում
Գործի ձևավորում
Գործի ձևավորում

Ամեն ինչ պարունակելու համար ես նախագծեցի պատյան fusion360- ում և 3D տպեցի այն: Իմ պատրաստած դիզայնը համեմատաբար պարզ է: Ես օգտագործեցի տաք սոսինձ ՝ բաղադրիչները ներսից ամրացնելու համար, և չափիչը պահվում է տեղում ՝ սեղմվելով առջևի և հետևի կափարիչի միջև: Գործը ստեղծելու համար ձեզ հարկավոր չէ օգտագործել 3D տպագրություն: Օրինակ, դուք կարող եք պատյան պատրաստել փայտից, կամ կարող եք ամեն ինչ հետ դնել սկզբնական պատյանում, որտեղից չափիչներ են մտել:

Իմ STL ֆայլերը հասանելի են thingiverse- ում, եթե ցանկանում եք դրանք դիտել, բայց դժվար թե դրանք ձեզ մոտ աշխատեն, եթե չստանաք այն նույն չափիչները, որոնք ես օգտագործել եմ:

Գործի ֆայլեր ՝

Շնորհակալություն կարդալու համար: Տեղեկացրեք ինձ, եթե ունեք որևէ հարց, և ես ամեն ինչ կանեմ, որ պատասխանեմ:

Խորհուրդ ենք տալիս: