Talaan ng mga Nilalaman:

Simpleng WiFi sa BLE (Bluetooth Mababang Enerhiya) Bridge: 9 Mga Hakbang (na may Mga Larawan)
Simpleng WiFi sa BLE (Bluetooth Mababang Enerhiya) Bridge: 9 Mga Hakbang (na may Mga Larawan)

Video: Simpleng WiFi sa BLE (Bluetooth Mababang Enerhiya) Bridge: 9 Mga Hakbang (na may Mga Larawan)

Video: Simpleng WiFi sa BLE (Bluetooth Mababang Enerhiya) Bridge: 9 Mga Hakbang (na may Mga Larawan)
Video: Free Startup Investor Q&A Office Hours with Scott Fox & Cake Equity 2024, Hulyo
Anonim
Simpleng WiFi sa BLE (Bluetooth Low Energy) Bridge
Simpleng WiFi sa BLE (Bluetooth Low Energy) Bridge
Simpleng WiFi sa BLE (Bluetooth Low Energy) Bridge
Simpleng WiFi sa BLE (Bluetooth Low Energy) Bridge
Simpleng WiFi sa BLE (Bluetooth Low Energy) Bridge
Simpleng WiFi sa BLE (Bluetooth Low Energy) Bridge

I-update ang ika-4 ng Disyembre 2017 - binago ang mga sketch ng Feather nRF52 at mga tip sa pag-debug. Nagdagdag ng mga larawan ng tulay na naka-mount sa kahon

Ang simpleng proyekto na ito ay nagbibigay ng pag-access sa WiFi sa anumang module ng Bluetooth Low Energy (BLE) na nagpapatupad ng UART ng Nordic sa TX Notify. Ang tulay ng Wifi2BLE ay ganap na transparent. Ipinapasa lamang nito ang data ng WiFi sa BLE device at ipinapasa ang data ng BLE device pabalik sa koneksyon sa WiFi.

Ang libreng pfodDesignerV3 ay bumubuo ng code upang ipatupad ang isang Serbisyo ng Nordic UART sa maraming mga module ng BLE kabilang ang, Adafruit Bluefruit Feather nRF52, Arduino / Genuino 101, RedBearLab BLE Nano V2 at V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend at Flora Boards, Adafruit Bluefruit LE SPI (ie Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE o Bluefruit LE SPI Friend) at anumang iba pang mga board na hinahayaan kang i-program ang iyong sariling serbisyo.

Ang tulay na Wifi2BLE na ito ay angkop para sa walang karanasan na tagapagbuo na maaaring maghinang. Gumagamit lamang ito ng dalawang board, isang ribbon cable at dalawang resistors

Pati na rin ang detalyadong pagsusuri para sa bawat board, ang itinuturo na ito ay may kasamang isang Tulong - Hindi Ito Gumagana hakbang na may higit pang mga tip sa paghahanap ng kasalanan.

Ang mga tagubiling ito ay magagamit din online

Bakit ang Proyekto na ito?

Nalulutas ng proyektong ito ang isang bilang ng mga problema na mayroon ang BLE (Bluetooth Low Energy).

  • Ang mga kamakailang mobiles at computer lamang ang sumusuporta sa BLE. Pinapayagan ng tulay ng Wifi2BLE ang anumang mobile o computer na may koneksyon sa WiFi upang kumonekta at makontrol ang BLE device.
  • Ang BLE ay may limitadong saklaw. Pinapayagan ka ng tulay ng Wifi2BLE na i-access ang aparato ng BLE mula sa kahit saan sa bahay (kung saan mayroong koneksyon sa WiFi) at mula sa labas sa pamamagitan ng Internet.
  • Ang paglikha ng mga BLE app ay nangangailangan sa iyo na malaman ang Android o iOS. Ang tulay ng Wifi2BLE ay nagbibigay ng isang unibersal na koneksyon sa telnet sa pamamagitan ng anumang programa sa terminal. Dagdag pa maaari mong madaling magdagdag ng isang web page sa module ng WiFi upang lumikha ng iyong sariling pasadyang interface.
  • Nangako ang BLE V5 ng mesh networking upang ikonekta ang lahat ng iyong aparato sa bahay na BLE, sa sandaling mahuli ng software ang pinakabagong detalye sa Bluetooth. Gumagamit ang tulay ng Wifi2BLE ng isang aparato na BLE V5 at sa gayon ay magbibigay ng access sa internet sa home network na ito pagdating nito.

