Turinys:

Paprastas „Wi -Fi“ryšys su „BLE“(„Bluetooth Low Energy“) tiltas: 9 žingsniai (su nuotraukomis)
Paprastas „Wi -Fi“ryšys su „BLE“(„Bluetooth Low Energy“) tiltas: 9 žingsniai (su nuotraukomis)

Video: Paprastas „Wi -Fi“ryšys su „BLE“(„Bluetooth Low Energy“) tiltas: 9 žingsniai (su nuotraukomis)

Video: Paprastas „Wi -Fi“ryšys su „BLE“(„Bluetooth Low Energy“) tiltas: 9 žingsniai (su nuotraukomis)
Video: Zigbee датчик освещенности, температуры и влажности с экраном на электронных чернилах Moes 2024, Liepa
Anonim
Paprastas „WiFi“prie BLE („Bluetooth Low Energy“) tiltas
Paprastas „WiFi“prie BLE („Bluetooth Low Energy“) tiltas
Paprastas „WiFi“prie BLE („Bluetooth Low Energy“) tiltas
Paprastas „WiFi“prie BLE („Bluetooth Low Energy“) tiltas
Paprastas „WiFi“prie BLE („Bluetooth Low Energy“) tiltas
Paprastas „WiFi“prie BLE („Bluetooth Low Energy“) tiltas

2017 m. Gruodžio 4 d. Atnaujinimas - peržiūrėti „Feather nRF52“eskizai ir derinimo patarimai. Pridėtos tilto nuotraukos, sumontuotos dėžutėje

Šis paprastas projektas suteikia „WiFi“prieigą prie bet kurio „Bluetooth Low Energy“(BLE) modulio, kuris įgyvendina „Nordic“UART su „TX Notify“. „Wifi2BLE“tiltas yra visiškai skaidrus. Jis tiesiog perduoda „WiFi“duomenis BLE įrenginiui ir perduoda BLE įrenginio duomenis atgal į „WiFi“ryšį.

Nemokamas „pfodDesignerV3“sukuria kodą, kad galėtų įdiegti Šiaurės šalių UART paslaugą daugelyje BLE modulių, įskaitant „Adafruit Bluefruit Feather nRF52“, „Arduino/Genuino 101“, „RedBearLab BLE Nano V2“ir „V1-V1.5“, „RedBearLab BLE Shield“, „Adafruit Bluefruit LE UART Friend“ir, „Adafruit Bluefruit LE SPI“(ty „Bluefruit LE Shield“, „Bluefruit LE Micro“, „Feather 32u4 Bluefruit LE“, „Feather M0 Bluefruit LE“arba „Bluefruit LE SPI Friend“) ir bet kokiomis kitomis lentomis, leidžiančiomis programuoti savo paslaugas.

Šis „Wifi2BLE“tiltas tinka nepatyrusiam konstruktoriui, galinčiam lituoti. Tam naudojamos tik dvi plokštės, vienas juostinis kabelis ir du rezistoriai

Šioje instrukcijoje yra ne tik išsamūs kiekvienos plokštės bandymai, bet ir pagalba - ji neveikia, ir daugiau patarimų, kaip rasti gedimus.

Šios instrukcijos taip pat prieinamos internete

Kodėl šis projektas?

Šis projektas išsprendžia daugybę BLE („Bluetooth Low Energy“) problemų.

  • Tik naujausi mobilieji telefonai ir kompiuteriai palaiko BLE. „Wifi2BLE“tiltas leidžia bet kuriam mobiliajam telefonui ar kompiuteriui, turinčiam „WiFi“ryšį, prisijungti prie BLE įrenginio ir jį valdyti.
  • BLE diapazonas yra ribotas. „Wifi2BLE“tiltas leidžia pasiekti BLE įrenginį iš bet kurios namų vietos (kur yra „WiFi“ryšys) ir iš išorės internetu.
  • Norėdami sukurti BLE programas, turite išmokti „Android“arba „iOS“. „Wifi2BLE“tiltas suteikia universalų „telnet“ryšį per bet kurią terminalo programą. Be to, galite lengvai pridėti tinklalapį prie „WiFi“modulio, kad sukurtumėte savo pasirinktinę sąsają.
  • „BLE V5“žada tinklinį tinklą, kuris sujungs visus jūsų namų BLE įrenginius, kai tik programinė įranga pasieks naujausią „Bluetooth“specifikaciją. „Wifi2BLE“tiltas naudoja „BLE V5“įrenginį ir suteiks prieigą prie šio namų tinklo, kai jis atvyks.

