Cov txheej txheem:

Tsim kom muaj Wearable Motion Tracker (BLE Los Ntawm Arduino mus rau Custom Android Studio App): 4 Cov Kauj Ruam
Tsim kom muaj Wearable Motion Tracker (BLE Los Ntawm Arduino mus rau Custom Android Studio App): 4 Cov Kauj Ruam

Video: Tsim kom muaj Wearable Motion Tracker (BLE Los Ntawm Arduino mus rau Custom Android Studio App): 4 Cov Kauj Ruam

Video: Tsim kom muaj Wearable Motion Tracker (BLE Los Ntawm Arduino mus rau Custom Android Studio App): 4 Cov Kauj Ruam
Video: Zeb Muas - Foom Kom txiv tej lus kub (Nkauj Tawm Tshiab 2021 - 2022) 2024, Hlis ntuj nqeg
Anonim
Tsim kom muaj Wearable Motion Tracker (BLE Los Ntawm Arduino mus rau Custom Android Studio App)
Tsim kom muaj Wearable Motion Tracker (BLE Los Ntawm Arduino mus rau Custom Android Studio App)

Bluetooth Tsawg Zog (BLE) yog ib daim ntawv uas tsis muaj zog Bluetooth kev sib txuas lus. Cov cuab yeej siv tau, zoo li cov tsoos tsho ntse kuv pab tsim ntawm Predictive Wear, yuav tsum txwv kev siv fais fab txhua qhov uas tuaj yeem ua kom ntev lub roj teeb, thiab nquag siv BLE. Pab Pawg Tshwj Xeeb Tshwj Xeeb Bluetooth (SIG) piav qhia ntau yam tshwj xeeb uas cov cuab yeej siv yuav tsum ua kom cuam tshuam nrog lub cuab yeej Bluetooth, uas lawv hais "profile". Feem ntau daim ntawv thov cov ntaub ntawv siv General Attribute Profile (GATT) kom xa cov ntaub ntawv hla BLE txuas. Muaj peb lub hauv paus ntsiab lus hauv BLE: cov ntaub ntawv, kev pabcuam, thiab tus yam ntxwv.

Bluetooth SIG tau ua tus qauv ntau yam sib xws, kev pabcuam, thiab tus yam ntxwv. Txawm li cas los xij, thaum tsim cov khoom siv kho vajtse feem ntau xav tau los tsim cov kev pabcuam tshwj xeeb thiab tus yam ntxwv thiab tsis muaj ntau yam kev qhia. Txhawm rau teeb meem nyuaj dua, Adafruit tsis muab ib qho kev qhia ntawm kev tsim cov ntawv thov mobile los ua ke nrog lawv cov qauv BLE thiab cov cai rau lawv daim ntawv thov yog qhov nyuaj rau thim rov qab engineer.

Qhov kev qhia no lub hom phiaj piav qhia:

  1. Yuav tsim kev cai GATT cov kev pabcuam thiab tus yam ntxwv li cas
  2. Yuav ua li cas rau phiaj xwm Adafruit Bluefruit LE SPI Tus Phooj Ywg los ua tus GATT server rau cov kev pabcuam tshwj xeeb no & cov yam ntxwv
  3. Yuav ua li cas txhawm rau siv lub cuab yeej Android los ua tus GATT tus neeg siv los nyeem cov ntaub ntawv los ntawm GATT server

Cov ntawv qhia no tsis yog lub hom phiaj yuav hloov pauv mus rau hauv daim ntawv thov npaj tsim khoom - qhov no tsuas yog kev qhia rau BLE.

Kev Nyeem Ntawv Tom Qab:

  • Adafruit Bluefruit LE SPI Cov ntaub ntawv
  • Yog tias koj tsis paub GATT lossis BLE

Khoom siv

  • 1x - Ib qho khoom siv Arduino (Kuv tab tom siv UNO rau qhov kev qhia no)
  • 1x - Adafruit Bluefruit LE SPI Tus Phooj Ywg
  • 8x - txiv neej rau txiv neej jumper xov hlau
  • Cov cuab yeej siv yooj yim soldering (rau cov kab laug sab laug ntawm tus phooj ywg SPI)
  • Lub khoos phis tawj (txhawm rau program Arduino device thiab Android device)

Kauj Ruam 1: Tsim Kev Pabcuam Tshwj Xeeb & Cov Cwj Pwm

QHIA

