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

Ինչպես օգտագործել Bluetooth (BLE) ESP32- ով ՝ 3 քայլ
Ինչպես օգտագործել Bluetooth (BLE) ESP32- ով ՝ 3 քայլ

Video: Ինչպես օգտագործել Bluetooth (BLE) ESP32- ով ՝ 3 քայլ

Video: Ինչպես օգտագործել Bluetooth (BLE) ESP32- ով ՝ 3 քայլ
Video: Ինչպես միացնել ESP32 ներկառուցված Bluetooth-ը սմարթֆոնին 2024, Նոյեմբեր
Anonim

#####ՆՇՈՒՄ#####

Սույն Հրահանգներում ներկայացված մեթոդը հին է և հնացած: Դիտեք այս տեսանյութը վերջին մեթոդի համար:

###############

Մինչ ESP32- ը պարծենում է ընդարձակ գործառույթների ցուցակով (Վիքիպեդիա), սակայն ամենամեծ ուշադրությունը գրավող ներկառուցված bluetooth v4.2- ը BLE աջակցությամբ է: Բայց այդ հայտարարությունը կարող է ապակողմնորոշիչ լինել, քանի դեռ սարքավորումն այնտեղ է, Bluetooth- ի օգտագործման ծրագրային ապահովումը բացակայում է: (Մշակման փուլում է)

Նրանց համար, ովքեր չգիտեն, թե ինչ է BLE- ն, այն նշանակում է Bluetooth Low Energy: Դա bluetooth արձանագրություն է, որը զգալիորեն նվազեցնում է էներգիայի սպառումը ՝ համեմատած «դասական» Bluetooth- ի հետ:

Այս ցուցումներում ես ձեզ ցույց կտամ, թե ինչպես կարող եք օգտագործել ձեր տրամադրության տակ եղած սահմանափակ (ծրագրային) ռեսուրսները ՝ ESP32 տախտակից տվյալները ձեր հեռախոսին BLE- ով ուղարկելու համար:

Մի քանի հերքում…

Այս ուղեցույցի հետագա ընթացքը շարունակելուց առաջ ես պետք է նշեմ մի քանի ուշադրության:

Նշում 1. Երբ ասում եմ, որ Bluetooth- ի աջակցությունը դեռ հասանելի չէ, նկատի ունեմ arduino- ի զարգացման միջավայրում:

Աջակցությունը շատ լավ կարող է հասանելի լինել պաշտոնական SDK- ում, ինչպես նաև IDF- ում, բայց ես դրանց համար ոչ մի իրավասու հրահանգ չեմ գտել:

Նշում 2. Այն մեթոդը, որը ես օգտագործում եմ, շատ լուծում է և ոչ թե այն, թե իդեալական կերպով ինչպես է ենթադրվում, որ BLE- ն պետք է աշխատի: Գրադարանն աջակցում է BLE- ում ծառայություններ ստեղծելու համար `այստեղ arduino միջավայրի համար չէ:

Միակ բանը, որ դուք կարող եք անել հուսալիորեն, ստեղծել է Փարոս, որը գովազդում է իր անունը: YouTube- ի մեկնաբանության մեջ այն շատ էլեգանտ էր. «LOL, դաժան կոտրում: Բայց ի՞նչ կարող ես անել»:

Նշում 3. Տվյալների միակ տեսակը, որ կարող եք ուղարկել, տողն է:

Դուք կարող եք շատ լավ որոշել ծածկագրել և վերծանել այլ տիպի տվյալներ տողից և դրանից, բայց դա դուրս է այս ուղեցույցի շրջանակներից:

Քայլ 1: Կառուցվածքի օրինակը

Image
Image
Օրինակ կառուցելը
Օրինակ կառուցելը
Օրինակ կառուցելը
Օրինակ կառուցելը
Օրինակ կառուցելը
Օրինակ կառուցելը

Եթե դուք պարզապես այստեղ եք բացատրության համար, ապա կարող եք բաց թողնել այս քայլը, բայց դրա միջով անցնելը կարող է ձեզ մի փոքր ավելի հստակություն հաղորդել:

Սկզբում ես պատրաստվում եմ կառուցել օրինակելի նախագիծ, այնուհետև կփորձեմ բացատրել, թե ինչպես է այն աշխատում և ինչպես կարող եք կրկնել Bluetooth հաղորդակցությունը: Մենք կառուցելու ենք շարժական ջերմաստիճանի տվիչ, որը ուղարկում է ձեր սմարթֆոնին կենդանի հոսք: Կառուցվածքը կարող է օրեր շարունակ աշխատել մեկ li-po- ով և հեշտությամբ ցուցադրում է BLE- ի առավելությունները:

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

Միակ սարքավորումը, որն անհրաժեշտ է, ESP32 տախտակն է և թվային ջերմաստիճանի տվիչը: Իմ տախտակն աջակցում է արտաքին մարտկոցին, այնպես որ ես օգտագործում եմ 3.7 վ լի-պո, որը ես փրկել եմ հին սարքից `այս նախագիծը դյուրակիր դարձնելու համար:

Սարքավորումներ

Temperatureերմաստիճանի տվիչի միացումները պարզ են: Կարմիր մետաղալարը միանում է 3.3 վ -ին, սևը `գետնին (gnd), դեղինը` GPIO 2 -ին, որն իմ տախտակի վրա նշված է որպես D9: Կարմիր և դեղին մետաղալարերի միջև միացրեք 4.7 կիլոմետրանոց դիմադրություն: Ես չեմ օգտագործում ռեզիստորը, փոխարենը ես օգտագործում եմ 3 պինով միացվող տերմինալ, որն ուղեկցվել է իմ տվիչով: Այն ունի ներկառուցված ձգման դիմադրություն:

Li-po- ն իրոք պետք է միացված լինի JST միակցիչով, բայց ես չէի կարող անհանգստանալ այն գնելուց, այնպես որ ես կոշիկավորեցի մի քանի (իգականից իգական) մալուխների միակցիչի մեջ և մեկ այլ զույգ զոդեցի մարտկոցի տերմինալներին: Սա ապահովում է հուսալի միացում և ժամանակավոր անջատիչ:

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

Ծրագրային ապահովում

Եթե դուք արդեն չունեք arduino IDE- ն տեղադրված, ապա ներբեռնեք այս հղումը: Arduino ծրագրակազմը լռելյայն չի պարունակում տարբեր ESP32 տախտակների տախտակի սահմանումները: Որպեսզի նրանք գնան այս հղմանը և ֆայլերը ներբեռնեն zip- ով: Դուք պետք է դրանք բացեք այս վայրից ՝

C:/Users // Փաստաթղթեր/Arduino/hardware/espserrif/ESP32

Որտեղ է ձեր օգտվողի անունը ձեր համակարգչի վրա: Համոզվեք, որ տարբեր ֆայլերը հասանելի են ESP32 թղթապանակի տակ և այլ պանակի տակ չեն:

Այժմ, եթե սկսեք arduino ծրագրակազմը և գնաք դեպի գործիքներ-> տախտակներ, ներքև ոլորվելիս պետք է տեսնեք տարբեր ESP32 տախտակներ:

Digitalերմաստիճանի թվային տվիչների մեծամասնությունը օգտագործում է OneWire արձանագրությունը `միկրոկարգավորիչների հետ հաղորդակցվելու համար, ուստի մենք պետք է ձեռք բերենք գրադարանը: Գնալ դեպի ուրվագիծ-> ներառել գրադարան-> կառավարել գրադարանները և որոնել էլեկտրալարեր և տեղադրել գրադարանը, որն ի դեպ չափազանց շատ հեղինակներ են: Ձեզ անհրաժեշտ չէ onireire հանգույցը: Անտեսել այն:

Այժմ կարող եք ներբեռնել և բացել այս քայլին կից ծածկագիրը (temperature-example.ino):

Եթե դուք ինձանից տարբերվող սենսոր եք օգտագործում, ապա ստիպված կլինեք համապատասխանաբար փոխել կոդը: Փոխարինեք ծածկագիրը getTemp () - ի ներքո: Պարզապես վերադարձեք վերջնական ջերմաստիճանը տեսքով

Վերադարձ;

Որտեղ է ջերմաստիճանը պարունակող բոցը:

Միացրեք տախտակը, գործիքների տակից ընտրեք ճիշտ տախտակն ու նավահանգիստը և սեղմեք վերբեռնումը:

Եթե ծածկագիրը մերժում է վերբեռնումը, անջատեք սենսորը և միացրեք GPIO 0 -ն գետնին: Վերբեռնումից հետո վերականգնել կապերը:

Ձեր ESP- ն այժմ պետք է գոռա ձեր սուրճի ջերմաստիճանը աշխարհին, բայց ձեզ հարկավոր է մեկը, ով կարող է դա հասկանալ:

Android հավելված

Ներողություն iPhone- ի օգտվողների համար (… իրականում ոչ):

Ներբեռնեք apk- ն այստեղից և տեղադրեք այն: Youրագիրը գործարկելիս ձեզ կդիմավորեն շատ պարզ ինտերֆեյսով:

Եթե դուք ստանում եք «գովազդ չի աջակցվում» գրությամբ սխալի հաղորդագրություն, կտտացրեք «OK» և անտեսեք այն, բայց եթե «BLE- ն չի ապահովվում» հաղորդագրություն ստանաք, ապա ձեր հեռախոսը չունի Bluetooth 4.0 կամ ավելի բարձր և չի կարող գործարկվել: հավելվածը:

Համոզվեք, որ ձեր հեռախոսի Bluetooth- ը միացված է և կտտացրեք «Սկսել սկանավորումը», քանի դեռ esp- ը գտնվում է տիրույթում և միացված է, դուք պետք է որոշ ջերմաստիճանի արժեք ստանաք:

Հնարավոր սխալներ.

  • -1000:: Սա նշանակում է, որ ձեր սարքը չի կարող գտնել ESP- ը: համոզվեք, որ Bluetooth- ը միացված է և փորձեք վերագործարկել ESP- ը:
  • SNA:: Սա նշանակում է, որ ձեր հեռախոսը տվյալներ է ստանում ESP- ից, բայց ESP- ն ինքնին չի կարող գտնել ջերմաստիճանի տվիչ GPIO 2. Համոզվեք, որ միացումներն ապահով են, տեսեք, արդյոք դուք օգտագործում եք ճիշտ արժեքի ռեզիստոր: Կրկնակի ստուգեք ձեր տախտակի սխեմաներով, որ դուք միացված եք GPIO 2 -ին և ոչ թե որպես D2 նշված քորոց:

Քայլ 2: Բացատրություն

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

Օրինակ ՝ «Եղանակային կայան» անունով սարքը կարող է սպասարկել դրա տակ ՝ «peratերմաստիճանը», «Խոնավությունը» և «Քամին»: Երբ ձեր սմարթֆոնի պես մեկ այլ BLE սարք փնտրում է սարքեր, այն կտեսնի Եղանակային կայանը, և երբ այն միանա դրան, այն կկարողանա ստանալ տարբեր հոսքերի համապատասխան տվյալների հոսքերը:

Գրադարանները (ESP32- ի համար), որոնք այժմ մեզ հասանելի են, թույլ են տալիս ստեղծել մի փարոս, որը մյուսները կարող են հայտնաբերել, բայց դա դրա չափն է: Մենք չենք կարող ծառայություններ ստեղծել և ոչ մի սարք չի կարող միանալ դրան:

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

ble.begin (beaconMsg); // beaconMsg- ը գովազդվող անունն է

Մենք օգտագործում ենք SimpleBLE գրադարանը ՝ ESP ձևաչափով իր անունով փարոս ստեղծելու համար: Այն դեպքում, երբ «ESP» - ը անվանման սկզբում միշտ մնում է անփոփոխ և փոխարինվում է getValue () ֆունկցիայի կողմից վերադարձված վերջին տվյալներով `յուրաքանչյուր 100 միլիվայրկյանում:

float getValue () {return sensorValue;}

Android ծրագիրը փնտրում է BLE սարքերի անուններ ՝ սկսած «ESP» - ով, երբ գտնվի, այն պառակտում է անունը և միայն վերջից ցուցադրում տվյալները:

Հաղորդակցությունը միայն մեկ ճանապարհ է, ծրագիրը ոչինչ հետ չի ուղարկում:

Քայլ 3: Եզրակացություն

Օրվա վերջում, այս մեթոդը չի կարող փոխարինել պատշաճ կերպով իրականացվող BLE գրադարանին, բայց գուցե բավական լինի որոշ նախագծեր դադարեցնել մինչև BLE- ի ամբողջական աջակցությունը Arduino- ին: Հուսով եմ, որ այս Instructables- ը որոշ չափով օգնեց ձեզ:

ՄԵ B Շնորհակալություն DFRobot.com- ին ՝ այս ապրանքներն ինձ ուղարկելու համար.

  • ESP32 FireBeetle տախտակ
  • FireBeetle Expantion Shield
  • DS18B20 peratերմաստիճանի տվիչ

Վերջերս գտա այս գրադարանը: ReadME- ն պնդում է, որ տվյալներ ստանալու համար կարող եք միանալ այլ BLE սարքերին (Ինքներդ ձեզ գովազդել հնարավոր չէ): Ես չեմ փորձել, բայց եթե հետաքրքրեց, կարող եք ստուգել:

Նախագծի տեսանյութը կարող եք ստուգել ՝ YouTube- ում

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