Բովանդակություն:
- Քայլ 1: Planրագիրը
- Քայլ 2: Այն, ինչ ձեզ հարկավոր կլինի
- Քայլ 3. Լայնամասշտաբ շեղման հոսանքի հաշվարկ
- Քայլ 4. Ստեղծեք SNMP GET հայց
- Քայլ 5. GET արձագանքը հասկանալը
- Քայլ 6: Թվային անալոգային փոխարկիչ (DAC)
- Քայլ 7: Համագումար
- Քայլ 8. Կոդավորման ժամանակը
- Քայլ 9: Վայելեք:
Video: Ինտերնետ արագաչափ ՝ 9 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Հնդկաստանում լիակատար արգելափակումով, ամեն ինչ, ներառյալ փոստի ծառայությունները, փակվել են: Ոչ 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 -րդ քայլին իրական կառուցման համար:
Բաց թողեք այս քայլը, եթե արդեն գիտեք ձեր հաշվիչի համար լայնածավալ շեղման հոսանքը: Իմ հաշվիչը դրա մասին ոչ մի հիշատակում չուներ, ուստի ստիպված էի հաշվարկել: Բայց նախ, եկեք արագ տեսնենք, թե ինչպես է գործում նման շարժումը: Այն բաղկացած է մագնիսական դաշտում կախված կծիկից: Երբ հոսանքը հոսում է կծիկի միջով, Ֆարադեյի օրենքի համաձայն, այն ուժ է զգում: Կծիկին թույլատրվում է ազատ պտտվել մագնիսական դաշտում, ինչպես նաև ցուցիչը, որը կցված է կծիկին: Հոսանքի մեծությունը, որը ցուցիչին շարժում է «սանդղակի վերջում», կոչվում է լայնածավալ շեղման հոսանք: Սա նաև առավելագույն հոսանքն է, որը պետք է թույլատրվի հոսել կծիկի միջով:
Շատ ավելի շատ բաներ են կատարվում, բայց դա բավական է մեր արածի համար: Այժմ մենք ունենք շարժում: Այն կարող է օգտագործվել որպես վոլտմետր ՝ դրանով շարքով բարձր դիմադրություն ավելացնելով կամ որպես ամպաչափ ՝ դրան զուգահեռ ավելացնելով փոքր դիմադրություն: Մենք այն կօգտագործենք որպես վոլտմետր ՝ լարումը համաչափ համացանցի արագությանը ցուցադրելու համար: Այսպիսով, մենք պետք է հաշվարկենք դիմադրությունը, որը պետք է ավելացվի շարքում: Դրա համար մենք նախ պետք է հաշվարկենք շեղման ամբողջ մասշտաբի հոսանքը:
- Ընտրեք բարձր դիմադրության արժեք (օրինակ ՝> 100k)
- Շարունակաբար միացրեք այն շարժման հետ և դրա վրա կիրառեք փոփոխական լարման միջոցով կաթսա:
- Շարունակեք դանդաղ բարձրացնել լարումը, մինչև ցուցիչը չհասնի սանդղակի ավարտին:
- Մուլտիմետր օգտագործելով, չափեք հոսանքը: Սա լրիվ մասշտաբի շեղման հոսանք է: (I = 150uA իմ դեպքում)
Մենք օգտագործում ենք DAC, որն ունի ելքային լարման տիրույթ 0 -ից մինչև VCC (3.3V ՝ NodeMCU- ի պատճառով): Սա նշանակում է, որ երբ հաշվիչի վրա կիրառվում է 3.3 Վ, այն պետք է ուղղված լինի սանդղակի վերջում: Դա կարող է տեղի ունենալ, երբ լայնամասշտաբ շեղման հոսանքը հոսում է շղթայի միջով, երբ կիրառվում է 3.3 Վ: Օգտագործելով Օմի օրենքը, 3.3/(լրիվ մասշտաբի շեղման հոսանք) արժեքը տալիս է շարքում տեղադրվող դիմադրության արժեքը:
Քայլ 4. Ստեղծեք 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 արձագանքը հասկանալը
Կարող եք բաց թողնել այս քայլը, բայց լավ է իմանալ, արդյոք ձեզ անհրաժեշտ է ինչ -որ անսարքությունների լուծում կատարել:
Երբ վերբեռնեք կոդը և գործարկեք այն, կարող եք դիտել պատասխանը Սերիական մոնիտորի միջոցով: Այն պետք է նման լինի, ինչպես ցույց է տրված նկարում: Կան մի քանի բայթ, որոնք դուք պետք է փնտրեք, որոնք ես ընդգծել եմ:
Սկսած 0 -ից, 15 -րդ բայթը պատմում է PDU- ի տեսակը - 0xA2 նշանակում է, որ դա GetResponse է:
48 -րդ բայթը պատմում է տվյալների տեսակը - 0x41 նշանակում է, որ տվյալների տեսակը Counter է:
49 -րդ բայթը պատմում է տվյալների երկարությունը. 0x04 նշանակում է, որ տվյալները 4 բայթ են:
Բայթ 50, 51, 52, 53 պարունակում է տվյալները:
Քայլ 6: Թվային անալոգային փոխարկիչ (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- ից:
Վերբեռնելուց առաջ ՝
- Մուտքագրեք ձեր WiFi SSID- ը և գաղտնաբառը
- Մուտքագրեք սանդղակում նշված բեռնման և ներբեռնման առավելագույն արագությունը:
- Ներբեռնման, ինչպես նաև փաթեթներ վերբեռնելու հարցում փոփոխությունների կատարումը:
- Սերիական մոնիտորի վրա պատասխանը դիտելու համար չմեկնաբանեք 165 տողը:
Հպեք վերբեռնումին:
Քայլ 9: Վայելեք:
Լիցքավորեք այն և վայելեք, թե ինչպես է ասեղը պարում շուրջը, երբ ինտերնետում եք զբոսնում:
Շնորհակալ եմ մինչև վերջ հավատարիմ մնալու համար: Հուսով եմ, որ բոլորդ սիրում եք այս նախագիծը և ինչ -որ նոր բան սովորեցիք այսօր: Տեղեկացրեք ինձ, եթե դուք ինքներդ եք պատրաստում մեկին: Բաժանորդագրվեք իմ YouTube ալիքին ավելի շատ նման նախագծերի համար:
Խորհուրդ ենք տալիս:
Համստեր անիվի արագաչափ ՝ 11 քայլ (նկարներով)
Hamster Wheel Tachometer. Մոտ երեք տարի առաջ եղբորորդիները ձեռք բերեցին իրենց առաջին ընտանի կենդանուն ՝ Նագեթ անունով համստեր: Հետաքրքրասիրությունը Նուգետի վարժությունների առօրյայի շուրջ սկսեց մի նախագիծ, որը երկար ժամանակ տևեց Նագեթը (RIP): Այս հրահանգը ուրվագծում է ֆունկցիոնալ վարժությունների անիվի օպտիկական պտուտակ
DIY հեծանիվի արագաչափ ՝ 5 քայլ (նկարներով)
DIY հեծանիվի արագաչափ. Ես ձեզ ցույց կտամ, թե ինչպես կառուցել հեծանիվի արագաչափ: Այն ցույց է տալիս ձեր արագությունը, միջին արագությունը, ջերմաստիճանը, ճանապարհորդության ժամանակը և ընդհանուր հեռավորությունը: Դուք կարող եք փոխել այն, օգտագործելով կոճակը: Բացի այդ, արագությունը ցուցադրվում է տախոմետրով: Ես այն կառուցեցի, քանի որ ես
GPS արագաչափ ՝ 4 քայլ (նկարներով)
GPS արագաչափ. Իմ ծառայողական մեքենան, որը ես սովորաբար վարում եմ, հակված է ունենալ " փոքր " ժամանակ առ ժամանակ խնդիրներ են առաջանում, արագաչափը վարելիս ընկնում է մինչև 0 կմ/ժ (որոշ ժամանակ անց այն նորից վերսկսվում է): Սովորաբար սա մեծ խնդիր չէ, քանի որ եթե մեքենա վարել գիտես
Աշխատող RC ավտոմեքենայի արագաչափ ՝ 4 քայլ (նկարներով)
Աշխատող RC ավտոմեքենայի արագաչափ. Սա կարճ նախագիծ է, որը ես ստեղծեցի որպես թեթև Land Rover- ի ավելի մեծ RC կառուցման մաս: Ես որոշեցի, որ ինձ դուր է գալիս, որ աշխատասեղանի վահանակում աշխատող արագաչափ կա, բայց ես գիտեի, որ սերվոն այն չի կտրի: Կար միայն մեկ ողջամիտ տարբերակ ՝ դ
DIY ցիկլի արագաչափ. 6 քայլ (նկարներով)
DIY ցիկլերի արագաչափ Գաղափարն է չափել իմ հեծանիվի անիվի անկյունային արագությունը: Այսպիսով, իմանալով տրամագիծը և բոլոր ժամանակների մաթեմատիկական լեգենդը