Tiesiogiai naudoju šį projektą, kad prie „WiFi“tinklo pridėčiau poilsio kambario BLE šviesos valdiklį, kad būtų galima jį valdyti iš bet kurios namų vietos. Nors šioje pamokoje naudojamas „pfodApp“kaip BLE plokščių valdymo per „WiFi“pavyzdys, norint užbaigti šį projektą, jums nereikia pirkti „pfodApp“.

1 žingsnis: dalių sąrašas

Kaina ~ 60 USD 2017 m. Lapkričio 30 d., Neįskaitant siuntimo + nedidelis plastikinis gaubtas

„Adafruit Feather nRF52 Bluefruit LE“- nRF52832 - ~ 25 USD

„Adafruit HUZZAH ESP8266 Breakout“- ~ 10 USD

Juostelės kabelis su atskirais moteriškais galais-autobusų piratų kabelis ~ 5 USD https://www.sparkfun.com/products/9556 ARBA 10 kontaktų IDC lizdas „Rainbow Breakout Cable“~ 4 USD https://www.sparkfun.com/products/ 9556 ARBA panašūs

Atsisakykite vyrų antraščių - stačiu kampu - ~ 2 USD

USB į TTL 3V3 nuoseklusis kabelis - ~ 10 USD https://www.sparkfun.com/products/12977 (Pageidautina, nes ant jo kaiščiai pažymėti) ARBA https://www.sparkfun.com/products/12977 (kaiščiai NĖRA pažymėtas)

USB A - „Micro B“kabelis - ~ 4 USD https://www.sparkfun.com/products/12977 (3 pėdų ilgio) ARBA ~ 3 USD https://www.sparkfun.com/products/12977 (6 colių ilgio) ARBA ~ 2 USD https://www.sparkfun.com/products/12977 (6 colių ilgio) ARBA ~ 5 USD https://www.sparkfun.com/products/12977 (6 pėdų ilgio) ARBA panašiai

2 x 100 omų rezistoriai - ~ 1 USD

USB maitinimo šaltinis (500 mA ar daugiau) - ~ 6 USD https://www.sparkfun.com/products/12890 ARBA ~ 7 USD https://www.adafruit.com/product/1994 ARBA panašiai

„Arduino IDE V1.8.5“ir kompiuteris, kuriame galima jį paleisti.

Plastikinei dėžutei naudoju vieną iš „Jaycar UB5“(mėlyna) 83 mm x 54 mm x 31 mm ~ 4 USD

2 žingsnis: „Wifi2BLE“grandinė

„Wifi2BLE“grandinė
„Wifi2BLE“grandinė

„Wifi2BLE“grandinė parodyta aukščiau. PDF versija yra čia. Kaip matote, grandinė yra labai paprasta. Tik 4 laidai ir du 100 omų apsaugos rezistoriai. Apsauginiai rezistoriai yra tuo atveju, jei užprogramavę HUZZAH ESP8266 arba „Feather nRF52“praleisite TX / RX linijų prijungimą.

PASTABA: TX ir RX kaiščių plunksnų nRF52 plokštės žymėjimas yra neteisingas. TX kaištis iš tikrųjų yra tas, kuris yra šalia DFU kaiščio, o RX kaištis yra tas, kuris yra šalia MISO kaiščio

Būtinai prijunkite TX/RX linijas, kaip parodyta aukščiau. Laimei, apsaugos rezistoriai atliko savo darbą, o lentos nebuvo pažeistos, o aš išsiaiškinau, kodėl plokštės nesikiša viena į kitą.

3 žingsnis: „Wifi2BLE“kūrimas

„Wifi2BLE“konstrukcija
„Wifi2BLE“konstrukcija
„Wifi2BLE“konstrukcija
„Wifi2BLE“konstrukcija
„Wifi2BLE“konstrukcija
„Wifi2BLE“konstrukcija

Stačiakampiai antgaliai pritvirtinti prie HUZZAH ESP8266, kad būtų galima atjungti nuo programavimo. Dvi plokštės prijungiamos keturiais juostinio kabelio laidais. Laikykite kištukines jungtis ir nukirpkite kitą juostos kabelio galą. Mano juostinis kabelis buvo tų pačių spalvų, kaip ir „Sparkfun“USB į TTL programavimo kabelis, todėl pasirinkau laidą, kad jis atitiktų. Juoda GND, raudona 5 V+, oranžinė TX (jungiama prie ESP8266 RX) ir ruda RX (jungiama prie ESP8266 TX)