Kab lus no ua txoj haujlwm zoo piav qhia txog kev tsim cov kev pabcuam tshwj xeeb & cov yam ntxwv li cas. Kuv pom zoo kom nyeem los ntawm kab lus no. Kuv muab cov ntsiab lus yooj yim heev hauv qab no uas tsis saib xyuas cov lus sib txawv hauv kev nyiam qhov yooj yim.

Cov Kev Pabcuam GATT yog kev sau cov yam ntxwv.

Cov yam ntxwv GATT muaj cov khoom ntiag tug, tus nqi, thiab xoom lossis ntau tus piav qhia.

  • Cov cuab yeej: yuav ua li cas cov ntaub ntawv yuav tsum tau ua los ntawm cov neeg siv khoom (Android App) piv txwv li nyeem, sau, sau yam tsis teb, ceeb toom, thiab qhia.
  • Tus nqi: tus nqi tiag ntawm tus yam ntxwv xws li 1089
  • Cov piav qhia: qhov no yog cov ntaub ntawv hais txog tus nqi xws li chav tsev, milliseconds

TSHUAJ

Okay, tam sim no koj paub tias cov kev pabcuam & yam ntxwv zoo li cas, peb yuav tsum txiav txim siab yuav tsim qee qhov kev pabcuam & yam ntxwv li cas kom tau txais peb cov ntaub ntawv kev cai thiab xa nws los ntawm peb GATT server (Arduino) rau cov neeg siv khoom (Android App). Cia peb txiav txim siab txog Arduino lub cuab yeej uas khaws cov ntaub ntawv los ntawm kev ntsuas lub ntsuas-ntsuas-ntsuas qhov ntsuas (AGM). Peb xav sau cov gyroscope thiab ntsuas ntsuas nrawm los ntawm peb qhov chaw nyob thiab lub sijhawm cov kev ntsuas no tau ua thiab xa cov ntaub ntawv no rau peb daim ntawv thov mobile. Peb kuj xav paub thaum twg peb xav tau them lub cuab yeej, yog li peb xav nyeem qib roj teeb thiab xa qhov ntawd rau peb daim ntawv thov mobile.

1. Peb puas tuaj yeem siv ib qho ntawm cov qauv kev pabcuam & tus yam ntxwv?

Bluetooth SIG tau ua tus qauv ntau yam kev pabcuam thiab tus yam ntxwv. Ua ntej, txheeb xyuas cov no kom pom tias koj tuaj yeem koom nrog ib qho ntawm cov kev pabcuam tus qauv thiab tus yam ntxwv. Cov kev pabcuam tus yam ntxwv thiab tus yam ntxwv tuaj yeem siv cov ntaub ntawv me me ntau dua li Cov Cim Cim Hauv Ntiaj Teb (UUID) yog 16 cov khoom thaum cov kev pabcuam thiab cov yam ntxwv yuav tsum siv 128 khoom rau lawv UUIDs. Xav paub ntau ntxiv txog UUIDs tom qab. Los ntawm peb qhov kev tshawb nrhiav, peb pom tus qauv "kev pabcuam roj teeb" uas muaj ib tus yam ntxwv "qib roj teeb".

2. Sib cais txhua qhov txiaj ntsig cov ntaub ntawv koj xav xa hla BLE rau hauv cov yam ntxwv thiab kev pabcuam

Peb tuaj yeem ua txhaum peb cov ntaub ntawv cov ntsiab lus nqis mus rau xya yam kev cai tshwj xeeb hauv ib qho kev pabcuam tshwj xeeb. Peb yuav hu qhov kev pabcuam no "AGM pabcuam". Nws yuav muaj 7 yam ntxwv: x-nrawm, y-nrawm, z-nrawm, x-gyroscope, y-gyroscope, z-gyroscope, thiab siv sijhawm.

3. Txheeb xyuas cov khoom xav tau rau txhua tus yam ntxwv

Muaj ntau yam khoom uas tus yam ntxwv yuav muaj.

  1. Nyeem: Tus Neeg Siv Khoom (Android App) tuaj yeem nyeem tus nqi los ntawm GATT Server (Arduino)
  2. Sau: Tus Neeg Siv khoom tuaj yeem hloov tus nqi los ntawm GATT Server
  3. Qhia: Tus neeg siv khoom yuav raug ceeb toom yog tias tus nqi hloov pauv los ntawm GATT Server thiab Tus Neeg Siv khoom yuav tsum xa ntawv lees paub rau GATT Server
  4. Ceeb toom: Tus neeg siv khoom yuav raug ceeb toom yog tias tus nqi hloov pauv los ntawm GATT Server thiab Tus Neeg Siv khoom tsis xav tias yuav xa ntawv lees paub rau GATT Server

Txog qhov kev qhia no, peb yuav teeb tsa peb txhua tus yam ntxwv kom nyeem, tshwj rau qib roj teeb uas yuav muaj ob qho kev ceeb toom thiab nyeem cov khoom.

4. Tsim UUIDs rau cov kev pabcuam tshwj xeeb & cov yam ntxwv thiab nrhiav tus qauv UUIDs

Raws li kuv tau hais luv luv ua ntej, Bluetooth SIG tus qauv kev pabcuam thiab tus yam ntxwv siv 16 ntsis UUID thaum cov kev pabcuam tshwj xeeb thiab tus yam ntxwv siv 128 ntsis UUIDs. Piv txwv li, saib lub roj teeb pabcuam tus lej ntawm Bluetooth SIG. Tus lej muab rau 0x180F sawv cev rau 128 ntsis UUID "0000180F-0000-1000-8000-00805F9B34FB". Plaub tus lej (16 khoom) hauv qhov loj yog qhov tshwj xeeb rau cov kev pabcuam tshwj xeeb lossis tus yam ntxwv thaum lwm tus cim tau khaws tseg ntawm txhua qhov kev pabcuam thiab tus yam ntxwv. Txij li ob tus neeg siv khoom thiab GATT server paub tias cov kev pabcuam tus qauv thiab tus yam ntxwv tsuas yog sib txawv los ntawm tus lej loj, cov pob ntawv qhov ntau ntawm cov ntaub ntawv tuaj yeem txo qis. Txawm li cas los xij, cov kev pabcuam thiab tus yam ntxwv tsis tuaj yeem ua haujlwm raws li qhov kev xav no.

Hloov chaw, cov kev pabcuam tshwj xeeb thiab tus yam ntxwv yuav tsum siv tsis tau sau 128 me ntsis UUIDs. Nov yog online UUID generator. Ib qho UUID uas tsis yog UUID tus qauv raug lees paub rau kev cai UUID. Txawm li cas los xij, lub rooj sib tham tshwj xeeb rau npe yog hais txog qhov kev pabcuam tshwj xeeb 00000001- … thiab cov yam ntxwv hauv qhov kev pabcuam tshwj xeeb 00000002- …

Nov yog cov ntsiab lus nthuav dav ntawm cov kev pabcuam & cov yam ntxwv peb yuav ua nrog rau lawv cov UUIDs

Kauj ruam 2: Arduino Code

Hloov kho BLUEFRUIT LE SPI phooj ywg

Ua ntej, nqes Adafruit Bluefruit LE SPI phooj ywg raws li lawv hais qhia hauv lawv phau ntawv qhia kev sib txuas thiab txuas lub zog Arduino ntaus ntawv. Ua kom ntseeg tau tias koj tuaj yeem nrhiav Adafruit Bluefruit LE SPI phooj ywg ntawm koj lub cuab yeej hauv xov tooj thaum kuaj xyuas cov cuab yeej Bluetooth. Rub tawm Bluefruit Connect app, txuas rau Adafruit Bluefruit LE SPI phooj ywg thiab tso cai rau nws hloov kho lub firmware ntawm lub cuab yeej. Cov kauj ruam no tseem ceeb. Yog tias koj tsis hloov kho lub khoos phis tawj, cov lus txib koj tshaj tawm lub cuab yeej ntawm Arduino yuav tsis ua tiav thiab yuav tsis muaj qhov yuam kev pom tseeb rau koj kom pom qhov teeb meem yog dab tsi.

Nov yog kuv qhov repo rau txoj haujlwm no. Koj tuaj yeem pom tag nrho Arduino code ntawm no.

ZOO SIAB

Ob peb yam tseem ceeb kom nco ntsoov:

  1. Hauv kev teeb tsa () txheej txheem, txhua qhov kev cai UUIDs yuav tsum muaj "-" nruab nrab ntawm txhua ob tus cim. Piv txwv, "AT+GATTADDCHAR = UUID128 = 00-00-00-05-62-7E-47-E5-A3-FC-DD-AB-D9-7A-A9-66" yuav ua haujlwm. "AT+GATTADDCHAR = UUID128 = 00000005-627E-47E5-A3fCDDABD97AA966" yuav tsis ua haujlwm.
  2. Nco ntsoov tias hauv kev teeb tsa () txheej txheem, "battery.begin (true);" hu "ble.reset ();" tsis siv neeg Yog tias koj tsis siv cov kev pabcuam roj teeb raws li kuv muaj, koj yuav tsum rov pib dua lub tshuab ble (siv "ble.reset ();") qhov twg kuv muaj lus txib "battery.begin (true);".
  3. Hauv kev teeb tsa () txheej txheem, hloov "yog (! Ble.begin (cuav))" mus "yog (! Ble.begin (tseeb))" yog tias koj xav debug.

Cov cai no zoo nkauj piav qhia tus kheej. Kuv suav nrog cov lus piav qhia ntawm txhua txoj kev coj ua. Txoj kev teeb tsa tau txais BLE tus qauv npaj los ua GATT server. Lub voj txheej txheem mus dhau los ntawm qhov cheb cuav ntawm qhov ntsuas qhov ntsuas qhov ntsuas qhov ntsuas qhov ntsuas (AGM) thiab tsim tus lej tsis raug ntawm 1 txog 100 rau cov txiaj ntsig no. Lub roj teeb tau ntws los ntawm 1% txhawm rau sim siv roj teeb. Koj tuaj yeem hloov txoj cai no nrog qhov tseeb qhov tseem ceeb yooj yim. Txoj cai no xav tias koj yuav xa ntau cov ntaub ntawv AGM, 6 ntsuas ntev, ntau dua li ntsuas ib zaug raws li txheeb xyuas lub qhov rai ntawm AGM cov ntaub ntawv yuav muaj txiaj ntsig ntau dua li ib qho ntawm cov ntaub ntawv. Yog tias koj hloov qhov loj me me, nco ntsoov tias yuav muaj kev hloov pauv hauv android code chaws. Txhawm rau ntes cov ntaub ntawv, koj yuav tsum hla lub txee nrog rau cov ntaub ntawv koj xav xa. Lub txee no tso cai rau koj nrhiav qhov chaw koj nyob ntawm lub qhov rais los ntawm daim ntawv thov hauv xov tooj ntawd Android yog li koj tuaj yeem tos kom mloog cov ntsiab lus cov ntaub ntawv ploj hauv lub qhov rais. Tsis muaj lub txee lossis nrog qhov sib txawv qhov sib txawv, qhov haujlwm hauv xov tooj cua hauv xov tooj cua yuav tsis nco cov ntsiab lus lossis yuav raug kaw hauv lub voj tos rau cov ntsiab lus cov ntaub ntawv uas nws xav tau.

Kauj ruam 3: Android Studio Code

Nov yog kuv qhov repo rau txoj haujlwm no. Koj tuaj yeem pom tag nrho Android Studio code ntawm no.

ZOO SIAB

Kuv yuav khaws qhov hloov tshiab no nrog kev tshuaj xyuas ntxaws ntxaws txog yuav ua li cas arduino thiab android code ua haujlwm kom ntxaws … Lub app ua haujlwm tau zoo yog li ua tib zoo saib cov cai koj tus kheej nyob rau lub sijhawm no.

Kauj Ruam 4: Daim Ntawv Thov Kawg

Daim Ntawv Thov Kawg
Daim Ntawv Thov Kawg
Daim Ntawv Thov Kawg
Daim Ntawv Thov Kawg
Daim Ntawv Thov Kawg
Daim Ntawv Thov Kawg

Nrog koj zoo siab! Koj daim ntawv thov rub tawm rau koj lub xov tooj thiab koj lub cuab yeej siv tau raug them thiab xa cov ntaub ntawv.

Qhib APP

Txhawm rau pib, nyem rau ntawm lub cim launcher rau daim ntawv thov.

ZOO TSHAJ PLAWS

Koj yuav tsum tau pom zoo siv qee qhov kev tso cai rau lub app ua haujlwm kom raug.

Kuaj rau DEVICES

Tom ntej no, nyem rau ntawm "Scan" khawm nyob rau saum toj kawg nkaus ntawm lub app.

Xaiv koj lub cuab yeej siv tau

Tom ntej no, xaiv koj lub cuab yeej siv tau los ntawm cov npe khoom siv BLE. Nws lub npe yog "BLE Arduino Hardware". TAU DATAWait thaum lub app tau txais cov ntaub ntawv AGM thiab txiav txim qhov twg tus neeg siv tseem nyob lossis txav mus. Pom koj cov txiaj ntsig Txheeb xyuas cov txiaj ntsig ntawm qhov screen! Nyem rau khawm sync kom tau txais lwm qhov nyeem cov ntaub ntawv.

Pom zoo: