Բովանդակություն:
Video: Ինչպես օգտագործել Bluetooth (BLE) ESP32- ով ՝ 3 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
#####ՆՇՈՒՄ#####
Սույն Հրահանգներում ներկայացված մեթոդը հին է և հնացած: Դիտեք այս տեսանյութը վերջին մեթոդի համար:
###############
Մինչ 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: Կառուցվածքի օրինակը
Եթե դուք պարզապես այստեղ եք բացատրության համար, ապա կարող եք բաց թողնել այս քայլը, բայց դրա միջով անցնելը կարող է ձեզ մի փոքր ավելի հստակություն հաղորդել:
Սկզբում ես պատրաստվում եմ կառուցել օրինակելի նախագիծ, այնուհետև կփորձեմ բացատրել, թե ինչպես է այն աշխատում և ինչպես կարող եք կրկնել 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- ում
Խորհուրդ ենք տալիս:
Ինչպես ստեղծել Linux Boot Drive (և ինչպես օգտագործել այն). 10 քայլ
Ինչպես ստեղծել Linux Boot Drive (և ինչպես օգտագործել այն). Սա պարզ ներածություն է, թե ինչպես սկսել Linux- ը, մասնավորապես Ubuntu- ն
Ինչպես օգտագործել Debugger- ը ESP32- ում. 11 քայլ (նկարներով)
Ինչպես օգտագործել Debugger- ը ESP32- ի վրա. Երբևէ ցանկացե՞լ եք դիտել ձեր ծածկագրի ներսը `տեսնելու, թե ինչու է այն իրեն պահում այնպես, ինչպես որ է: Ավանդաբար ESP32 նախագծերում դուք պետք է ավելացնեիք անվերջ տպագիր հայտարարություն ՝ փորձելու համար, թե ինչ է կատարվում, բայց կա ավելի լավ միջոց: Վրիպազերծիչ
Ուսումնական ձեռնարկ. Ինչպես օգտագործել ESP32-CAM- ը վիդեո հոսքի վեբ սերվերում `3 քայլ
Ուսումնական ձեռնարկ. Ինչպես օգտագործել ESP32-CAM- ը վիդեո հոսքի վեբ սերվերում. անլար հսկողություն, անլար մոնիտորինգ, QR անլար նույնականացում
Պտտվող կոդավորիչ. Ինչպես է այն աշխատում և ինչպես օգտագործել Arduino- ի հետ. 7 քայլ
Rotary Encoder: Նախ, դուք կտեսնեք որոշ տեղեկություններ պտտվող կոդավորիչի մասին, այնուհետև կսովորեք, թե ինչպես
Ինչպես օգտագործել Mac տերմինալը և ինչպես օգտագործել հիմնական գործառույթները. 4 քայլ
Ինչպես օգտագործել Mac տերմինալը և ինչպես օգտագործել հիմնական գործառույթները. Մենք ձեզ ցույց կտանք, թե ինչպես բացել MAC տերմինալը: Մենք նաև ձեզ ցույց կտանք տերմինալի մի քանի հնարավորություններ, ինչպիսիք են ifconfig- ը, գրացուցակների փոփոխումը, ֆայլերին մուտք գործելը և arp- ը: Ifconfig- ը թույլ կտա Ձեզ ստուգել ձեր IP հասցեն և ձեր MAC գովազդը