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

Ինտերնետ արագաչափ ՝ 9 քայլ (նկարներով)
Ինտերնետ արագաչափ ՝ 9 քայլ (նկարներով)

Video: Ինտերնետ արագաչափ ՝ 9 քայլ (նկարներով)

Video: Ինտերնետ արագաչափ ՝ 9 քայլ (նկարներով)
Video: Հ/Ս «Անատոլիական պատմություն» (մաս 9) 2024, Նոյեմբեր
Anonim
Image
Image
Ծրագիրը
Ծրագիրը

Հնդկաստանում լիակատար արգելափակումով, ամեն ինչ, ներառյալ փոստի ծառայությունները, փակվել են: Ոչ PCB- ի նոր նախագծեր, ոչ նոր բաղադրիչներ, ոչ ոչինչ: Այսպիսով, ձանձրույթը հաղթահարելու և ինձ զբաղեցնելու համար, որոշեցի ինչ -որ բան պատրաստել այն մասերից, որոնք արդեն ունեմ տանը: Ես սկսեցի որոնել էլեկտրոնիկայի աղբի կույտից և գտա հին, կոտրված անալոգային բազմաչափ: Ես փրկեցի «մետրի շարժումը» դրանից և որոշեցի մի տեսակ տեղեկատվություն ցուցադրել, բայց հստակ չգիտեի, թե ինչ: Նախ, ես մտածեցի ցուցադրել COVID-19- ի վիճակագրությունը, բայց ինտերնետում արդեն կան շատ ավելի լավ նախագծեր: Բացի այդ, տվյալները թարմացվում են մի քանի ժամ անց, և հաշվիչի անշարժ ցուցիչը ձանձրալի կլիներ: Ես ուզում էի, որ տվյալները արագ փոխվեն, փոխվեն ամեն վայրկյան: Ես առաջարկություններ խնդրեցի Instagram- ում, և իմ հետևորդներից մեկը պատասխանեց Ինտերնետ արագաչափով: Այն հետաքրքիր հնչեց և որոշեց այն պատրաստել:

Այս Ուղեցույցում ես ձեզ ցույց կտամ, թե ինչպես եմ վերցրել իմ WiFi երթուղիչից տվյալները SNMP- ի միջոցով և ցուցադրել բեռնման և ներբեռնման արագությունը հաշվիչի վրա:

Եկեք սկսենք

Քայլ 1: Planրագիրը

Ինչպես միշտ ՝ նախագծին սկսելուց առաջ, ես մի փոքր հետազոտություն կատարեցի ինտերնետում: Ես գտա այս թեմային առնչվող մի քանի նախագիծ: Նրանք երկու տեսակի էին: Մեկը, որը ցույց տվեց ինտերնետի արագությունը ՝ չափելով WiFi ազդանշանի «ուժը»: Ես ցանցի փորձագետ չեմ, բայց դա ճիշտ չէր հնչում: Մյուսները չափեցին ուշացումը և արագությունը դասակարգեցին որպես դանդաղ, միջին կամ արագ: Լատենտությունը հայցը ուղարկելու և պատասխանը ստանալու միջև ընկած ժամանակահատվածն է, ուստի այն չի կարող լինել ինտերնետի արագության փաստացի ներկայացում: Մենք այն կարող ենք անվանել ցանցի արձագանքման արագություն: Հետո կային օրինական նախագծեր, որոնք չափում էին որոշ տվյալներ ներբեռնելու համար պահանջվող ժամանակը և դրա հիման վրա հաշվարկում ինտերնետի արագությունը:

Բայց հենց այս նախագծում (Alistair- ի կողմից) ես իմացա Simple Network Management Protocol- ի կամ SNMP- ի մասին: SNMP- ի միջոցով մենք կարող ենք շփվել WiFi երթուղիչի հետ և ստանալ անհրաժեշտ տվյալները անմիջապես դրանից: Հեշտ է, այնպես չէ՞: Իրականում, ոչ! Քանի որ WiFi երթուղիչների օգտագործման տարբեր մոդելներ ունեն տարբեր կարգավորումներ և շատ փորձությունների և սխալների կարիք ունեն, մինչև վերջապես ելքը ստանալը: Մի վախեցեք: Հակիրճ կբացատրեմ այն, ինչ սովորել եմ SNMP- ի և առաջիկա քայլերում հանդիպած դժվարությունների մասին:

Այսպիսով, ծրագիրը նախատեսում է օգտագործել NodeMCU ՝ WiFi երթուղիչին միանալու համար: Ահա վերջնական արդյունքին հասնելու քայլերը.

  • Ուղարկեք հարցում երթուղիչին 'պահանջելով' պահանջվող տվյալները
  • Ստացեք պատասխան երթուղղիչից
  • Վերլուծեք պատասխանը և վերլուծեք դրա համար անհրաժեշտ տվյալները
  • Փոխակերպեք «հում» տվյալները հասկանալի տեղեկատվության
  • Ստեղծեք հաշվիչի համար ինտերնետի արագությանը համաչափ լարում
  • Կրկնել

Հաշվիչը վերահսկելու համար ես կօգտագործեմ DAC կամ Digital to Analog Converter:

Քայլ 2: Այն, ինչ ձեզ հարկավոր կլինի

Բաներ, որոնք ձեզ պետք կգան
Բաներ, որոնք ձեզ պետք կգան
Բաներ, որոնք ձեզ պետք կգան
Բաներ, որոնք ձեզ պետք կգան
Բաներ, որոնք ձեզ պետք կգան
Բաներ, որոնք ձեզ պետք կգան

1x NodeMCU

1x անալոգային հաշվիչի շարժում

1x MPU4725 DAC

1x SPDT անջատիչ

1x 10k պոտենցիոմետր

1x դիմադրություն

Քայլ 3. Լայնամասշտաբ շեղման հոսանքի հաշվարկ

Լայնամասշտաբ շեղման հոսանքի հաշվարկ
Լայնամասշտաբ շեղման հոսանքի հաշվարկ
Լայնամասշտաբ շեղման հոսանքի հաշվարկ
Լայնամասշտաբ շեղման հոսանքի հաշվարկ

Նշում. Անցեք 7 -րդ քայլին իրական կառուցման համար:

Բաց թողեք այս քայլը, եթե արդեն գիտեք ձեր հաշվիչի համար լայնածավալ շեղման հոսանքը: Իմ հաշվիչը դրա մասին ոչ մի հիշատակում չուներ, ուստի ստիպված էի հաշվարկել: Բայց նախ, եկեք արագ տեսնենք, թե ինչպես է գործում նման շարժումը: Այն բաղկացած է մագնիսական դաշտում կախված կծիկից: Երբ հոսանքը հոսում է կծիկի միջով, Ֆարադեյի օրենքի համաձայն, այն ուժ է զգում: Կծիկին թույլատրվում է ազատ պտտվել մագնիսական դաշտում, ինչպես նաև ցուցիչը, որը կցված է կծիկին: Հոսանքի մեծությունը, որը ցուցիչին շարժում է «սանդղակի վերջում», կոչվում է լայնածավալ շեղման հոսանք: Սա նաև առավելագույն հոսանքն է, որը պետք է թույլատրվի հոսել կծիկի միջով:

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

  1. Ընտրեք բարձր դիմադրության արժեք (օրինակ ՝> 100k)
  2. Շարունակաբար միացրեք այն շարժման հետ և դրա վրա կիրառեք փոփոխական լարման միջոցով կաթսա:
  3. Շարունակեք դանդաղ բարձրացնել լարումը, մինչև ցուցիչը չհասնի սանդղակի ավարտին:
  4. Մուլտիմետր օգտագործելով, չափեք հոսանքը: Սա լրիվ մասշտաբի շեղման հոսանք է: (I = 150uA իմ դեպքում)

Մենք օգտագործում ենք DAC, որն ունի ելքային լարման տիրույթ 0 -ից մինչև VCC (3.3V ՝ NodeMCU- ի պատճառով): Սա նշանակում է, որ երբ հաշվիչի վրա կիրառվում է 3.3 Վ, այն պետք է ուղղված լինի սանդղակի վերջում: Դա կարող է տեղի ունենալ, երբ լայնամասշտաբ շեղման հոսանքը հոսում է շղթայի միջով, երբ կիրառվում է 3.3 Վ: Օգտագործելով Օմի օրենքը, 3.3/(լրիվ մասշտաբի շեղման հոսանք) արժեքը տալիս է շարքում տեղադրվող դիմադրության արժեքը:

Քայլ 4. Ստեղծեք SNMP GET հայց

Ստեղծելով SNMP GET հարցում
Ստեղծելով SNMP GET հարցում
Ստեղծելով SNMP GET հարցում
Ստեղծելով SNMP GET հարցում
Ստեղծելով SNMP GET հարցում
Ստեղծելով SNMP GET հարցում

Simple Network Management Protocol (SNMP) ինտերնետային ստանդարտ արձանագրություն է ՝ IP ցանցերում կառավարվող սարքերի մասին տեղեկատվություն հավաքելու և կազմակերպելու և այդ տեղեկատվությունը փոփոխելու համար ՝ սարքի վարքագիծը փոխելու համար: Սովորաբար SNMP- ին աջակցող սարքերը ներառում են կաբելային մոդեմներ, երթուղիչներ, անջատիչներ, սերվերներ, աշխատատեղեր, տպիչներ և այլն: Այս կառուցման համար մենք կապ կհաստատենք մեր WiFi երթուղիչի հետ SNMP- ի միջոցով և կստանանք անհրաժեշտ տվյալները:

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

Խնդրում ենք նկատի ունենալ, որ ամեն ինչ վեցանկյուն է:

SNMP հաղորդագրություն -Իմ դեպքում, ամբողջ հաղորդագրության երկարությունը 40 է (մոխրագույն գույն), որը տասնվեցականի վերածվելու դեպքում 0x28 է:

SNMP Community String - «ՀԱՆՐԱՊԵՏՈ valueԹՅՈՆ» արժեքը գրված է վեցանկյուն ՝ «70 75 62 6C 69 63», որի երկարությունը 6 է (դեղին):

SNMP PDU Type - Իմ դեպքում, հաղորդագրության երկարությունը 27 է (կապույտ) այսինքն 0x1B:

Varbind List Type - Իմ դեպքում, հաղորդագրության երկարությունը 16 է (կանաչ), այսինքն ՝ 0x10:

Varbind Type - Իմ դեպքում, հաղորդագրության երկարությունը 14 է (վարդագույն), այսինքն ՝ 0x0E:

Օբյեկտի նույնացուցիչ -

Ինչպես արդեն նշվեց, SNMP- ով միացված ցանցային սարքերը (օրինակ ՝ երթուղիչներ, անջատիչներ և այլն) պահպանում են համակարգի կարգավիճակի, առկայության և կատարման տեղեկատվության տվյալների բազան ՝ որպես օբյեկտներ, որոնք որոշվում են OID- ով: Դուք պետք է նույնականացնեք ձեր երթուղիչի OID- ները ՝ Upload and Download փաթեթների համար: Դա կարելի է անել ՝ օգտագործելով այսպիսի անվճար MIB դիտարկիչ:

Մուտքագրեք հասցեն որպես 192.168.1.1 և OID որպես.1.3.6.1.2.1.2.2.1.10.x (ifInOctets) կամ.1.3.6.1.2.1.2.2.1.16.x: (ifOutOctets): Ընտրեք Ստացեք գործողություն և կտտացրեք Գնալ: Դուք պետք է տեսնեք OID- ը դրա արժեքի և տեսակի հետ միասին:

Իմ դեպքում, հաղորդագրության երկարությունը 10 է (կարմիր) այսինքն 0x0A: Փոխարինեք արժեքը OID- ով: Այս դեպքում '2B 06 01 02 01 02 02 01 01 10 10'

Վերջ! Ձեր հարցման հաղորդագրությունը պատրաստ է: Մնացած բայթերը պահեք այնպես, ինչպես կան:

Միացնելով երթուղիչի SNMP- ը.

  • Մուտք գործեք ձեր WiFi երթուղիչի էջ ՝ կանխադրված դարպասի միջոցով: Ձեր դիտարկիչում մուտքագրեք 192.168.1.1 և սեղմեք enter: Լռելյայն, օգտվողի անունն ու գաղտնաբառը պետք է լինեն «ադմինիստրատոր»:
  • Ես օգտագործում եմ TP-LINK (TD-W8961N) երթուղիչ: Այս երթուղղիչի համար դուք պետք է գնաք Մուտքի կառավարում> SNMP և ընտրեք «Ակտիվացված»:
  • GET համայնք ՝ հանրային
  • Թակարդի հյուրընկալող ՝ 0.0.0.0

Քայլ 5. GET արձագանքը հասկանալը

Հասկանալ GET արձագանքը
Հասկանալ GET արձագանքը

Կարող եք բաց թողնել այս քայլը, բայց լավ է իմանալ, արդյոք ձեզ անհրաժեշտ է ինչ -որ անսարքությունների լուծում կատարել:

Երբ վերբեռնեք կոդը և գործարկեք այն, կարող եք դիտել պատասխանը Սերիական մոնիտորի միջոցով: Այն պետք է նման լինի, ինչպես ցույց է տրված նկարում: Կան մի քանի բայթ, որոնք դուք պետք է փնտրեք, որոնք ես ընդգծել եմ:

Սկսած 0 -ից, 15 -րդ բայթը պատմում է PDU- ի տեսակը - 0xA2 նշանակում է, որ դա GetResponse է:

48 -րդ բայթը պատմում է տվյալների տեսակը - 0x41 նշանակում է, որ տվյալների տեսակը Counter է:

49 -րդ բայթը պատմում է տվյալների երկարությունը. 0x04 նշանակում է, որ տվյալները 4 բայթ են:

Բայթ 50, 51, 52, 53 պարունակում է տվյալները:

Քայլ 6: Թվային անալոգային փոխարկիչ (DAC)

Թվային անալոգային փոխարկիչ (DAC)
Թվային անալոգային փոխարկիչ (DAC)

Միկրոկոնտրոլերները թվային սարքեր են, որոնք ուղղակիորեն չեն հասկանում անալոգային լարումները: Ես օգտագործում եմ անալոգային հաշվիչ, որը որպես մուտքի կարիք ունի փոփոխական լարման: Բայց միկրոկոնտրոլերը կարող է պարզապես թողարկել HIGH (3.3V NodeMCU- ի դեպքում) և LOW (0V): Այժմ դուք կարող եք ասել, թե ինչու պարզապես չօգտագործել PWM- ը: Այն չի աշխատի, քանի որ հաշվիչը կցուցադրի միայն միջին արժեքը:

Ես օգտագործում եմ MCP4725 DAC ՝ փոփոխական լարում ստանալու համար: Դա 12-բիթանոց DAC է, այսինքն ՝ պարզ բառերով, այն 0-ից 3.3 Վ կբաժանի 4096 (= 2^12) մասի: Բանաձեւը կլինի 3.3/4096 = 0.8056 մՎ: Սա նշանակում է, որ 0 -ը համապատասխանում է 0V- ին, 1 -ը `0.8056mV- ին, 2 -ը` 1.6112mV- ին,….., 4095 -ը `3.3V- ին:

Ինտերնետի արագությունը «քարտեզագրվելու» է «0 -ից 7 մբիթ / վրկ» -ից մինչև «0 -ից 4095», այնուհետև այս արժեքը կտրվի DAC- ին ՝ ելք թողնելու համար, որը համաչափ կլինի ինտերնետի արագությանը:

Քայլ 7: Համագումար

Վեհաժողովը
Վեհաժողովը
Վեհաժողովը
Վեհաժողովը
Վեհաժողովը
Վեհաժողովը
Վեհաժողովը
Վեհաժողովը

Կապերը շատ պարզ են: Սխեման կցված է այստեղ:

Ես նախագծեցի և տպեցի սանդղակը: Վերինը ներբեռնման արագության համար է, իսկ ստորինը `բեռնման արագության: Նոր սանդղակը սոսնձեցի հնի վրա:

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

Քայլ 8. Կոդավորման ժամանակը

Կոդավորման ժամանակը
Կոդավորման ժամանակը
Կոդավորման ժամանակը
Կոդավորման ժամանակը
Կոդավորման ժամանակը
Կոդավորման ժամանակը

Կոդը կցված է այստեղ: Ներբեռնեք և բացեք այն Arduino IDE- ում: Տեղադրեք MCP4725 գրադարանը Adafruit- ից:

Վերբեռնելուց առաջ ՝

  1. Մուտքագրեք ձեր WiFi SSID- ը և գաղտնաբառը
  2. Մուտքագրեք սանդղակում նշված բեռնման և ներբեռնման առավելագույն արագությունը:
  3. Ներբեռնման, ինչպես նաև փաթեթներ վերբեռնելու հարցում փոփոխությունների կատարումը:
  4. Սերիական մոնիտորի վրա պատասխանը դիտելու համար չմեկնաբանեք 165 տողը:

Հպեք վերբեռնումին:

Քայլ 9: Վայելեք:

Լիցքավորեք այն և վայելեք, թե ինչպես է ասեղը պարում շուրջը, երբ ինտերնետում եք զբոսնում:

Շնորհակալ եմ մինչև վերջ հավատարիմ մնալու համար: Հուսով եմ, որ բոլորդ սիրում եք այս նախագիծը և ինչ -որ նոր բան սովորեցիք այսօր: Տեղեկացրեք ինձ, եթե դուք ինքներդ եք պատրաստում մեկին: Բաժանորդագրվեք իմ YouTube ալիքին ավելի շատ նման նախագծերի համար:

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