Ang aking agarang paggamit para sa proyektong ito ay upang idagdag ang silid ng silid ng BLE light control sa network ng WiFi upang payagan itong makontrol mula sa kahit saan sa bahay. Bagaman ang tutorial na ito ay gumagamit ng pfodApp bilang halimbawa ng pagkontrol sa mga board ng BLE sa pamamagitan ng WiFi, hindi mo kailangang bumili ng pfodApp upang makumpleto ang proyektong ito.

Hakbang 1: Listahan ng Mga Bahagi

Gastos ~ US $ 60 hanggang sa ika-30 ng Nobyembre, hindi kasama ang pagpapadala + isang maliit na enclosure ng plastik

Adafruit Feather nRF52 Bluefruit LE - nRF52832 - ~ US $ 25

Adafruit HUZZAH ESP8266 Breakout - ~ US $ 10

Ribbon Cable na may magkakahiwalay na mga dulo ng babae - Cable Pirate Cable ~ US $ 5 https://www.sparkfun.com/products/9556 O 10-pin IDC Socket Rainbow Breakout Cable ~ US $ 4 https://www.sparkfun.com/products/ 9556 O magkatulad

Break Away Male Headers - Right Angle - ~ US $ 2

USB sa TTL 3V3 Serial Cable - ~ US $ 10 https://www.sparkfun.com/products/12977 (Mas ginustong mayroon itong mga label na may label) O https://www.sparkfun.com/products/12977 (ang mga pin ay HINDI may label na)

USB A hanggang Micro B cable - ~ US $ 4 https://www.sparkfun.com/products/12977 (3 talampakan ang haba) O ~ US $ 3 https://www.sparkfun.com/products/12977 (6 pulgada ang haba) O ~ US $ 2 https://www.sparkfun.com/products/12977 (6 pulgada ang haba) O ~ US $ 5 https://www.sparkfun.com/products/12977 (6 talampakan ang haba) O magkatulad

2 x 100 ohm resistors - ~ US $ 1

USB power supply (500mA o higit pa) - ~ US $ 6 https://www.sparkfun.com/products/12890 O ~ US $ 7 https://www.adafruit.com/product/1994 O magkatulad

Arduino IDE V1.8.5 at isang computer upang mapatakbo ito.

Para sa isang plastic box ginamit ko ang isa mula sa Jaycar UB5 (asul) 83mm x 54mm x 31mm ~ Isang $ 4

Hakbang 2: Wifi2BLE Circuit

Wifi2BLE Circuit
Wifi2BLE Circuit

Ang circuit ng Wifi2BLE ay ipinakita sa itaas. Narito ang isang bersyon ng pdf. Tulad ng nakikita mo ang circuit ay napaka-simple. 4 na wires lang at dalawang 100 ohm resistors ng proteksyon. Ang mga resistors ng proteksyon ay sakaling hindi mo makonekta ang mga linya ng TX / RX pagkatapos i-program ang HUZZAH ESP8266 o ang Feather nRF52.

TANDAAN: Ang board na Feather nRF52 na pagmamarka para sa mga pin ng TX at RX ay hindi wasto. Ang TX pin ay talagang isang katabi ng DFU pin at ang RX pin ay ang isa sa tabi ng MISO pin

Tiyaking ikinonekta mo ang mga linya ng TX / RX tulad ng ipinakita sa itaas. Sa kasamaang palad ang mga resistors ng proteksyon ay ginawa ang kanilang trabaho at ang mga board ay hindi nasira habang inayos ko kung bakit ang mga board ay hindi kumukuha sa bawat isa.

Hakbang 3: Konstruksiyon ng Wifi2BLE

Paggawa ng Wifi2BLE
Paggawa ng Wifi2BLE
Paggawa ng Wifi2BLE
Paggawa ng Wifi2BLE
Paggawa ng Wifi2BLE
Paggawa ng Wifi2BLE

Ang mga pin ng header na may tamang anggulo kung saan naghinang sa HUZZAH ESP8266 upang payagan itong mai-unplug para sa pag-program. Apat na mga wire ng ribbon cable ang ginagamit upang ikonekta ang dalawang board. Panatilihin ang mga babaeng konektor na pin at putulin ang kabilang dulo ng ribbon cable. Ang aking ribbon cable ay may parehong kulay tulad ng Sparkfun USB sa TTL programming cable kaya't pinili ko ang kawad upang itugma ito. Itim para sa GND, Pula para sa 5V +, Orange para sa TX (kumokonekta sa ESP8266 RX) at Brown para sa RX (kumokonekta sa ESP8266 TX)

I-wire ko ang mga resistors ng proteksyon sa likod ng board ng Feather nRF52. (Ang mga mapagmasid na tagapagbuo na alam ang kanilang mga resistor code ay makikita na gumamit ako ng dalawang 68 ohm resistors na aking ipinasa sa kamay sa halip na 100 ohm) at pagkatapos ay insulated ang mga ito ng ilang shrink wrap.

Ang Red cable ay solder sa Feather nRF52 USB pin upang kunin ang USB 5V upang mapagana ang HUZZAH ESP8266 module at ang Black cable ay solder sa Feather nRF52 GND pin.

Iyon lang ang mayroon maliban sa pag-program ng mga module, tulad ng inilarawan sa ibaba, paglalagay nito sa isang kahon ng plastik at paglalagay ng suplay ng kuryente na USB sa Feather nRF52.

Hakbang 4: Wifi2BLE Programming

Wifi2BLE Programming
Wifi2BLE Programming
Wifi2BLE Programming
Wifi2BLE Programming
Wifi2BLE Programming
Wifi2BLE Programming

Programming ang HUZZAH ESP8266

Upang mai-program ang kalasag sundin ang mga tagubiling ibinigay sa https://github.com/esp8266/Arduino sa ilalim ng Pag-install Sa Mga Tagapamahala ng Mga Lupon. Kapag binubuksan ang Boards Manager mula sa menu ng Mga Tool → Board at piliin ang Na-ambag na Uri at i-install ang esp8266 platform. Ang proyektong ito ay naipon gamit ang bersyon ng ESP8266 na 2.3.0. Ang iba pang mga bersyon ay magkakaroon ng kanilang sariling hanay ng mga bug at maaaring hindi gumana sa code na ito.

TANDAAN: HUWAG gamitin ang pag-install ng Adafruit Board dahil ang sketch na ginamit dito ay hindi makakaipon sa ilalim ng code na iyon.

Isara at buksan muli ang Arduino IDE at maaari mo nang piliin ang "Adafruit HUZZAH ESP8266" mula sa menu ng Mga Tool → Board.

Kailangan mo ring i-install ang pinakabagong bersyon ng pfodESP8266WiFiBufferedClient library. Gumagana ang library na ito sa ESP8266.com IDE plug-in V2.3. (Kung dati mong na-install ang pfodESP2866WiFi library, ganap na tanggalin ang direktoryo ng library na iyon.)

  • a) I-download ang pfodESP8266WiFiBufferedClient.zip file na ito sa iyong computer, ilipat ito sa iyong desktop o ilang iba pang folder na madali mong mahahanap
  • b) Pagkatapos ay gamitin ang Arduino 1.8.5 IDE na pagpipilian sa menu Sketch → I-import ang Library → Idagdag ang Library upang mai-install ito. (Kung hindi ka hinayaan ng Arduino na mai-install ito dahil mayroon nang library pagkatapos hanapin at tanggalin ang mas matandang pfodESP8266BufferedClient folder at pagkatapos ay i-import ang isang ito)
  • c) Itigil at i-restart ang Arduino IDE at sa ilalim ng File-> Mga halimbawa na dapat mo na ngayong makita ang pfodESP8266BufferedClient.

Itinatakda ang Network ssid at password at IP at port

Matapos mong mai-install ang pfodESP8266BufferedClient library, buksan ang Arduino IDE at kopyahin ang sketch na ito, Wifi_Bridge.ino, sa IDE. Bago mo i-program ang module, kailangan mong itakda ang ssid at password ng iyong network at pumili ng isang hindi ginagamit na IP.

I-edit ang tatlong linya na ito malapit sa tuktok ng Wifi_Bridge.ino

char ssid = "**** ***"; char password = "**** *****"; char staticIP = "10.1.1.180";

Ginagamit ko ang Fing (Android o iOS) app upang i-scan ang aking lokal na network at kilalanin ang IP na ginamit na. Karaniwan itong ligtas na pumili ng isang hindi nagamit na IP sa saklaw na.180 hanggang.254

Upang magsimula sa maaari mong iwanan ang portNo bilang 23, ang karaniwang port para sa isang koneksyon sa telnet.

Kapag nagawa mo ang mga pagbabagong iyon maaari mong i-program ang ESP8266.

Programming ang HUZZAH ESP8266

Upang mai-program ang HUZZAH ESP8266, ikonekta ang USB sa Serial cable tulad ng ipinakita sa larawan. Suriin ang larawan at ang iyong mga kable. Tingnan din ang Mga Tip sa Programming ng ESP8266 (nabigo ang espcomm)

Ginagamit ko ang Sparkfun USB sa TTL 3V3 Serial Cable dahil mayroon itong marka ng mga lead na TX at RX. Tiyaking naka-plug ang lead ng TX sa RX pin at ang RX lead ay naka-plug sa pin ng TX tulad ng ipinakita sa itaas. Kung gumagamit ka ng Adafruit cable, wala itong mga terminal na minarkahan ngunit may kulay na naka-code, pula ang kapangyarihan, itim ang lupa, berde ay TX at puti ang RX.

I-plug ang USB sa Serial cable sa iyong computer at piliin ito COM port sa Tools → Port menu. Iwanan ang Frequency ng CPU, Laki ng Flash at Bilis ng Pag-upload sa kanilang mga default na setting.

Pagkatapos ay ilagay ang module ng Adafruit HUZZAH ESP2866 sa mode ng pagprograma sa pamamagitan ng pagpindot sa pindot ng push na GPIO0 at pag-click sa pindutang I-reset ang push at pagkatapos ay ilabas ang pindutan ng push na GPIO0. Ang pinangunahan ng GPIO0 ay dapat manatiling malabo. Pagkatapos piliin ang File → I-upload o gamitin ang pindutan ng Tamang Arrow upang makatipon at mai-upload ang programa. Kung nakakuha ka ng isang pag-upload ng mensahe ng error suriin ang iyong mga koneksyon sa cable ay naka-plug sa tamang mga pin at subukang muli.

Sa sandaling nakumpleto ang programa ay dapat na ilaw ang Red Led sa module. Ipinapahiwatig nito na matagumpay itong nakakonekta sa iyong lokal na network at sinimulan ang server upang tanggapin ang isang koneksyon.

Pagsubok sa HUZZAH ESP2866

Upang subukan ang HUZZAH ESP2866, iwanan ang koneksyon sa cable na nakakonekta at buksan ang Arduino IDE Tools → Serial Monitor at itakda ang 9600 baud (ibabang kanang sulok). Pagkatapos buksan ang isang programa ng terminal sa iyong computer, gumagamit ako ng TeraTerm para sa Windows at CoolTerm para sa Mac, at kumonekta sa IP at portHindi mo itinakda sa Wifi_Bridge.ino sketch.

Kapag ikinonekta mo ang Red Led sa module ay dapat magsimulang flashing, na nagpapahiwatig na mayroong isang koneksyon. Dapat mo na ngayong mai-type ang window ng iyong computer terminal at dapat lumitaw ang mga character sa window ng monitor ng Arduino IDE at versa.

Oras ng Pag-koneksyon ng Wifi

Ang Wifi_Bridge.ino code ay may oras ng koneksyon.

uint32_t connectionTimeout = 60000; // 60sec na oras ng koneksyon

Kung walang natanggap na data ng WiFi ng module ng HUZZAH ESP8266 para sa 60 secs pagkatapos isara ng mga module ang koneksyon at naghihintay para sa bago. Tinitiyak nito na makakakuha ang module ng koneksyon mula sa 'kalahating sarado' na kung saan nangyari ay nawala lamang ang kliyente dahil sa hindi magandang koneksyon sa WiFi, pagkawala ng kuryente sa router o sapilitang pagsara ng kliyente. Tingnan ang Pagtuklas ng Half-Open (Drosed) TCP / IP Socket Connections para sa higit pang mga detalye.

Ang oras ng koneksyon na ito ay nakatakda sa 60 sec. ngunit maaaring mabawasan o tumaas kung kinakailangan. Ang pagtatakda nito sa 0 ay nangangahulugang hindi kailanman mawalan ng oras kung saan hindi inirerekumenda.

Pagprogram ng Balahibo nRF52

Upang mai-program ang Feather nRF52, sundin ang mga tagubilin sa pag-download at pag-install ng suporta ng Arduino Board para sa Feather nRF52. Suriin maaari kang kumonekta, at i-program ang board sa pamamagitan ng USB cable.

TANDAAN: I-plug ang module ng HUZZAH ESP8266 mula sa Feather nRF52 bago subukang i-program ang Feather

Ang pagkonekta sa Feather nRF52 sa isang BLE aparato ay binubuo ng dalawang mga hakbang. Una kilalanin ang MAC address (at uri) sa aparato at suriin ito ay sumusuporta sa serbisyo ng Nordic UART na may TX Notify at pagkatapos ay ilipat ang address at i-type sa sketch ng tulay.

Hakbang 5: Koneksyon sa isang BLE Device

Koneksyon sa isang BLE Device
Koneksyon sa isang BLE Device
Koneksyon sa isang BLE Device
Koneksyon sa isang BLE Device
Koneksyon sa isang BLE Device
Koneksyon sa isang BLE Device

Kapag na-program ang HUZZAH ESP8266, kailangan mong i-code ang address na BLE at uri ng aparato na nais mong ikonekta sa sketch ng Feather nRF52. Ito ay isang proseso ng dalawang hakbang. I) Patakbuhin ang programa sa pag-scan upang makahanap ng mga kalapit na aparato ng BLE na nagpapatupad ng Serbisyo ng Nordic UART (TX Notify) at pagkatapos ay kopyahin ang output ng scanner na iyon sa sketch ng Feather bridge upang makuha ito upang kumonekta sa aparatong iyon.

Pag-scan para sa BLE Peripherals

Upang makilala ang mga katugmang BLE peripheral, i-load ang programang central_bleuart_scanner.ino sa iyong Feather nRF52. Ang program na ito ay patuloy na ini-scan para sa mga bagong aparato at pagkatapos ay suriin kung sinusuportahan nila ang serbisyong Nordic UART sa TX Notify.

Serbisyo ng Nordic UART

Ang Serbisyo ng Nordic UART ay binubuo ng tatlong bahagi, ang Serbisyo UUID at ang mga katangian ng RX at TX. Narito ang ilang sample code na nabuo ng pfodDesignerV3 para sa RedBear NanoV2

BLEService uartService = BLEService ("6E400001B5A3F393E0A9E50E24DCCA9E");

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

Ang pfodDesignerV3 ay maaaring makabuo ng sample code para sa isang bilang ng mga module na BLE. Gayunpaman dahil walang pagtutukoy ng BLE para sa isang 'pamantayan' na koneksyon sa UART hindi lahat ng mga module ay gumagamit ng serbisyo sa Nordic UART. Halimbawa ang mga modyul na HM-10 (Itead BLE na kalasag), ang RFduno at Romeo BLE ay gumagamit ng kanilang sariling natatanging mga serbisyo sa uart at sa gayon ay hindi makakonekta sa Feather nRF52.

Ang mga sumusunod na board ay magkonekta: - Adafruit Bluefruit Feather nRF52, Arduino / Genuino 101, RedBearLab BLE Nano V2 at V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend at Flora Boards, Adafruit Bluefruit LE SPI (ie Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE o Bluefruit LE SPI Friend) Pati na rin ang mga board na maaaring naka-code sa mga pasadyang Serbisyo o board na maaaring gumamit ng BLEPeripheral library.

Ang halimbawa ng board na ginamit dito ay ang Arduino / Genuino 101 na may code na nabuo ng pfodDesignerV3. Pinapayagan ka ng libreng pfodDesignerV3 na lumikha ng mga menu ng pfodApp at pagkatapos ay bumubuo ng Arduino code na kinakailangan upang ipakita ang eksaktong menu sa iyong Android mobile gamit ang (bayad) na pfodApp. Ang pfodApp ay makakonekta rin sa pamamagitan ng Wifi, pati na rin ang Bluetooth Classic, BLE at SMS, at sa gayon ay makakonekta sa pamamagitan ng tulay na Wifi2BLE na ito. Gayunpaman kahit na ayaw mong gumamit ng pfodApp bilang iyong control app, maaari mo pa ring gamitin ang pfodDesignerV3 upang makabuo ng isang Nordic UART service code para sa iyong BLE board.

Inilalarawan ng link ng tutorial na ito ang pag-set up ng Arduino / Genuino 101 BLE at paglikha ng isang simpleng LED on / off na kontrol sa pfodDesignerV3. Ang sketch na ginawa ng pfodDesignerV3 ay Arduino101_led_control.ino

Ang pagpoproseso ng Arduino / Genuino 101 gamit ang Arduino101_led_control.ino ay magpapahintulot sa iyo na kumonekta sa pfodApp at ipakita ang sumusunod na screen sa iyong Android mobile.

Gayunpaman ito ay isang halimbawa lamang at hindi mo kailangang bumili ng pfodApp upang makumpleto ang proyektong ito. Ang mahalagang bahagi ay ang libreng pfodDesignerV3 app na nakabuo ng code para sa Arduino / Genuino 101 na nagpapatupad ng isang Serbisyo sa Nordic UART. Hinahayaan itong i-scan para dito.

Gayunpaman ito ay isang halimbawa lamang at hindi mo kailangang bumili ng pfodApp upang makumpleto ang proyektong ito. Ang mahalagang bahagi ay ang libreng pfodDesignerV3 app na nakabuo ng code para sa Arduino / Genuino 101 na nagpapatupad ng isang Serbisyo sa Nordic UART. Hinahayaan itong i-scan para dito.

Pag-scan para sa isang Serbisyo sa Nordic UART

Sa module na HUZZAH ESP8266 na naka-disconnect mula sa Feather nRF52, i-program ang Feather nRF52 gamit ang central_bleuart_scanner.ino at pagkatapos ay buksan ang Arduino IDE Tools → Serial Monitor at itakda ang baud rate sa 9600. Ang pagbibigay lakas sa Arduino / Genuino 101 ay nagbibigay ng output na ipinakita sa ang unang screen shot sa itaas.

Tulad ng nakikita mong natagpuan ng scanner ang dalawang mga aparato ng BLE, isang Arduino / Genuino 101 na may nahanap na isang serbisyo sa Nordic UART dito, NGUNIT ang katangian ng TX ay hindi sumusuporta sa Abisuhan. Natagpuan din ng scanner ang isang module ng RFduino BLE ngunit ang RFduino ay hindi gumagamit ng Nordic UART Service ngunit sa halip ay gumagamit ng sarili nitong. Sinisi ng Komite ng Bluetooth ang sisihin para dito sa hindi pagtukoy ng isang 'pamantayan' na Serbisyo ng UART, sa halip ay iniiwan ang bawat tagagawa upang mabuo ang kanilang isa.

Tulad ng sakop sa itaas ng 101 code ay nabuo ng pfodDesignerV3 pangunahin para magamit sa pfodApp. Ang pfodApp ay hindi tulad ng pagpili ng tungkol sa TX Abisuhan bilang ang Feather nRF52 uart code. Gumagana ang pfodApp kasama ang 101 tulad ng naka-program ngunit pinipilit ng Feather nRF52 sa TX Notify kaya kailangan ng kaunting pagbabago sa code upang masiyahan ang Feather.

Buksan ang Arduino101_led_control.ino sa Arduino IDE at malapit sa tuktok makikita mo ang dalawang linya na ito. Ang pangalawang linya ay isang paglalarawan lamang ng katangian at hindi nakakaapekto sa operasyon.

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

Palitan ang mga ito sa

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

Pagkatapos ay i-program muli ang 101 sa na-edit na bersyon na ito, Arduino101_Notify_led_control.ino. Pagkatapos kapag pinatakbo mo muli ang Feather nRF52 scanner (central_bleuart_scanner.ino), ipinapakita ng Serial Monitor ang ikalawang pagbaril ng screen sa itaas.

Walang mga error para sa Genuino 101 ngayon at inililimbag ng scanner ang code na kinakailangan para sa sketch ng Feather nRF52 tulay upang kumonekta ito sa 101. Susuriin ng scanner ang bawat aparato na matatagpuan nito sa saklaw. Ang Red led flashes isang beses para sa bawat aparato na matatagpuan sa Nordic UART Service (TX Notify).

Hakbang 6: Kumokonekta sa isang BLE Peripheral

Mga Pahiwatig ng LED

Ang Feather nRF52 ay may dalawang leds, Blue at Red. Kapag ang board ay konektado sa isang aparato na BLE, ang Blue Led ay pare-pareho, kung hindi man ay kumikislap ito. Ang scanner ay hindi mananatiling konektado sa aparato kaya't ang Blue led na ito ay karaniwang flashing. Ang Red led flashes isang beses para sa bawat aparatong Nordic UART Service (TX Notify). Kapag tumatakbo bilang isang scanner binibilang ng Red Led ang bilang ng mga nahanap na aparato ng Nordic UART Service (TX Notify). Kapag tumatakbo bilang isang tulay, ang Red Led ay kumikislap nang isang beses kapag nakakonekta sa code na address na BLE.

Kumokonekta sa isang BLE Peripheral

Ngayon na ang sketch ng scanner ay nagbigay ng mga detalye para sa BLE aparato na nais mong ikonekta, maaari mong kopyahin ang output sa sketch ng sentral_bleuart_bridge.ino. Malapit sa tuktok ng sketch na iyon ay mahahanap mo ang sumusunod na code.

// Ang mga susunod na tatlong linya ng code ay nagmula sa output na sentral_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;

Palitan ang tatlong linya ng code ng output mula sa scanner para sa BLE device na nais mong tulay. Pagkatapos ay i-program ang Feather nRF52 gamit ang na-edit na gitnang sentral_bleuart_bridge.ino sketch.

Pagsubok sa sketch ng central_bleuart_bridge

Bago i-plug ang HUZZAH ESP8266 pabalik sa Feather nRF52, subukan ang koneksyon sa iyong BLE device. Ang pag-iwan sa Feather nRF52 na konektado sa iyo Arduino IDE, buksan ang Mga Tool → Serial Monitor sa 9600 baud at pagkatapos suriin ang iyong target na BLE aparato ay pinalakas.

Kapag ang koneksyon ay ginawa sa iyong aparato na BLE, tulad ng inilarawan sa itaas, ang Blue led ay patuloy na mag-iilaw at ang Red led ay mag-flash nang isang beses bawat 10sec o higit pa. Hinahayaan ka nitong hindi ang koneksyon ay nagawa at mapanatili.

Pagkatapos sa Serial Monitor maaari mong ipasok ang mga utos na inaasahan mong ipadala sa iyong BLE aparato at panoorin itong gumana at subaybayan ang anumang tugon na ibabalik nito. Kung ang lahat ay mabuti maaari mong i-power down at i-plugin ang HUZZAH ESP8266 module.

Hakbang 7: Pagkonekta sa BLE Device Sa Pamamagitan ng WiFi - Pagsasama-sama sa Lahat

Sa sandaling nai-program at nasubukan mo ang module ng HUZZAH ESP8266 kasama ang code ng tulay (Wifi_Bridge.ino) na naka-configure para sa iyong network ssid at password at IP AT na-program at nasubukan ang Feather nRF52 kasama ang code ng tulay nito (central_bleuart_bridge.ino) na naka-configure kasama ang address ng BLE device at i-type, pagkatapos ay maaari mong i-plug ang mga ito nang magkasama at i-plug sa isang supply ng USB sa module ng Balahibo upang mapagana silang dalawa.

Ang HUZZAH module na Red led ay dapat na ilaw up solid dahil kumokonekta ito sa iyong lokal na network router at ang Feather Blue na humantong ay dapat na ilaw up solid habang kumokonekta sa iyong BLE aparato at ang Feather Red na humantong dapat flash isang beses bawat 10 sec o higit pa upang ipahiwatig lamang sa Nakakonekta ang BLE device.

Ang buksan ang iyong programa sa telnet at kumonekta sa IP at port ng HUZZAH. Ang HUZZAH Red led ay dapat dahan-dahang mag-flash upang ipahiwatig na nakakonekta ang iyong programa at dapat kang magpadala ng mga utos sa iyong aparato na BLE sa pamamagitan ng WiFi at panoorin ang pagpapatakbo ng BLE device at makita ang anumang tugon sa iyong telnet window. Tandaan kung ang iyong aparato ng BLE ay hindi nagpapadala ng anumang data pabalik sa 60sec, ang HUZZAH code ay mawawala ang koneksyon at idiskonekta at ang HUZZAH Red led ay magiging solid muli.

Hakbang 8: Tulong - Hindi Ito Gumagana

Una gawin ang mga hakbang sa pagsubok na detalyado sa itaas, Pagsubok sa HUZZAH ESP2866 at Pagsubok sa sketch ng central_bleuart_bridge.

Mga problema sa pag-scan

Kung hindi ka mahanap ng scanner ng aparato na BLE ito ay napakalayo o hindi nag-a-advertise o nakakonekta na sa isang bagay. Subukang ilipat ang scanner nang mas malapit at paganahin ang pagbibisikleta ng aparato at patayin ang lahat ng iba pang malapit sa mga mobile device na maaaring may koneksyon sa BLE device.

Kung nakakuha ka ng isang output ng scanner na tulad nito.

Nakakonekta sa 98: 4F: EE: 0C: FC: 8F Naghahanap para sa serbisyo ng Nordic UART… Walang nahanap O Hindi matuklasan !!!!! Hindi Makilala ang isang Serbisyo sa Nordic UART !!!!!!!! Kung naghihintay ka ng isang Serbisyo sa Nordic UART, ilipat ang Scanner na mas malapit sa BLE aparato !!!!

Maaaring ikaw ay malapit na malapit sa aparato ng BLE upang makita ito ngunit hindi sapat ang malapit upang matagumpay na makagawa ng isang pagtuklas sa Serbisyo upang mahanap ang serbisyo ng Nordic UART. Subukang lumapit sa BLE device.

Bilang isang huling paraan maaari mong gamitin ang libreng Nordic nRF Connect app para sa Android o iOS. Ang app na iyon ay may mas mahusay na saklaw at pagiging sensitibo. Sasabihin nito sa iyo kung ang aparato ng BLE ay mayroong Serbisyo ng Nordic UART. Gayunpaman kakailanganin mo pa ring makuha ang scanner upang tumakbo at kumonekta at kilalanin ang Nordic UART Serivice bago mo subukang gamitin ang tulay ng Wifi2BLE dahil gumagamit ito ng code na katulad ng scanner.

Kung nais mong maghukay ng mas malalim maaari mong gamitin ang module ng Adafruit Bluefruit LE Sniffer upang makita kung ano ang nasa hangin.

Mga problema sa BLE Connection

Kung nagawa mong i-scan ang aparato ng BLE kung gayon ang malamang na mga sanhi ng mga problema sa koneksyon ay I) ang aparato ng BLE ay masyadong malayo, II) may iba pa na nakakonekta sa aparato ng BLE

Mga problema sa Koneksyon sa WiFi

Kung ang HUZZAH ESP8266 Red led ay hindi ilaw up solid pagkatapos ito ay walang koneksyon sa iyong network sa pamamagitan ng iyong router. Suriin ang ssid at password na mayroon kang code sa Wifi_Bridge.ino at gamitin ang Fing app na Android o iOS upang suriin na ang IP na iyong inilalaan ay hindi pa nagagamit. Subukang paganahin ang lahat ng iyong mga computer at aparato at pag-ikot ng kuryente sa router (iwanan ito sa 20sec) at pagkatapos ay i-scan muli sa Fing. Sa wakas kung ang koneksyon ay patuloy na bumababa, tandaan ang setting ng pag-timeout ng koneksyon sa Wifi_Bridge.ino code.

Hakbang 9: Mga Extension at Konklusyon

Ang ipinakitang proyekto dito ay ang pinakasimpleng bersyon. Mayroong isang bilang ng mga posibleng extension tulad ng: -

  • Ang Feather nRF52 ay may kakayahang kumonekta sa hanggang sa 4 na mga aparato ng BLE nang sabay-sabay upang mabago mo ang code upang magdagdag ng mas wastong mga address at makontrol ang hanggang sa 4 na mga aparato mula sa isang koneksyon sa WiFi. Tingnan ang halimbawa ng code na kasama ng pag-install ng board ng Feather nRF52.
  • Maaari mong suntukin ang isang butas sa iyong router upang magbigay ng pag-access sa BLE aparato mula sa kahit saan sa internet. Tingnan ang Pagkonekta ng mga aparato ng DIY IoT sa Internet gamit ang pfodApp.
  • Maaari mong gamitin ang code mula sa Murang / Simpleng Wifi Shield upang payagan kang i-configure ang mga parameter ng WiFi network para sa HUZZAH sa pamamagitan ng isang web page, nang walang muling pagprogram. Kakailanganin mong magdagdag ng isang pindutan ng push push sa circuit.
  • Maaari kang magdagdag ng isang pindutan ng push push (gamit ang parehong pindutan tulad ng nasa itaas) na ginagawang pag-scan ng Feather nRF52 para sa mga BLE device na may isang Nordic UART (TX Notify) at pagkatapos ay i-save ang mga detalye ng koneksyon para sa isa na may pinakamalakas na signal. Upang mai-save ang resulta, kakailanganin mong gamitin ang nffs library na kasama ng pag-install ng board ng Adafruit nRF52.
  • Maaari kang magdagdag ng isang web page sa HUZZAH ESP8266 code upang magbigay ng isang pasadyang interface para sa iyong BLE aparato. Maaari mo ring gamitin ang pfodDesignerV3 at pfodApp magdagdag ng isang pasadyang interface na walang pagbabago sa proyektong ito.

Konklusyon

Ang simpleng proyekto na ito ay nagbibigay ng pag-access sa WiFi sa anumang module ng Bluetooth Low Energy (BLE) na nagpapatupad ng UART ng Nordic sa TX Notify. Ang tulay ng Wifi2BLE ay ganap na transparent. Ipinapasa lamang nito ang data ng WiFi sa BLE device at ipinapasa ang data ng BLE device pabalik sa koneksyon sa WiFi.

Ang simpleng konstruksyon at ang detalyadong mga tagubilin sa pagsubok ay ginagawang angkop na proyekto para sa mga nagsisimula na nais na ma-access ang kanilang aparato na BLE mula sa kanilang computer o mula sa labas ng normal na saklaw ng BLE.

Ang proyekto na ito ay magiging mas mahalaga sa sandaling ang software ng BLE aparato ay makahabol sa bagong detalye ng Bluetooth V5 Mesh. Pagkatapos ay magbibigay ang Wifi2BLE ng access sa internet sa iyong buong automation ng bahay.

Inirerekumendang: