Բովանդակություն:
Video: ESP8266 Ուղղակի տվյալների հաղորդակցություն. 3 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Ներածություն
Arduinos- ի և nRF24l01 մոդուլների հետ որոշ նախագծեր կատարելիս ես մտածում էի ՝ կարո՞ղ եմ արդյոք ջանքեր խնայել ՝ փոխարենը օգտագործելով ESP8266 մոդուլը: ESP8266 մոդուլի առավելությունն այն է, որ դրա մեջ կա միկրո վերահսկիչ, ուստի լրացուցիչ Arduino տախտակի կարիք չկա: Բացի այդ, ESP8266- ի հիշողության չափը շատ ավելի մեծ է և արագության առումով ESP8266- ը աշխատում է առավելագույնը 160 ՄՀց արագությամբ `Arduino- ի 16 ՄՀց -ի փոխարեն: Իհարկե, կան որոշ բացասական կողմեր:
ESP8266- ն աշխատում է միայն 3.3 Վ լարման վրա, ունի ավելի քիչ կապում և բացակայում է Arduino- ի գեղեցիկ անալոգային մուտքերը (այն ունի մեկ, բայց միայն 1.0 Վ լարման համար և ոչ 3.3 Վ): Բացի այդ, Arduino + nRF24l01- ի համար կան շատ այլ կոդային օրինակներ, այնուհետև կան ESP8266- ի համար, հատկապես, երբ խոսքը վերաբերում է տվյալների ուղղակի փոխանցմանը:
Այսպիսով, հաշվի առնելով նախագիծը, ես ուսումնասիրեցի երկու ESP8266- ի միջև արագ և թեթև տվյալների փոխանցման թեման ՝ առանց WWW և HTTP նյութերի:
Համացանցում օրինակներ փնտրելիս (ստորև բերված ծածկագրի մեծ մասը ցանցից ընտրվել է տարբեր վայրերում) ես հանդիպեցի բազմաթիվ հարցերի, թե ինչպես կարելի է իրականացնել տվյալների ուղղակի փոխանցում ՝ առանց «այդպես վարվել» գեղեցիկ օրինակների: Կա մի օրինակ կոդ, բայց հիմնականում հարցով, թե ինչու այն չի աշխատում:
Այսպիսով, որոշ ընթերցումներից և հասկանալուց հետո ես ստեղծեցի ստորև բերված օրինակները, որոնք թույլ են տալիս տվյալների արագ և պարզ փոխանցում երկու ESP8266- ի միջև:
Քայլ 1: Սահմաններ և նախապատմություններ (TCP ընդդեմ UDP)
Այնտեղ հասնելու համար որոշ սահմաններ պետք է հստակեցվեն `համեմատած nRF24l01- ի հետ:
ESP8266- ը Arduino միջավայրում օգտագործելու համար օգտագործելու հիմնական գրադարանը ESP8266WiFi.h է: Կարող են տարբեր լինել, բայց օրինակների մեծ մասն օգտագործում է նշվածը: Սա օգտագործելիս պետք է ձեր հաղորդակցությունը հասցնել WiFi մակարդակի:
Այսպիսով, հաղորդակցվելու համար պետք է լինի առնվազն մուտքի կետ (AP) / սերվեր և հաճախորդ: AP- ն տալիս է ցանցի անունը և IP հասցեները, և հաճախորդը կկապվի այս սերվերի հետ:
Այսպիսով, համեմատեք nRF24l01- ը, որտեղ երկու ծայրերում ծածկագիրը քիչ թե շատ նույնն է (բացառությամբ փոխանցման ալիքների) ESP8266 ծածկագիրը սկզբունքորեն տարբերվում է, քանի որ մեկը կազմաձևված է որպես AP, իսկ մյուսը `որպես հաճախորդ:
Հաջորդ թեման այն է, որ NRF24l01- ին որոշ բայթ ուղարկելու փոխարեն ESP8266- ի փոխանցման արձանագրությունները պետք է պահպանվեն:
Կան երկու ընդհանուր օգտագործվող արձանագրություններ ՝ TCP և UDP:
TCP (Transmission Control Protocol) արձանագրություն է, որը թույլ է տալիս առանց կորուստների փոխանցել սերվերի և հաճախորդի միջև: Արձանագրությունը ներառում է «ձեռքսեղմում» (երկու կողմերի միջև ուղարկված բազմաթիվ դրոշներ և պատժամիջոցներ) և փաթեթների համարակալում և հայտնաբերում `կորած փաթեթների նույնականացման և վերահաղորդման համար: Բացի այդ, օգտագործելով այս բոլոր ձեռքսեղմումները, արձանագրությունը կանխում է տվյալների կորուստը ցանցում միաժամանակ ուղարկվող բազմաթիվ փաթեթների պատճառով: Տվյալների փաթեթները սպասում են մինչև դրանց ստացումը:
UDP- ին (User Datagram Protocol) բացակայում են ձեռքսեղմումների, փաթեթների համարակալման և վերահաղորդման բոլոր հնարավորությունները: Հետևաբար, դրա վերևն ավելի փոքր է, և կարիք չկա, որ բոլոր ձեռքսեղմումները կապ պահպանեն: UDP- ն ներառում է որոշ հիմնական սխալների հայտնաբերում, բայց ոչ ուղղում (կոռումպացված փաթեթը պարզապես ընկնում է): Տվյալները ուղարկվում են ՝ առանց իմացության, եթե ստացող կողմն ազատ է տվյալներ ստանալու համար: Միևնույն ժամանակ, բազմաթիվ փաթեթներ կարող են բախվել, քանի որ յուրաքանչյուր կողմ տվյալներն ուղարկում է անհրաժեշտության դեպքում: Բաց թողնելով ձեռքսեղմումները, կա UDP- ի ևս մեկ գեղեցիկ առանձնահատկություն ՝ «բազմակողմանի» և «հեռարձակում»: «Multicast» դեպքում տվյալների փաթեթներն ուղարկվում են անդամների կանխորոշված խմբին, իսկ «հեռարձակման» դեպքում տվյալների փաթեթներն ուղարկվում են բոլոր միացված անդամներին: Սա զգալիորեն նվազեցնում է տվյալների փոխանցումը մի քանի անդամների կողմից ստացվող հոսքերի դեպքում (օրինակ ՝ տեսաուղերձ ուղարկելով բազմաթիվ ընդունիչներին կամ ընթացիկ ժամանակը մի քանի միացված սարքերի ուղարկելով):
Youtube- ում կան մի քանի լավ տեսանյութեր, որոնք դա ավելի լավ կբացատրեն:
Այսպիսով, տվյալներ ուղարկելիս կարևոր է իմանալ ձեր կարիքները.
- չկոռումպացված տվյալներ, բազմաթիվ հասակակիցների կառավարում ձեռքսեղմումներով → TCP
- իրական ժամանակի տվյալներ, արագ միացում → UDP
Ես առաջին անգամ սկսեցի TCP- ի վրա հիմնված հաղորդակցության իրականացմամբ (մեկ սերվերի և մեկ հաճախորդի միջև): Փորձարկելիս ես փոխանցման հետ կապված խնդիրներ ունեի: Սկզբում տվյալները արագ փոխանակվեցին, ապա որոշ ժամանակ անց արագությունը կտրուկ նվազեց: Ես եզրակացրեցի, որ սա TCP մոտեցման (որը սխալ էր) բնորոշ խնդիրն էր, ուստի այն փոխվեց UDP- ի հիման վրա լուծման: Վերջապես երկուսս էլ մոտեցա աշխատելու: Այսպիսով, երկուսն էլ լուծում կտրամադրվեն:
Ստորև ներկայացված էսքիզները TCP- ի և UDP- ի համար ընդհանուր բան ունեն.
- անկախ են գոյություն ունեցող WiFi ցանցից: Այսպիսով, այն կաշխատի ինտերնետից և միացված երթուղիչներից շատ հեռու:
- ուղարկում են ASCII- ի տվյալները `տպելու սերիական մոնիտորի միջոցով:
- ուղարկում են millis () ֆունկցիայի միջոցով ստացված տվյալները ՝ փոխանցման արագությունը վերլուծելու համար:
- չեն փորձարկվում բազմաթիվ հաճախորդների համար (հենց հիմա ցանցը ստեղծելու սարքավորում ունենալու պատճառով)
Քայլ 2: Սարքավորումներ
Ամբողջ կազմաձևը ստուգելու համար ես օգտագործեցի երկու ESP8266 մոդուլ: Մեկ մոդուլը ESP-01 + USB-to-UART ադապտեր է: Մյուս մոդուլը ESP-12- ի վրա հիմնված մոդուլ է, որը ներառում է USB միացում, Լարման կարգավորիչ և որոշ զվարճալի իրեր, ինչպիսիք են անջատիչները, LDR- ն և բազմագույն LED- ը:
ESP-01- ի USB-to-UART մոդուլը պետք է մի փոքր փոփոխվեր, որպեսզի այն կարողանար օգտագործել որպես ծրագրավորող (կրկին Ysube- ը ՝ Csongor Varga- ի կողմից):
Էսքիզները գործարկելու համար հարկավոր է տեղադրել ESP8266 գրադարանները (ինչպես նկարագրված է ինտերնետի շատ վայրերում): Երկու դեպքում էլ (TCP և UDP) կա սերվեր և հաճախորդ յուրաքանչյուրի ուրվագիծ: Որ էսքիզը բեռնված է, թե որ մոդուլին էական չէ:
Շնորհակալագրեր
Ինչպես նշվեց, էսքիզները հիմնված են բազմաթիվ կտորների վրա, որոնք ես գտել եմ համացանցում: Այլևս չեմ հիշում, թե որտեղից ինչ գտա, և որն է սկզբնական ծածկագիրը կամ ինչ փոխեցի: Ուստի ես պարզապես ուզում էի շնորհակալություն հայտնել ընդհանրապես այնտեղ գտնվող մեծ համայնքին ՝ բոլոր հիանալի օրինակները հրապարակելու համար:
Քայլ 3: Էսքիզներ
Օրենսգիրքը բաղկացած է երկու էսքիզներից (ինչպես բացատրված է), սերվերի էսքիզ և հաճախորդի ուրվագիծ ՝ յուրաքանչյուրի համար TCP և UDP:
Խորհուրդ ենք տալիս:
Ինչպես կատարել խոնավության և ջերմաստիճանի իրական ժամանակի տվյալների գրանցիչ Arduino UNO- ի և SD- քարտի միջոցով: - DHT11 Տվյալների գրանցման մոդելավորում Proteus- ում. 5 քայլ
Ինչպես կատարել խոնավության և ջերմաստիճանի իրական ժամանակի տվյալների գրանցիչ Arduino UNO- ի և SD- քարտի միջոցով DHT11 Տվյալների գրանցման մոդելավորում Proteus- ում. Ներածություն. Բարև, սա Liono Maker- ն է, ահա YouTube- ի հղումը: Մենք ստեղծում ենք ստեղծագործական նախագիծ Arduino- ի հետ և աշխատում ներկառուցված համակարգերի վրա: Data-Logger: Տվյալների գրանցիչ (նաև տվյալների գրանցիչ կամ տվյալների գրանցիչ) էլեկտրոնային սարք է, որը ժամանակի ընթացքում գրանցում է տվյալները
Geeetech խորհուրդը դեպի ազնվամորի Պի ՝ սովորական USB մալուխի միջոցով ՝ ուղղակի լարով. 4 քայլ
Geeetech Board- ը ազնվամորի Pi- ի միջոցով ՝ սովորական USB մալուխի միջոցով `ուղղակի լարով. Այս ուղեցույցը ցույց կտա, թե ինչպես պատրաստել հատուկ USB JST XH 4-Pin մալուխ, այնպես որ կարող եք անմիջապես միացնել ձեր Raspberry Pi- ն կամ այլ USB սարք Geeetech տպիչի Geeetech 2560 rev 3 տախտակին, ինչպես A10- ը: Այս մալուխը միանում է հարմար պարալարին
Տվյալների ձեռքբերման և տվյալների տեսողականացման համակարգ MotoStudent Electric Racing Bike– ի համար ՝ 23 քայլ
Տվյալների ձեռքբերման և տվյալների տեսողականացման համակարգ MotoStudent Electric Racing Bike- ի համար. Տվյալների ձեռքբերման համակարգն ապարատային և ծրագրային ապահովման հավաքածու է, որը աշխատում է միասին ՝ արտաքին սենսորներից տվյալներ հավաքելու, դրանք պահելու և հետագայում մշակելու համար, որպեսզի դրանք գրաֆիկականորեն պատկերացվեն և վերլուծվեն, թույլ տալով ինժեներներին կատարել
Իմ մեքենայի AC- ի ուղղակի վերահսկում. 3 քայլ
Իմ մեքենայի AC- ի ուղղակի վերահսկում. Իմ մեքենայի համակարգչի ավտոմատացման նախագծին նախապատրաստվելիս ես պետք է փոխարինեի oem վերահսկիչը միացված անջատիչով: Ի վերջո, համակարգիչը ինքնաբերաբար փոխում է ինձ համար, բայց առայժմ ինձ անհրաժեշտ էր մեկուսացնել AC կոմպրեսորի լարերը և խտացնել
RTL-SDR Ուղղակի նմուշառման ռեժիմ ՝ 3 քայլ
RTL-SDR Ուղղակի նմուշառման ռեժիմ. Ուղղակի նմուշառման ժամանակ մենք ազդանշան ենք կիրառում անմիջապես դոնգլերի ուղեղի վրա ՝ արդյունավետորեն շրջանցելով