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

Պարզ WiFi դեպի BLE (Bluetooth ցածր էներգիայի) կամուրջ. 9 քայլ (նկարներով)
Պարզ WiFi դեպի BLE (Bluetooth ցածր էներգիայի) կամուրջ. 9 քայլ (նկարներով)

Video: Պարզ WiFi դեպի BLE (Bluetooth ցածր էներգիայի) կամուրջ. 9 քայլ (նկարներով)

Video: Պարզ WiFi դեպի BLE (Bluetooth ցածր էներգիայի) կամուրջ. 9 քայլ (նկարներով)
Video: Lesson 95: Using L293D 4 DC Motors Shield for Arduino UNO and Mega | Arduino Step By Step Course 2024, Հուլիսի
Anonim
Պարզ WiFi դեպի BLE (Bluetooth ցածր էներգիայի) կամուրջ
Պարզ WiFi դեպի BLE (Bluetooth ցածր էներգիայի) կամուրջ
Պարզ WiFi դեպի BLE (Bluetooth ցածր էներգիա) կամուրջ
Պարզ WiFi դեպի BLE (Bluetooth ցածր էներգիա) կամուրջ
Պարզ WiFi դեպի BLE (Bluetooth ցածր էներգիայի) կամուրջ
Պարզ WiFi դեպի BLE (Bluetooth ցածր էներգիայի) կամուրջ

Թարմացում 2017 թ. Դեկտեմբերի 4 - վերանայված փետուրի nRF52 ուրվագծեր և կարգաբերման խորհուրդներ: Ավելացվել են տուփի մեջ տեղադրված կամրջի նկարներ:

Այս պարզ նախագիծը WiFi- ով ապահովում է Bluetooth Low Energy (BLE) ցանկացած մոդուլ, որն իրականացնում է Nordic's UART- ը TX Notify- ով: Wifi2BLE կամուրջը լիովին թափանցիկ է: Այն պարզապես WiFi տվյալները փոխանցում է BLE սարքին և փոխանցում է BLE սարքի տվյալները WiFi կապին:

Անվճար pfodDesignerV3- ը ստեղծում է Nordic UART ծառայություն իրականացնելու կոդ ՝ BLE- ի բազմաթիվ մոդուլների վրա, այդ թվում ՝ Adafruit Bluefruit Feather nRF52, Arduino/Genuino 101, RedBearLab BLE Nano V2 և V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend և Adafruit Bluefruit LE UART Friend, Adafruit Bluefruit LE SPI (այսինքն Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE կամ Bluefruit LE SPI Friend) և ցանկացած այլ տախտակ, որը թույլ է տալիս ծրագրավորել ձեր սեփական ծառայությունը:

Այս Wifi2BLE կամուրջը հարմար է անփորձ շինարարի համար, ով կարող է զոդել: Այն օգտագործում է ընդամենը երկու տախտակ, մեկ ժապավենային մալուխ և երկու դիմադրություն:

Ինչպես նաև յուրաքանչյուր տախտակի համար մանրամասն փորձարկումներ, այս հրահանգը ներառում է Օգնություն. Չի Գործում քայլ ՝ ավելի շատ սխալներ գտնելու խորհուրդներով:

Այս հրահանգները հասանելի են նաև առցանց

Ինչու՞ այս նախագիծը:

Այս նախագիծը լուծում է մի շարք խնդիրներ, որոնք ունի BLE- ն (Bluetooth Low Energy):

  • Միայն վերջին բջջային հեռախոսներն ու համակարգիչներն են աջակցում BLE- ին: Wifi2BLE կամուրջը թույլ է տալիս WiFi կապ ունեցող ցանկացած բջջային կամ համակարգչի միանալ և վերահսկել BLE սարքը:
  • BLE- ն սահմանափակ տեսականի ունի: Wifi2BLE կամուրջը թույլ է տալիս մուտք գործել BLE սարքը տան ցանկացած վայրից (որտեղ կա WiFi կապ) և դրսից `ինտերնետի միջոցով:
  • BLE հավելվածների ստեղծումը պահանջում է սովորել Android կամ iOS: Wifi2BLE կամուրջը ապահովում է ունիվերսալ հեռահաղորդակցություն ցանկացած տերմինալային ծրագրի միջոցով: Ավելին, կարող եք հեշտությամբ վեբ էջ ավելացնել WiFi մոդուլին `ձեր սեփական ինտերֆեյսը ստեղծելու համար:
  • BLE V5- ը խոստանում է ցանցային ցանց `ձեր բոլոր տնային BLE սարքերը միացնելու համար, երբ ծրագրաշարը կհամապատասխանի Bluetooth- ի վերջին բնութագրին: Wifi2BLE կամուրջն օգտագործում է BLE V5 սարք և այդպիսով կապահովի ինտերնետ հասանելիություն այս տնային ցանցին, երբ այն գա:

Այս նախագծի իմ անմիջական օգտագործումն այն է, որ լաունջի BLE լույսի կարգավորիչը WiFi ցանցին ավելացնեմ, որպեսզի այն վերահսկվի տան ցանկացած վայրից: Թեև այս ձեռնարկը օգտագործում է pfodApp- ը որպես WiFi- ի միջոցով BLE տախտակները վերահսկելու օրինակ, այս նախագիծը ավարտելու համար ձեզ հարկավոր չէ գնել pfodApp:

Քայլ 1: Մասերի ցուցակ

Արժեքը 60 60 ԱՄՆ դոլար 2017 թվականի նոյեմբերի 30 -ի դրությամբ ՝ առանց առաքման + փոքր պլաստիկ պատյան

Adafruit Feather nRF52 Bluefruit LE - nRF52832 - ~ 25 ԱՄՆ դոլար

Adafruit HUZZAH ESP8266 Breakout - ~ 10 ԱՄՆ դոլար

Ibապավենային մալուխ ՝ առանձին կանացի ծայրերով-Ավտոբուս ծովահեն մալուխ 5 5 $ ԱՄՆ դոլար 9556 ԿԱՄ համանման

Break Away արական վերնագրեր - աջ անկյուն - ~ 2 ԱՄՆ դոլար

USB- ից TTL 3V3 սերիալային մալուխ - ~ 10 ԱՄՆ դոլար https://www.sparkfun.com/products/12977 (Նախընտրելի է, քանի որ այն ունի պիտակներ) ԿԱՄ https://www.sparkfun.com/products/12977 (կապերը ՉԵՆ պիտակավորված)

USB A- ից մինչև Micro B մալուխ - ~ 4 ԱՄՆ դոլար https://www.sparkfun.com/products/12977 (3 ոտնաչափ երկարությամբ) ԿԱՄ ~ 3 ԱՄՆ դոլար https://www.sparkfun.com/products/12977 (6 դյույմ երկարությամբ) ԿԱՄ $ 2 ԱՄՆ դոլար https://www.sparkfun.com/products/12977 (6 դյույմ երկարությամբ) ԿԱՄ 5 5 ԱՄՆ դոլար https://www.sparkfun.com/products/12977 (6 ոտնաչափ երկարությամբ) ԿԱՄ նման

2 x 100 օմ դիմադրություն - ~ 1 ԱՄՆ դոլար

USB հոսանքի աղբյուր (500 մԱ կամ ավելի) - ~ 6 ԱՄՆ դոլար https://www.sparkfun.com/products/12890 ԿԱՄ ~ 7 ԱՄՆ դոլար https://www.adafruit.com/product/1994 ԿԱՄ նման

Arduino IDE V1.8.5 և համակարգիչ `այն գործարկելու համար:

Պլաստիկ տուփի համար ես օգտագործել եմ մեկը Jaycar UB5- ից (կապույտ) 83 մմ x 54 մմ x 31 մմ ~ 4 դոլար

Քայլ 2: Wifi2BLE միացում

Wifi2BLE միացում
Wifi2BLE միացում

Wifi2BLE սխեման ցուցադրված է վերևում: Pdf տարբերակը ՝ այստեղ: Ինչպես տեսնում եք, սխեման շատ պարզ է: Ընդամենը 4 լար և երկու 100 օմ պաշտպանական դիմադրություն: Պաշտպանական ռեզիստորներն այն դեպքում, երբ դուք բաց եք թողնում TX / RX գծերի միացումը HUZZAH ESP8266 կամ փետուր nRF52 ծրագրավորումից հետո:

Նշում. TX և RX կապում փետուրի nRF52 տախտակի նշումը ճիշտ չէ: TX քորոցը իրականում DFU կապի կողքին է, իսկ RX քորոցը ՝ MISO քորոցի կողքին:

Համոզվեք, որ միացնում եք TX/RX տողերը, ինչպես ցույց է տրված վերևում: Բարեբախտաբար, պաշտպանական դիմադրողները կատարեցին իրենց աշխատանքը, և տախտակները չվնասվեցին, մինչ ես պարզեցի, թե ինչու տախտակները միմյանց չեն տանում:

Քայլ 3: Wifi2BLE շինարարություն

Wifi2BLE շինարարություն
Wifi2BLE շինարարություն
Wifi2BLE շինարարություն
Wifi2BLE շինարարություն
Wifi2BLE շինարարություն
Wifi2BLE շինարարություն

Ուղղանկյուն վերնագրի կապում զետեղված է HUZZAH ESP8266- ը `թույլ տալով, որ այն անջատվի ծրագրավորման համար: Երկու տախտակները միացնելու համար օգտագործվում են ժապավենի մալուխի չորս լարեր: Պահեք կանացի կապի միակցիչները և կտրեք ժապավենի մալուխի մյուս ծայրը: Իմ ժապավենային մալուխն ուներ նույն գույները, ինչ Sparkfun USB to TTL ծրագրավորման մալուխը, այնպես որ ես ընտրեցի այն համապատասխանեցնող մետաղալարը: Սև GND- ի համար, կարմիր ՝ 5V+ - ի համար, նարնջագույն ՝ TX- ի համար (միանում է ESP8266 RX- ին) և շագանակագույն ՝ RX- ի համար (միանում է ESP8266 TX- ին)

Ես միացրեցի պաշտպանական ռեզիստորները Փետուրի nRF52 տախտակի հետևի մասում: (Դիտարկող կոնստրուկտորները, ովքեր գիտեն իրենց դիմադրության կոդերը, կտեսնեն, որ ես օգտագործել եմ 68 օհմ դիմաց երկու ձեռքի դիմադրություն `100 օմի փոխարեն), այնուհետև դրանք մեկուսացրել եմ փոքրամարմին փաթաթանով:

Կարմիր մալուխը միացված է Փետուրի nRF52 USB պինին ՝ USB 5V- ն վերցնելու համար HUZZAH ESP8266 մոդուլը սնուցելու համար, իսկ Սև մալուխը զոդված է Փետուրի nRF52 GND քորոցին:

Այն ամենը, ինչ կա, բացի մոդուլների ծրագրավորումից, ինչպես նկարագրված է ստորև, այն պլաստիկ տուփի մեջ դնելը և USB սնուցման սարքը միացնելը փետուրի nRF52- ին:

Քայլ 4: Wifi2BLE ծրագրավորում

Wifi2BLE ծրագրավորում
Wifi2BLE ծրագրավորում
Wifi2BLE ծրագրավորում
Wifi2BLE ծրագրավորում
Wifi2BLE ծրագրավորում
Wifi2BLE ծրագրավորում

Uրագրավորում HUZZAH ESP8266- ով

Վահանը ծրագրավորելու համար հետևեք https://github.com/esp8266/Arduino- ում տրված հրահանգներին ՝ Installing With Boards Manager- ում: Գործիքներ → Տախտակի ընտրացանկից Boards Manager- ը բացելիս ընտրեք Contributed Type և տեղադրեք esp8266 հարթակը: Այս նախագիծը կազմվել է ESP8266 2.3.0 տարբերակի միջոցով: Այլ տարբերակները կունենան իրենց սխալների շարք և կարող են չաշխատել այս կոդի հետ:

ՈEՇԱԴՐՈԹՅՈՆ. Մի օգտագործեք Adafruit Board- ի տեղադրումը, քանի որ այստեղ օգտագործված ուրվագիծը չի կազմվի այդ ծածկագրի ներքո:

Փակեք և նորից բացեք Arduino IDE- ն, և այժմ կարող եք ընտրել «Adafruit HUZZAH ESP8266» Գործիքներ → տախտակի ընտրացանկից:

Դուք նաև պետք է տեղադրեք pfodESP8266WiFiBufferedClient գրադարանի վերջին տարբերակը: Այս գրադարանը աշխատում է ESP8266.com IDE plug-in V2.3- ով: (Եթե նախկինում տեղադրել եք pfodESP2866WiFi գրադարանը, ամբողջությամբ ջնջեք այդ գրադարանի գրացուցակը):

  • ա) Ներբեռնեք այս pfodESP8266WiFiBufferedClient.zip ֆայլը ձեր համակարգչին, տեղափոխեք այն աշխատասեղան կամ այլ թղթապանակ, որը կարող եք հեշտությամբ գտնել
  • բ) Այնուհետև օգտագործեք Arduino 1.8.5 IDE ընտրացանկի տարբերակը Sketch → Import Library → Add Library ՝ տեղադրելու համար: (Եթե Arduino- ն թույլ չի տալիս տեղադրել այն, քանի որ գրադարանը արդեն գոյություն ունի, ապա գտեք և ջնջեք հին pfodESP8266BufferedClient պանակը և այնուհետ ներմուծեք)
  • գ) Դադարեցրեք և վերագործարկեք Arduino IDE- ն և File-> Օրինակներ բաժնում, որտեղ այժմ պետք է տեսնեք pfodESP8266BufferedClient- ը:

Setանցի ssid- ի և գաղտնաբառի և IP- ի և նավահանգստի կարգավորում

PfodESP8266BufferedClient գրադարանը տեղադրելուց հետո բացեք Arduino IDE- ն և պատճենեք այս ուրվագիծը ՝ Wifi_Bridge.ino- ն IDE- ում: Նախքան մոդուլը ծրագրավորելը, դուք պետք է սահմանեք ձեր ցանցի ssid- ը և գաղտնաբառը և ընտրեք չօգտագործված IP:

Խմբագրեք այս երեք տողերը Wifi_Bridge.ino- ի գագաթին մոտ

char ssid = "**** ***"; char գաղտնաբառ = "**** *****"; char staticIP = "10.1.1.180";

Ես օգտագործում եմ Fing (Android կամ iOS) ծրագիրը `սկանավորելու իմ տեղական ցանցը և նույնականացնելու արդեն օգտագործված IP- ն: Սովորաբար անվտանգ է ընտրել չօգտագործված IP.180 -ից.254 միջակայքում

Սկսելու համար կարող եք թողնել պորտը No 23, telnet կապի ստանդարտ նավահանգիստ:

Այդ փոփոխությունները կատարելուց հետո կարող եք ծրագրավորել ESP8266 ծրագիրը:

Uրագրավորում HUZZAH ESP8266- ով

HUZZAH ESP8266 ծրագիրը ծրագրավորելու համար USB- ը միացրեք սերիալային մալուխին, ինչպես ցույց է տրված լուսանկարում: Ստուգեք լուսանկարը և ձեր լարերը: Տես նաև ESP8266 ծրագրավորման խորհուրդներ (espcomm- ը ձախողվեց)

Ես օգտագործում եմ Sparkfun USB- ը TTL 3V3 սերիալային մալուխին, քանի որ դրա վրա նշված են TX և RX կապերը: Համոզվեք, որ TX կապը միացված է RX կապին, իսկ RX կապը միացված է TX կապին, ինչպես ցույց է տրված վերևում: Եթե դուք օգտագործում եք Adafruit մալուխը, ապա դրա տերմինալները նշված չեն, բայց ունեն գույնի ծածկագիր, կարմիրը ուժ է, սևը ՝ աղացած, կանաչը ՝ TX, իսկ սպիտակը ՝ RX:

Միացրեք USB- ին սերիալային մալուխը ձեր համակարգչին և ընտրեք այն COM նավահանգիստ Գործիքներ → նավահանգստի ընտրացանկում: Պրոցեսորի հաճախականությունը, բռնկման չափը և բեռնման արագությունը թողեք իրենց կանխադրված կարգավորումներում:

Այնուհետև Adafruit HUZZAH ESP2866 մոդուլը դարձրեք ծրագրավորման ռեժիմ ՝ պահելով GPIO0 կոճակը և կտտացնելով Reset կոճակը, այնուհետև բաց թողնելով GPIO0 կոճակը: GPIO0 լուսարձակը պետք է մնա թույլ լուսավորված: Այնուհետև ընտրեք Ֆայլ → Վերբեռնել կամ օգտագործել աջ սլաք կոճակը ՝ ծրագիրը կազմելու և վերբեռնելու համար: Եթե սխալ հաղորդագրություն եք բեռնում, ստուգեք, որ ձեր մալուխային կապերը միացված են ճիշտ կապում և նորից փորձեք:

Theրագրավորման ավարտից հետո մոդուլում տեղադրված կարմիր լուսարձակը պետք է լուսավորվի: Դա ցույց է տալիս, որ այն հաջողությամբ միացվել է ձեր տեղական ցանցին և սկսել է սերվերը ընդունել կապը:

HUZZAH ESP2866- ի փորձարկում

HUZZAH ESP2866- ը փորձարկելու համար թողեք ծրագրավորման մալուխը միացված և բացեք Arduino IDE Tools → Serial Monitor- ը և դրեք 9600 baud (ներքևի աջ անկյուն): Այնուհետև ձեր համակարգչում բացեք տերմինալային ծրագիր, ես օգտագործում եմ TeraTerm- ը Windows- ի համար և CoolTerm- ը ՝ Mac- ի համար, և միանում եմ IP- ին և պորտին: Ոչ, դուք սահմանում եք Wifi_Bridge.ino ուրվագծում:

Երբ դուք միացնում եք Red Led- ին մոդուլը պետք է սկսի թարթել ՝ նշելով, որ կապ կա: Այժմ դուք պետք է կարողանաք մուտքագրել ձեր համակարգիչների տերմինալի պատուհանում, և նշանները պետք է հայտնվեն Arduino IDE- ի մոնիտորի պատուհանում և հակառակը:

Wifi միացման ժամանակի դադարեցում

Wifi_Bridge.ino կոդը միացման ժամանակ ունի:

uint32_t connectionTimeout = 60000; // 60 վրկ միացման ժամանակի դադար

Եթե HUZZAH ESP8266 մոդուլի կողմից 60 վայրկյան ընդունված WiFi տվյալների բացակայություն կա, ապա մոդուլները փակում են կապը և սպասում նորին: Սա ապահովում է, որ մոդուլը վերականգնվի «կիսափակ» միացումներից, որոնք տեղի են ունենում, երբ հաճախորդը պարզապես անհետանում է վատ WiFi կապի, երթուղիչում էներգիայի կորստի կամ հաճախորդի հարկադիր անջատման պատճառով: Լրացուցիչ մանրամասների համար տե՛ս կիսաբաց (բաց թողնված) TCP/IP միակցիչների հայտնաբերում:

Այս միացման ժամանակը սահմանվում է 60 վրկ: բայց կարող է նվազել կամ ավելանալ ըստ անհրաժեշտության: Այն 0 -ի վրա դնելը նշանակում է, որ երբեք չվերջանա ժամանակը, ինչը խորհուրդ չի տրվում:

Փետուրի ծրագրավորում nRF52

Փետուրը nRF52 ծրագրավորելու համար հետևեք փետուրի համար նախատեսված Arduino խորհրդի աջակցությունը ներբեռնելու և տեղադրելու հրահանգներին: Ստուգեք, թե արդյոք կարող եք միանալ և ծրագրավորել տախտակը USB մալուխի միջոցով:

Ո NOTՇԱԴՐՈԹՅՈՆ. Անջատեք HUZZAH ESP8266 մոդուլը Փետուրից nRF52 փետուրը ծրագրավորելուց առաջ:

Փետուր nRF52- ը BLE սարքին միացնելը բաղկացած է երկու քայլից: Սկզբում սարքի MAC հասցեն (և տեսակը) նույնականացնելը և այն ստուգելը աջակցում է Nordic UART ծառայությանը TX Notify- ով, այնուհետև այդ հասցեն և տեսակը փոխանցում կամրջի ուրվագծին:

Քայլ 5: Միացում BLE սարքին

Միացում BLE սարքին
Միացում BLE սարքին
Միացում BLE սարքին
Միացում BLE սարքին
Միացում BLE սարքին
Միացում BLE սարքին

Երբ HUZZAH ESP8266- ը ծրագրավորվի, դուք պետք է կոդավորեք BLE հասցեն և սարքի տեսակը, որին ցանկանում եք միանալ Feather nRF52 ուրվագծի մեջ: Սա երկաստիճան գործընթաց է: I) Գործարկեք սկանավորման ծրագիրը `մոտակա BLE սարքեր գտնելու համար, որոնք իրականացնում են Nordic UART ծառայությունը (TX Notify) և այնուհետև պատճենեք այդ սկաների ելքը Փետուրի կամուրջի ուրվագծի մեջ` այն միացնելու համար այդ սարքին:

BLE ծայրամասային սարքերի որոնում

Համատեղելի BLE ծայրամասային սարքերը նույնականացնելու համար տեղադրեք central_bleuart_scanner.ino ծրագիրը ձեր Feather nRF52- ում: Այս ծրագիրը շարունակաբար սկանավորում է նոր սարքեր, այնուհետև ստուգում է, արդյոք նրանք աջակցում են սկանդինավյան UART ծառայությանը TX Notify- ով:

Սկանդինավյան UART ծառայություն

Սկանդինավյան UART ծառայությունը բաղկացած է երեք մասից ՝ Uառայության UUID և RX և TX բնութագրերից: Ահա մի շարք ընտրանքային կոդեր, որոնք ստեղծվել են pfodDesignerV3- ի կողմից RedBear NanoV2- ի համար

BLEService uartService = BLEService ("6E400001B5A3F393E0A9E50E24DCCA9E");

BLECharacteristic rxCharacteristic = BLECharacteristic («6E400002B5A3F393E0A9E50E24DCCA9E», BLEWrite, BLE_MAX_LENGTH); BLECharacteristic txCharacteristic = BLECharacteristic («6E400003B5A3F393E0A9E50E24DCCA9E», BLENotify, BLE_MAX_LENGTH);

pfodDesignerV3- ը կարող է ստեղծել մի շարք BLE մոդուլների օրինակելի կոդ: Այնուամենայնիվ, քանի որ «ստանդարտ» UART միացման համար BLE- ի բնութագիր չկա, ոչ բոլոր մոդուլներն են օգտագործում սկանդինավյան UART ծառայությունը: Օրինակ ՝ HM-10 մոդուլները (Itead BLE վահանը), RFduno- ն և Romeo BLE- ն օգտագործում են իրենց յուրահատուկ uart ծառայությունները և այդպիսով չեն միանա փետուրի nRF52- ին:

Հետևյալ տախտակները կկապվեն., Bluefruit LE Micro, Փետուր 32u4 Bluefruit LE, Փետուր M0 Bluefruit LE կամ Bluefruit LE SPI Friend) Ինչպես նաև տախտակներ, որոնք կարող են ծածկագրվել անհատականացված ծառայություններով կամ տախտակներով, որոնք կարող են օգտագործել BLEPeripheral գրադարան:

Օրինակ օգտագործվող տախտակը Arduino/Genuino 101- ն է ՝ pfodDesignerV3- ի կողմից ստեղծված կոդով: Անվճար pfodDesignerV3- ը թույլ է տալիս ստեղծել pfodApp ընտրացանկեր, այնուհետև առաջացնում է Arduino ծածկագիրը, որն անհրաժեշտ է ձեր բջջային Android- ի այդ բջջային ընտրացանկը (վճարովի) pfodApp- ի միջոցով ցուցադրելու համար: pfodApp- ը նաև կկապվի Wifi- ի, ինչպես նաև Bluetooth Classic- ի, BLE- ի և SMS- ի միջոցով, և այդպիսով կարող է միանալ այս Wifi2BLE կամրջի միջոցով: Այնուամենայնիվ, նույնիսկ եթե չեք ցանկանում օգտագործել pfodApp- ը որպես ձեր կառավարման ծրագիր, միևնույն է, կարող եք օգտագործել pfodDesignerV3- ը ՝ ձեր BLE տախտակի համար սկանդինավյան UART ծառայության ծածկագիր ստեղծելու համար:

Այս ձեռնարկի հղումը նկարագրում է Arduino/Genuino 101 BLE- ի կարգավորումը և pfodDesignerV3- ով պարզ LED միացման/անջատման հսկողության ստեղծումը: PfodDesignerV3- ի պատրաստած ուրվագիծը Arduino101_led_control.ino է

Arduino/Genuino 101 ծրագրավորումը Arduino101_led_control.ino- ով թույլ կտա ձեզ կապվել pfodApp- ի հետ և ցուցադրել հետևյալ էկրանը ձեր Android բջջային հեռախոսում:

Այնուամենայնիվ, սա ընդամենը օրինակ է, և այս նախագիծը ավարտելու համար ձեզ հարկավոր չէ գնել pfodApp: Կարևոր մասն այն է, որ անվճար pfodDesignerV3 ծրագիրը պարունակում է Arduino/Genuino 101- ի համար ծածկագիր, որն իրականացնում է սկանդինավյան UART ծառայություն: Այսպիսով, եկեք փնտրենք դրա համար:

Այնուամենայնիվ, սա ընդամենը օրինակ է, և այս նախագիծը ավարտելու համար ձեզ հարկավոր չէ գնել pfodApp: Կարևոր մասն այն է, որ անվճար pfodDesignerV3 հավելվածը ստեղծում է Arduino/Genuino 101- ի համար ծածկագիր, որն իրականացնում է սկանդինավյան UART ծառայություն: Այսպիսով, եկեք փնտրենք դրա համար:

Սկանդինավյան հյուսիսային UART ծառայության որոնում

HUZZAH ESP8266 մոդուլով, որն անջատված է փետուրից առաջին էկրանը ՝ վերևում:

Ինչպես տեսնում եք, սկաները գտել է երկու BLE սարք, Arduino/Genuino 101, որի վրա հայտնաբերվել է սկանդինավյան UART ծառայություն, ԲԱՅ TX բնութագիրը չի աջակցում Notify- ին: Սկաները գտան նաև RFduino BLE մոդուլ, սակայն RFduino- ն չի օգտագործում սկանդինավյան UART ծառայությունը, այլ օգտագործում է իր սեփականը: Bluetooth կոմիտեն դրա համար մեղավոր է, որ UART- ի «ստանդարտ» ծառայություն չի նշում, փոխարենը թողնում է, որ յուրաքանչյուր արտադրող կազմի իր ծառայությունը:

Ինչպես նկարագրված է վերևում, 101 կոդը ստեղծվել է pfodDesignerV3- ի կողմից ՝ հիմնականում pfodApp- ի հետ օգտագործելու համար: pfodApp- ն այնքան էլ չի ընտրում TX Notify- ի մասին, որքան Feather nRF52 uart ծածկագիրը: pfodApp- ը 101 -ի հետ աշխատում է այնպես, ինչպես ծրագրված է, բայց փետուրը nRF52- ը պնդում է TX Notify- ը, այնպես որ փետուրը բավարարելու համար անհրաժեշտ է փոքր փոփոխություն ծածկագրում:

Բացեք Arduino101_led_control.ino- ն Arduino IDE- ում և վերևի մոտակայքում կգտնեք այս երկու տողերը: Երկրորդ տողը պարզապես բնութագրի նկարագրությունն է և չի ազդում գործողության վրա:

BLECharacteristic txCharacteristic = BLECharacteristic («6E400003-B5A3-F393-E0A9-E50E24DCCA9E», BLEIndicate, BLE_MAX_LENGTH); BLEDescriptor txNameDescriptor = BLEDescriptor ("29)" ", Փոխեք դրանք

BLECharacteristic txCharacteristic = BLECharacteristic («6E400003-B5A3-F393-E0A9-E50E24DCCA9E», BLENotify, BLE_MAX_LENGTH); BLEDescriptor txNameDescriptor = BLEDescriptor ("2901", "TX - (Տեղեկացնել)");

Հետո նորից ծրագրավորեք 101-ը այս խմբագրված տարբերակով ՝ Arduino101_Notify_led_control.ino: Այնուհետև, երբ կրկին գործարկում եք Փետուրի nRF52 սկաները (central_bleuart_scanner.ino), Սերիական մոնիտորը ցույց է տալիս վերևում նկարահանված երկրորդ էկրանը:

Genuino 101 -ի համար այժմ սխալներ չկան, և սկաները տպում է Feather nRF52 կամրջի ուրվագծի համար անհրաժեշտ ծածկագիրը, որպեսզի այն միանա 101 -ին: Սկաները կստուգի տիրույթում գտած յուրաքանչյուր սարք: Nordic UART ծառայության (TX Notify) միջոցով հայտնաբերված յուրաքանչյուր սարքի համար կարմիր լուսարձակը մեկ անգամ լուսարձակում է:

Քայլ 6. Միացում BLE ծայրամասային սարքին

LED ցուցումներ

Փետուրը nRF52 ունի երկու լուսարձակներ ՝ կապույտ և կարմիր: Երբ տախտակը միացված է BLE սարքին, Blue Led- ը մշտական է, հակառակ դեպքում այն թարթում է: Սկաները միացված չեն սարքին, այնպես որ նրա կապույտ լուսարձակը սովորաբար փայլում է: Կարմիր լուսարձակը մեկ անգամ լուսարձակում է սկանդինավյան UART ծառայության (TX Notify) սարքի համար: Որպես սկաներ աշխատելիս Red Led- ը հաշվում է հայտնաբերված Nordic UART Service (TX Notify) սարքերի քանակը: Որպես կամուրջ աշխատելու դեպքում Red Led- ը մեկ անգամ թարթում է BLE կոդի հասցեին միանալիս:

Միացում BLE ծայրամասային սարքին

Այժմ, երբ սկաների էսքիզը տրամադրել է BLE սարքի մանրամասները, որոնց ցանկանում եք միանալ, կարող եք պատճենել ելքը central_bleuart_bridge.ino էսքիզի մեջ: Այդ ուրվագծի վերևի մոտ դուք կգտնեք հետևյալ ծածկագիրը:

// Կոդի այս հաջորդ երեք տողերը գալիս են central_bleuart_scanner.ino թողարկումից

const char *BLE_NAME = "GENUINO 101-FC8F"; const char *BLE_ADDRESS = "98: 4F: EE: 0C: FC: 8F"; const uint8_t BLE_ADDRESS_TYPE = 0;

Կոդի երեք տողերը փոխարինեք սկանավորմամբ BLE սարքի ելքով, որով ցանկանում եք կամուրջ անցնել: Այնուհետեւ ծրագրավորեք Feather nRF52- ը խմբագրված central_bleuart_bridge.ino էսքիզով:

Կենտրոնական_բլյուարտ_ կամուրջի ուրվագծի փորձարկում

Նախքան HUZZAH ESP8266- ը փետուրի nRF52- ին միացնելը, փորձեք ձեր BLE սարքի կապը: Թողնելով փետուրը nRF52- ը, որը միացված է ձեզ Arduino IDE- ին, բացեք Գործիքներ → Սերիայի մոնիտորը 9600 baud հասցեով, այնուհետև ստուգեք, որ ձեր թիրախային BLE սարքը միացված է:

Երբ կապը կատարվում է ձեր BLE սարքի հետ, ինչպես նկարագրված է վերևում, կապույտ լուսամփոփը անընդհատ լուսավորվելու է, իսկ կարմիր լուսարձակը ՝ 10 վայրկյանում մեկ անգամ:Սա թույլ է տալիս ձեզ ոչ թե կապը հաստատվել և պահպանվել է:

Այնուհետև Սերիայի մոնիտորում կարող եք մուտքագրել այն հրամանները, որոնք դուք ակնկալում եք ուղարկել ձեր BLE սարքին և դիտել, թե ինչպես է այն գործում և վերահսկել նրա կողմից ուղարկված ցանկացած արձագանք: Եթե ամեն ինչ կարգին է, կարող եք անջատել և միացնել HUZZAH ESP8266 մոդուլը:

Քայլ 7. Միացում BLE սարքին WiFi- ի միջոցով `բոլորը միասին դնելով

Երբ ծրագրավորեք և փորձարկեք HUZZAH ESP8266 մոդուլը ՝ իր կամուրջի կոդով (Wifi_Bridge.ino), որը կազմաձևված է ձեր ցանցի ssid- ի և գաղտնաբառի և IP- ի համար և ծրագրավորվել և փորձարկվել է BLE սարքի հասցեով կազմաձևված փետուր nRF52- ի հետ: և մուտքագրեք, ապա կարող եք դրանք միացնել իրար և միացնել USB փետուրը Փետուրի մոդուլին, որպեսզի երկուսն էլ միացնեն դրանք:

HUZZAH մոդուլը Red led- ը պետք է ամուր լուսավորվի, քանի որ այն միանում է ձեր տեղական ցանցի երթուղիչին, և փետուրը կապույտ led- ը պետք է ամուր լուսավորվի, քանի որ այն միանում է ձեր BLE սարքին, իսկ փետուրի կարմիր լուսարձակը պետք է թարթվի յուրաքանչյուր 10 վայրկյանում մեկ անգամ `նշելու համար: BLE սարքը միացված է:

Բացեք ձեր telnet ծրագիրը և միացեք HUZZAH- ի IP- ին և նավահանգստին: HUZZAH Red led- ը պետք է դանդաղ թարթվի ՝ ցույց տալու համար, որ ձեր ծրագիրը միացված է, և դուք պետք է WiFi- ով ձեր BLE սարքին ուղարկեք հրամաններ և դիտեք BLE սարքի աշխատանքը և ցանկացած պատասխան տեսեք ձեր հեռախոսի պատուհանում: Հիշեք, եթե ձեր BLE սարքը 60 վայրկյանով որևէ տվյալ հետ չուղարկի, HUZZAH ծածկագիրը կապի ժամանակը կդադարեցնի և կջնջվի, և HUZZAH Red led- ը նորից կդառնա ամուր:

Քայլ 8: Օգնություն - այն չի աշխատում

Նախ կատարեք վերը նկարագրված թեստավորման քայլերը ՝ փորձարկելով HUZZAH ESP2866- ը և փորձարկելով central_bleuart_bridge ուրվագիծը:

Սկանավորման խնդիրներ

Եթե սկաները չի գտնում ձեզ BLE սարք, այն կամ շատ հեռու է, կամ գովազդ չէ, կամ արդեն միացված է ինչ -որ բանի: Փորձեք մոտեցնել սկաները և միացրեք այն սարքը և անջատեք մոտակայքում գտնվող բոլոր շարժական սարքերը, որոնք կարող են կապ ունենալ BLE սարքի հետ:

Եթե դուք ստանում եք սկաների նման ելք:

Միացված է 98: 4F: EE: 0C: FC: 8F Փնտրում եմ սկանդինավյան UART ծառայություն… Չի գտնվել ԿԱՄ ՉԻ հայտնաբերելի !!!!! Չհաջողվեց նույնականացնել սկանդինավյան UART ծառայություն !!!!!!!! Եթե ակնկալում էիք սկանդինավյան UART ծառայություն, տեղափոխեք Սկաները ավելի մոտ BLE սարքին !!!!

Կարող է լինել, որ դուք բավական մոտ եք BLE սարքին ՝ այն հայտնաբերելու համար, բայց ոչ այնքան մոտ, որ հաջողությամբ կատարեք discoveryառայության հայտնագործումը ՝ սկանդինավյան UART ծառայությունը գտնելու համար: Փորձեք ավելի մոտենալ BLE սարքին:

Որպես վերջին միջոց, կարող եք օգտագործել Nordic nRF Connect անվճար ծրագիրը Android- ի կամ iOS- ի համար: Այդ հավելվածն ունի ավելի լավ տեսականի և զգայունություն: Այն ձեզ կասի, արդյոք BLE սարքն ունի սկանդինավյան UART ծառայություն: Այնուամենայնիվ, դեռ պետք է ձեռք բերել սկաների գործարկումը և միացումը և նույնականացումը Nordic UART Serivice- ին, նախքան Wifi2BLE կամուրջը օգտագործելը, քանի որ այն օգտագործում է սկաների նման կոդ:

Եթե ցանկանում եք ավելի խորը փորել, կարող եք օգտագործել Adafruit Bluefruit LE Sniffer մոդուլը ՝ տեսնելու, թե ինչ է օդում:

BLE միացման խնդիրներ

Եթե հաջողվել է սկանավորել BLE սարքը, ապա կապի խնդիրների ամենահավանական պատճառներն են ՝ I) BLE սարքը շատ հեռու է, II) այլ բան արդեն միացված է BLE սարքին

WiFi միացման խնդիրներ

Եթե HUZZAH ESP8266 Red led- ը ամուր չի լուսավորվում, ապա այն միացում չունի ձեր ցանցին ձեր երթուղիչի միջոցով: Ստուգեք Wifi_Bridge.ino- ի ձեր ssid- ը և գաղտնաբառը և օգտագործեք Fing հավելվածը Android կամ iOS ՝ ստուգելու համար, որ ձեր հատկացրած IP- ն արդեն չի օգտագործվում: Փորձեք անջատել ձեր բոլոր համակարգիչներն ու սարքերը և միացնել երթուղիչը (անջատեք այն 20 վայրկյան) և նորից սկանավորեք Fing- ով: Ի վերջո, եթե կապը անընդհատ դադարում է, հիշեք Wifi_Bridge.ino կոդի մեջ կապի ընդմիջման կարգավորումը:

Քայլ 9: Ընդլայնումներ և եզրակացություն

Այստեղ ներկայացված նախագիծը ամենապարզ տարբերակն է: Կան մի շարք հնարավոր ընդարձակումներ, ինչպիսիք են.

  • Փետուրը nRF52- ն ունակ է միանգամից միանալ մինչև 4 BLE սարքի, այնպես որ կարող եք փոփոխել ծածկագիրը ՝ ավելի վավեր հասցեներ ավելացնելու և մեկ WiFi կապից մինչև 4 սարք կառավարելու համար: Տեսեք կոդի օրինակը, որը գալիս է Փետուրի nRF52 տախտակի տեղադրմամբ:
  • Դուք կարող եք անցք բացել ձեր երթուղղիչում ՝ BLE սարքի հասանելիություն ապահովելու համար ինտերնետի ցանկացած վայրից: Տես DIY IoT սարքերը ինտերնետին pfodApp- ի միջոցով միացնելը:
  • Դուք կարող եք օգտագործել Cheap/Simple Wifi Shield- ի ծածկագիրը, որը թույլ կտա Ձեզ կարգավորել HUZZAH- ի WiFi ցանցի պարամետրերը վեբ էջի միջոցով ՝ առանց վերածրագրավորման: Շրջանակին անհրաժեշտ կլինի ավելացնել կոնֆիգուրացիայի կոճակ:
  • Կարող եք ավելացնել կոնֆիգուրացիայի կոճակ (օգտագործելով վերը նշված կոճակը), որը ստիպում է Փետուրը nRF52- ով սկանդինավյան UART- ով (TX Notify) սկանավորել BLE սարքերը, այնուհետև պահպանել կապի մանրամասները ամենաուժեղ ազդանշանի համար: Արդյունքը պահպանելու համար ձեզ հարկավոր է օգտագործել nffs գրադարանը, որն ուղեկցվում է Adafruit nRF52 տախտակի տեղադրմամբ:
  • Դուք կարող եք վեբ էջ ավելացնել HUZZAH ESP8266 ծածկագրին ՝ ձեր BLE սարքի համար հարմարեցված ինտերֆեյս ապահովելու համար: Կարող եք նաև օգտագործել pfodDesignerV3- ը և pfodApp- ը ավելացնել հատուկ միջերես ՝ առանց այս նախագծի ընդհանրապես փոփոխությունների:

Եզրակացություն

Այս պարզ նախագիծը WiFi- ով ապահովում է Bluetooth Low Energy (BLE) ցանկացած մոդուլ, որն իրականացնում է Nordic's UART- ը TX Notify- ով: Wifi2BLE կամուրջը լիովին թափանցիկ է: Այն պարզապես WiFi տվյալները փոխանցում է BLE սարքին և փոխանցում է BLE սարքի տվյալները WiFi կապին:

Պարզ կառուցվածքը և թեստավորման մանրամասն հրահանգները սա հարմար նախագիծ են դարձնում սկսնակների համար, ովքեր ցանկանում են մուտք գործել իրենց BLE սարքը իրենց համակարգչից կամ BLE- ի նորմալ տիրույթից դուրս:

Այս նախագիծը ավելի կարևոր կդառնա, երբ BLE սարքի ծրագրակազմը կհամապատասխանի Bluetooth V5 Mesh նոր տեխնիկական բնութագրին: Այնուհետեւ Wifi2BLE- ը կապահովի ինտերնետ հասանելիություն ձեր տան ամբողջ ավտոմատացման համար:

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