Prijungiau apsauginius rezistorius „Feather nRF52“plokštės gale. (Atidūs konstruktoriai, žinantys savo rezistorių kodus, pamatys, kad aš naudoju du 68 omų rezistorius, kuriuos turiu ranka, o ne 100 omų), ir tada izoliavau juos susitraukiančia plėvele.

Raudonasis kabelis yra prilituotas prie „Feather nRF52“USB kaiščio, kad būtų galima paimti 5 V USB, kad būtų galima maitinti HUZZAH ESP8266 modulį, o juodas kabelis - prie „Feather nRF52 GND“kaiščio.

Tai viskas, išskyrus modulių programavimą, kaip aprašyta žemiau, įdėjimą į plastikinę dėžę ir USB maitinimo šaltinio prijungimą prie „Feather nRF52“.

4 žingsnis: „Wifi2BLE“programavimas

„Wifi2BLE“programavimas
„Wifi2BLE“programavimas
„Wifi2BLE“programavimas
„Wifi2BLE“programavimas
„Wifi2BLE“programavimas
„Wifi2BLE“programavimas

HUZZAH ESP8266 programavimas

Norėdami užprogramuoti skydą, vykdykite instrukcijas, pateiktas https://github.com/esp8266/Arduino, esančioje skiltyje „Diegimas naudojant lentų tvarkytuvę“. Atidarę lentų tvarkyklę iš meniu Įrankiai → Lenta, pasirinkite Tipas prisidėtas ir įdiekite platformą esp8266. Šis projektas buvo sudarytas naudojant ESP8266 2.3.0 versiją. Kitos versijos turės savo klaidų rinkinį ir gali neveikti su šiuo kodu.

PASTABA: NENAUDOKITE „Adafruit Board“diegimo, nes čia naudojamas eskizas nebus sudarytas pagal šį kodą.

Uždarykite ir vėl atidarykite „Arduino IDE“ir dabar meniu „Įrankiai → Lenta“galite pasirinkti „Adafruit HUZZAH ESP8266“.

Taip pat turite įdiegti naujausią „pfodESP8266WiFiBufferedClient“bibliotekos versiją. Ši biblioteka veikia su ESP8266.com IDE papildiniu V2.3. (Jei anksčiau įdiegėte „pfodESP2866WiFi“biblioteką, visiškai ištrinkite tą bibliotekos katalogą.)

  • a) Atsisiųskite šį „pfodESP8266WiFiBufferedClient.zip“failą į savo kompiuterį, perkelkite jį į darbalaukį ar kitą aplanką, kurį lengvai rasite
  • b) Tada naudokite „Arduino 1.8.5 IDE“meniu parinktį Eskizas → Importuoti biblioteką → Pridėti biblioteką, kad ją įdiegtumėte. (Jei „Arduino“neleidžia jos įdiegti, nes biblioteka jau egzistuoja, suraskite ir ištrinkite senesnį aplanką „pfodESP8266BufferedClient“, tada importuokite šį)
  • c) Sustabdykite ir iš naujo paleiskite „Arduino IDE“ir skiltyje „Failas-> Pavyzdžiai“dabar turėtumėte pamatyti pfodESP8266BufferedClient.

Tinklo SSID ir slaptažodžio, IP ir prievado nustatymas

Įdiegę biblioteką „pfodESP8266BufferedClient“, atidarykite „Arduino IDE“ir nukopijuokite šį eskizą „Wifi_Bridge.ino“į IDE. Prieš programuodami modulį, turite nustatyti tinklo SSID ir slaptažodį bei pasirinkti nepanaudotą IP.

Redaguokite šias tris eilutes netoli „Wifi_Bridge.ino“viršaus

char ssid = "*****"; char slaptažodis = "**** *****"; char staticIP = "10.1.1.180";

Aš naudoju „Fing“(„Android“arba „iOS“) programą, norėdamas nuskaityti savo vietinį tinklą ir nustatyti jau naudojamą IP. Paprastai yra saugu pasirinkti nepanaudotą IP diapazoną nuo.180 iki.254

Norėdami pradėti, galite palikti prievadą Nr. 23, standartinį telneto ryšio prievadą.

Atlikę šiuos pakeitimus, galite užprogramuoti ESP8266.

HUZZAH ESP8266 programavimas

Norėdami užprogramuoti HUZZAH ESP8266, prijunkite USB prie nuoseklaus kabelio, kaip parodyta nuotraukoje. Patikrinkite nuotrauką ir laidus. Taip pat žiūrėkite ESP8266 programavimo patarimus (espcomm nepavyko)

Aš naudoju „Sparkfun USB to TTL 3V3“nuoseklųjį kabelį, nes jame yra pažymėti TX ir RX laidai. Įsitikinkite, kad TX laidas yra prijungtas prie RX kaiščio, o RX laidas yra prijungtas prie TX kaiščio, kaip parodyta aukščiau. Jei naudojate „Adafruit“kabelį, jo gnybtai nėra pažymėti, tačiau yra pažymėti spalvomis, raudona - maitinimas, juoda - šlifuota, žalia - TX, o balta - RX.

Įkiškite USB į nuoseklųjį kabelį į kompiuterį ir pasirinkite jį COM prievadą meniu Įrankiai → Prievadas. Palikite numatytąjį CPU dažnį, blykstės dydį ir įkėlimo greitį.

Tada įjunkite „Adafruit HUZZAH ESP2866“modulį į programavimo režimą, laikydami nuspaudę mygtuką „GPIO0“ir spustelėdami mygtuką „Atstatyti“, tada atleisdami mygtuką „GPIO0“. Šviesos diodas GPIO0 turėtų likti silpnas. Tada pasirinkite Failas → Įkelti arba naudokite rodyklės dešinėn mygtuką, kad sudarytumėte ir įkeltumėte programą. Jei įkėlus gaunate klaidos pranešimą, patikrinkite, ar kabelių jungtys prijungtos prie tinkamų kaiščių, ir bandykite dar kartą.

Kai programavimas bus baigtas, modulio raudona lemputė turėtų užsidegti. Tai rodo, kad jis sėkmingai prisijungė prie jūsų vietinio tinklo ir paleido serverį priimti ryšį.

Bandomas HUZZAH ESP2866

Norėdami išbandyti HUZZAH ESP2866, palikite prijungtą programavimo kabelį ir atidarykite „Arduino IDE Tools → Serial Monitor“ir nustatykite 9600 baudų (apatiniame dešiniajame kampe). Tada kompiuteryje atidarykite terminalo programą, aš naudoju „TeraTerm“, skirtą „Windows“, ir „CoolTerm“, skirtą „Mac“, ir prisijungiu prie IP ir prievado, kurį nustatėte „Wifi_Bridge.ino“eskize.

Kai prijungsite raudoną lemputę ant modulio, ji turėtų pradėti mirksėti, rodydama, kad yra ryšys. Dabar turėtumėte galėti rašyti į savo kompiuterio terminalo langą, o simboliai turėtų būti rodomi „Arduino IDE“monitoriaus lange ir atvirkščiai.

„Wi -Fi“ryšio skirtasis laikas

„Wifi_Bridge.ino“kodas turi ryšio laiką.

uint32_t connectionTimeout = 60000; // 60 sek. Prisijungimo laikas baigėsi

Jei 60 sekundžių HUZZAH ESP8266 modulis negauna „WiFi“duomenų, moduliai nutraukia ryšį ir laukia naujo. Tai užtikrina, kad modulis atsigauna po „pusiau uždarytų“ryšių, kurie įvyko, klientas tiesiog dingsta dėl blogo „WiFi“ryšio, maitinimo praradimo maršrutizatoriuje arba priverstinio kliento išjungimo. Daugiau informacijos rasite Pusiau atidarytų (nukritusių) TCP/IP lizdų jungčių aptikimas.

Šis ryšio laikas baigėsi 60 sekundžių. bet prireikus gali sumažėti arba padidėti. Nustačius jį į 0 reiškia niekada nebaigti laiko, o tai nerekomenduojama.

Plunksnos nRF52 programavimas

Norėdami užprogramuoti „Feather nRF52“, vadovaukitės instrukcijomis, kaip atsisiųsti ir įdiegti „Feather nRF52“„Arduino Board“palaikymą. Patikrinkite, ar galite prisijungti ir užprogramuoti plokštę per USB kabelį.

PASTABA: Prieš bandydami programuoti plunksną, atjunkite HUZZAH ESP8266 modulį nuo „Feather nRF52“

„Feather nRF52“prijungimas prie BLE įrenginio susideda iš dviejų etapų. Pirmiausia nustatykite įrenginio MAC adresą (ir tipą) ir patikrinkite, ar jis palaiko „Nordic UART“paslaugą, naudodamas „TX Notify“, o tada perkelkite tą adresą ir tipą į tilto eskizą.

5 veiksmas: prisijungimas prie BLE įrenginio

Prisijungimas prie BLE įrenginio
Prisijungimas prie BLE įrenginio
Prisijungimas prie BLE įrenginio
Prisijungimas prie BLE įrenginio
Prisijungimas prie BLE įrenginio
Prisijungimas prie BLE įrenginio

Kai HUZZAH ESP8266 yra užprogramuotas, į „Feather nRF52“eskizą turite koduoti įrenginio, prie kurio norite prisijungti, BLE adresą ir tipą. Tai dviejų žingsnių procesas. I) Paleiskite nuskaitymo programą, kad surastumėte netoliese esančius BLE įrenginius, kuriuose įdiegta „Nordic UART Service“(TX Notify), tada nukopijuokite to skaitytuvo išvestį į „Feather Bridge“eskizą, kad jis prisijungtų prie to įrenginio.

BLE išorinių įrenginių nuskaitymas

Norėdami nustatyti suderinamus BLE išorinius įrenginius, įkelkite programą central_bleuart_scanner.ino į savo „Feather nRF52“. Ši programa nuolat ieško naujų įrenginių ir patikrina, ar jie palaiko „Nordic UART“paslaugą su „TX Notify“.

Šiaurės šalių UART paslauga

„Nordic UART Service“susideda iš trijų dalių, „Service UUID“ir „RX“bei „TX“charakteristikų. Štai keletas pavyzdinio kodo, kurį „RedBear NanoV2“sukūrė „pfodDesignerV3“

BLEService uartService = BLEService ("6E400001B5A3F393E0A9E50E24DCCA9E");

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

„pfodDesignerV3“gali sugeneruoti daugelio BLE modulių pavyzdinį kodą. Tačiau kadangi nėra „BLE“specifikacijos „standartiniam“UART ryšiui, ne visi moduliai naudoja „Nordic UART“paslaugą. Pavyzdžiui, HM-10 moduliai („Itead BLE“skydas), „RFduno“ir „Romeo BLE“naudoja savo unikalias uart paslaugas, todėl neprisijungs prie „Feather nRF52“.

Šios plokštės bus sujungtos:- Adafruit Bluefruit Feather nRF52, Arduino/Genuino 101, RedBearLab BLE Nano V2 ir V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend and Flora Boards, Adafruit Bluefruit LE SPI (ty Bluefruit LE Shield, „Bluefruit LE Micro“, „Feather 32u4 Bluefruit LE“, „Feather M0 Bluefruit LE“arba „Bluefruit LE SPI Friend“) Taip pat lentos, kurias galima koduoti pasirinktinėmis paslaugomis, arba lentos, kuriose galima naudoti BLEPeripheral biblioteką.

Čia naudojama pavyzdinė lenta yra „Arduino“/„Genuino 101“su kodu, sukurtu „pfodDesignerV3“. Nemokamas „pfodDesignerV3“leidžia jums sukurti „pfodApp“meniu, tada sugeneruoja „Arduino“kodą, reikalingą tiksliai parodyti „Android“mobiliojo telefono meniu, naudojant (mokamą) „pfodApp“. „pfodApp“taip pat prisijungs per „Wifi“, taip pat „Bluetooth Classic“, BLE ir SMS, todėl galės prisijungti per šį „Wifi2BLE“tiltą. Tačiau net jei nenorite naudoti „pfodApp“kaip savo valdymo programos, vis tiek galite naudoti „pfodDesignerV3“, kad sukurtumėte Šiaurės šalių UART paslaugų kodą savo BLE plokštei.

Šioje mokymo nuorodoje aprašomas „Arduino“/„Genuino 101 BLE“nustatymas ir paprasto LED įjungimo/išjungimo valdiklio sukūrimas naudojant „pfodDesignerV3“. „PfodDesignerV3“sukurtas eskizas yra „Arduino101_led_control.ino“

Užprogramavę „Arduino“/„Genuino 101“su „Arduino101_led_control.ino“, galėsite prisijungti prie „pfodApp“ir parodyti šį ekraną „Android“mobiliajame telefone.

Tačiau tai tik pavyzdys ir jums nereikia pirkti „pfodApp“, kad užbaigtumėte šį projektą. Svarbiausia, kad nemokama programa „pfodDesignerV3“sugeneruoja „Arduino“/„Genuino 101“kodą, įgyvendinantį Šiaurės šalių UART paslaugą. Taigi leiskite tai nuskaityti.

Tačiau tai tik pavyzdys ir jums nereikia pirkti „pfodApp“, kad užbaigtumėte šį projektą. Svarbiausia, kad nemokama programa „pfodDesignerV3“sugeneruoja „Arduino“/„Genuino 101“kodą, įgyvendinantį Šiaurės šalių UART paslaugą. Taigi leiskite tai nuskaityti.

Skenuojama Šiaurės šalių UART paslauga

Kai HUZZAH ESP8266 modulis yra atjungtas nuo „Feather nRF52“, užprogramuokite „Feather nRF52“naudodami central_bleuart_scanner.ino, tada atidarykite „Arduino IDE Tools → Serial Monitor“ir nustatykite duomenų perdavimo spartą iki 9600. Įjungus „Arduino“/„Genuino 101“gaunamas išėjimas pirmasis ekrano vaizdas aukščiau.

Kaip matote, skaitytuvas rado du BLE įrenginius, „Arduino“/„Genuino 101“, kuriame buvo rasta „Nordic UART“paslauga, BET TX charakteristika nepalaiko „Notify“. Skaitytuvas taip pat rado „RFduino BLE“modulį, tačiau „RFduino“nenaudoja „Nordic UART Service“, o naudoja savo. „Bluetooth“komitetas kaltina tai, kad nenurodė „standartinės“UART paslaugos, o paliko kiekvienam gamintojui susikurti savo.

Kaip aprašyta aukščiau, 101 kodą pirmiausia sukūrė „pfodDesignerV3“, skirtas naudoti su „pfodApp“. „pfodApp“nėra toks išrankus „TX Notify“, kaip „Feather nRF52“uart kodas. „pfodApp“veikia su „101“, kaip užprogramuota, tačiau „Feather nRF52“reikalauja „TX Notify“, todėl norint šiek tiek patenkinti plunksną, reikia šiek tiek pakeisti kodą.

Atidarykite „Arduino101_led_control.ino“„Arduino IDE“ir netoli viršaus rasite šias dvi eilutes. Antroji eilutė yra tik charakteristikos aprašymas ir neveikia operacijos.

BLECharacteristic txCharacteristic = BLECharacteristic ("6E400003-B5A3-F393-E0A9-E50E24DCCA9E", BLEIndicate, BLE_MAX_LENGTH); BLEDescriptor txNameDescriptor = BLEDescriptor ("2901","

Pakeiskite juos į

BLECharacteristic txCharacteristic = BLECharacteristic ("6E400003-B5A3-F393-E0A9-E50E24DCCA9E", BLENotify, BLE_MAX_LENGTH); BLEDescriptor txNameDescriptor = BLEDescriptor ("2901", "TX - (Pranešti)");

Tada iš naujo užprogramuokite 101 naudodami šią redaguotą versiją Arduino101_Notify_led_control.ino. Tada, kai iš naujo paleidžiate „Feather nRF52“skaitytuvą (central_bleuart_scanner.ino), „Serial Monitor“rodo antrą ekrano kopiją aukščiau.

Dabar „Genuino 101“klaidų nėra ir skaitytuvas išspausdina „Feather nRF52“tilto eskizui reikalingą kodą, kad jis prisijungtų prie „101“. Skaitytuvas patikrins kiekvieną aptiktą įrenginį. Raudona lemputė mirksi vieną kartą kiekvienam įrenginiui, aptiktam naudojant „Nordic UART Service“(„TX Notify“).

6 veiksmas: prisijungimas prie BLE periferinio įrenginio

LED indikacijos

„Feather nRF52“turi du šviesos diodus - mėlyną ir raudoną. Kai plokštė prijungta prie BLE įrenginio, mėlyna lemputė yra pastovi, kitaip ji mirksi. Skaitytuvas nėra prijungtas prie įrenginio, todėl jo mėlyna lemputė paprastai mirksi. Raudona lemputė mirksi vieną kartą kiekviename „Nordic UART Service“(TX Notify) įrenginyje. Kai veikia kaip skaitytuvas, „Red Led“skaičiuoja rastų „Nordic UART Service“(TX Notify) įrenginių skaičių. Veikiant kaip tiltas, raudona lemputė mirksi vieną kartą, kai yra prijungta prie kodinio BLE adreso.

Prisijungimas prie BLE išorinio įrenginio

Dabar, kai skaitytuvo eskizas pateikė išsamią informaciją apie BLE įrenginį, prie kurio norite prisijungti, galite nukopijuoti išvestį į central_bleuart_bridge.ino eskizą. Netoli to eskizo viršaus rasite šį kodą.

// Šios kitos trys kodo eilutės yra išvesties 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;

Pakeiskite tris kodo eilutes BLE įrenginio, prie kurio norite prisijungti, skaitytuvo išvestimi. Tada užprogramuokite „Feather nRF52“su redaguotu central_bleuart_bridge.ino eskizu.

„Central_bleuart_bridge“eskizo testavimas

Prieš prijungdami HUZZAH ESP8266 atgal į „Feather nRF52“, patikrinkite ryšį su savo BLE įrenginiu. Palikę „Feather nRF52“prijungtą prie jūsų „Arduino IDE“, atidarykite Įrankiai → Serijinis monitorius esant 9600 baudų ir patikrinkite, ar jūsų tikslinis BLE įrenginys įjungtas.

Kai bus prijungtas prie jūsų BLE įrenginio, kaip aprašyta aukščiau, mėlyna lemputė nuolat užsidegs, o raudona lemputė mirksės maždaug kas 10 sekundžių. Tai leidžia neužmegzti ir palaikyti ryšio.

Tada serijiniame monitoriuje galite įvesti komandas, kurias tikitės išsiųsti į savo BLE įrenginį, stebėti, kaip jis veikia, ir stebėti bet kokį atsiųstą atsakymą. Jei viskas gerai, galite išjungti ir prijungti HUZZAH ESP8266 modulį.

7 veiksmas: prisijunkite prie „BLE“įrenginio per „WiFi“- viską sudėkite

Užprogramavę ir išbandę HUZZAH ESP8266 modulį su jo tilto kodu (Wifi_Bridge.ino), sukonfigūruotu jūsų tinklo SSID ir slaptažodžiui bei IP IR užprogramuoti ir išbandyti „Feather nRF52“su tilto kodu (central_bleuart_bridge.ino), sukonfigūruotu pagal BLE įrenginio adresą ir įveskite, tada galite juos prijungti ir prijungti USB maitinimo šaltinį prie plunksnų modulio, kad abu įjungtumėte.

„HUZZAH“modulio raudonasis šviesos diodas turėtų užsidegti tolygiai, kai jungiasi prie jūsų vietinio tinklo maršrutizatoriaus, o „Feather Blue“- nuolat, kai jungiasi prie jūsų „BLE“įrenginio, o plunksnos raudonas indikatorius turi mirksėti maždaug kas 10 sekundžių arba taip BLE įrenginys prijungtas.

Atidarykite savo telnet programą ir prisijunkite prie HUZZAH IP ir prievado. Raudona lemputė HUZZAH turėtų lėtai mirksėti, rodydama, kad jūsų programa prijungta, ir jūs turėtumėte siųsti komandas į savo BLE įrenginį per „WiFi“ir stebėti, kaip veikia BLE įrenginys, ir pamatyti bet kokį atsakymą savo telneto lange. Atminkite, kad jei jūsų BLE įrenginys nesiunčia jokių duomenų 60 sekundžių, HUZZAH kodas pristabdys ryšį ir atjungs, o HUZZAH raudona lemputė vėl užges.

8 žingsnis: Pagalba - tai neveikia

Pirmiausia atlikite aukščiau aprašytus bandymo veiksmus, išbandykite HUZZAH ESP2866 ir išbandykite eskizo central_bleuart_bridge eskizą.

Nuskaitymo problemos

Jei skaitytuvas negali rasti jūsų BLE įrenginio, jis yra per toli arba nėra reklamuojamas arba jau prijungtas prie kažko. Pabandykite perkelti skaitytuvą arčiau ir įjungti įrenginį, tada išjunkite visus kitus šalia esančius mobiliuosius įrenginius, kurie gali turėti ryšį su BLE įrenginiu.

Jei gausite tokį skaitytuvo išvestį.

Prisijungta prie 98: 4F: EE: 0C: FC: 8F Ieškoma „Nordic UART“paslaugų … Nieko nerasta ARBA nerandama !!!!! Nepavyko nustatyti Šiaurės šalių UART paslaugos !!!!!!!! Jei tikėjotės Šiaurės šalių UART paslaugos, perkelkite skaitytuvą arčiau BLE įrenginio !!!!

Gali būti, kad esate pakankamai arti BLE įrenginio, kad jį aptiktumėte, bet ne pakankamai arti, kad sėkmingai atrastumėte paslaugą ir surastumėte „Nordic UART“paslaugą. Pabandykite priartėti prie BLE įrenginio.

Kraštutiniu atveju galite naudoti nemokamą „Nordic nRF Connect“programą, skirtą „Android“arba „iOS“. Ši programa turi geresnį diapazoną ir jautrumą. Jis parodys, ar BLE įrenginys turi Šiaurės šalių UART paslaugą. Tačiau prieš bandydami naudoti „Wifi2BLE“tiltą vis tiek turėsite paleisti skaitytuvą ir prisijungti bei identifikuoti „Nordic UART Serivice“, nes jame naudojamas panašus į skaitytuvą kodas.

Jei norite gilintis, galite naudoti „Adafruit Bluefruit LE Sniffer“modulį, kad pamatytumėte, kas yra ore.

BLE ryšio problemos

Jei jums pavyko nuskaityti BLE įrenginį, labiausiai tikėtinos ryšio problemų priežastys yra I) BLE įrenginys yra per toli, II) kažkas kitas jau prijungtas prie BLE įrenginio

„WiFi“ryšio problemos

Jei „HUZZAH ESP8266“raudonas šviesos diodas nešviečia, jis neturi ryšio su jūsų tinklu per maršrutizatorių. Patikrinkite turimą SSID ir slaptažodį „Wifi_Bridge.ino“ir naudokite „Fing“programą „Android“arba „iOS“, kad patikrintumėte, ar jūsų paskirtas IP dar nėra naudojamas. Pabandykite išjungti visus kompiuterius ir įrenginius ir įjungti ciklinį maršrutizatorių (palikite jį išjungtą 20 sekundžių), tada nuskaitykite dar kartą naudodami „Fing“. Galiausiai, jei ryšys vis nutrūksta, nepamirškite „Wifi_Bridge.ino“kodo ryšio skirtojo laiko nustatymo.

9 žingsnis: išplėtimas ir išvados

Čia pateiktas projektas yra paprasčiausias variantas. Yra keletas galimų plėtinių, tokių kaip:-

  • „Feather nRF52“gali vienu metu prisijungti prie iki 4 „BLE“įrenginių, kad galėtumėte pakeisti kodą, kad pridėtumėte daugiau galiojančių adresų ir valdytumėte iki 4 įrenginių iš vieno „WiFi“ryšio. Žr. Pavyzdinį kodą, pateiktą kartu su įdiegta „Feather nRF52“plokšte.
  • Galite padaryti skylę savo maršrutizatoriuje, kad galėtumėte pasiekti BLE įrenginį iš bet kurios interneto vietos. Žr. „Pasidaryk pats„ IoT “įrenginių prijungimas prie interneto naudojant„ pfodApp “.
  • Galite naudoti kodą iš „Cheap/Simple Wifi Shield“, kad galėtumėte konfigūruoti HUZZAH „WiFi“tinklo parametrus per tinklalapį be perprogramavimo. Prie grandinės turėsite pridėti konfigūracijos mygtuką.
  • Galite pridėti konfigūracijos mygtuką (naudodami tą patį mygtuką, kaip nurodyta aukščiau), kuris leidžia „Feather nRF52“nuskaityti BLE įrenginius su „Nordic UART“(„TX Notify“) ir tada išsaugoti išsamiausią ryšį turinčio ryšio informaciją. Norėdami išsaugoti rezultatą, turėsite naudoti „nffs“biblioteką, pateiktą kartu su „Adafruit nRF52“plokštės įdiegimu.
  • Galite pridėti tinklalapį prie kodo HUZZAH ESP8266, kad suteiktumėte pasirinktinę sąsają savo BLE įrenginiui. Taip pat galite naudoti „pfodDesignerV3“ir „pfodApp“, kad pridėtumėte pasirinktinę sąsają be jokių pakeitimų šiame projekte.

Išvada

Šis paprastas projektas suteikia „WiFi“prieigą prie bet kurio „Bluetooth Low Energy“(BLE) modulio, kuris įgyvendina „Nordic“UART su „TX Notify“. „Wifi2BLE“tiltas yra visiškai skaidrus. Jis tiesiog perduoda „WiFi“duomenis BLE įrenginiui ir perduoda BLE įrenginio duomenis atgal į „WiFi“ryšį.

Dėl paprastos konstrukcijos ir išsamių bandymų instrukcijų tai yra tinkamas projektas pradedantiesiems, norintiems pasiekti savo BLE įrenginį iš savo kompiuterio arba už įprastos BLE diapazono ribų.

Šis projektas taps svarbesnis, kai BLE įrenginio programinė įranga pasieks naująją „Bluetooth V5 Mesh“specifikaciją. Tada „Wifi2BLE“suteiks interneto prieigą prie viso jūsų namų automatikos.

Rekomenduojamas: