Sisukord:

Ehitage kantav liikumisjälgija (BLE Arduinost kohandatud Android Studio rakendusse): 4 sammu
Ehitage kantav liikumisjälgija (BLE Arduinost kohandatud Android Studio rakendusse): 4 sammu

Video: Ehitage kantav liikumisjälgija (BLE Arduinost kohandatud Android Studio rakendusse): 4 sammu

Video: Ehitage kantav liikumisjälgija (BLE Arduinost kohandatud Android Studio rakendusse): 4 sammu
Video: 一部讓你瞭解中國人精神信仰的紀錄片 2024, November
Anonim
Ehitage kantav liikumisjälgija (BLE Arduinost kohandatud Android Studio rakendusse)
Ehitage kantav liikumisjälgija (BLE Arduinost kohandatud Android Studio rakendusse)

Bluetooth Low Energy (BLE) on väikese energiatarbega Bluetooth -ühenduse vorm. Kantavad seadmed, nagu nutikad rõivad, mida ma aitan Predictive Wearis disainida, peavad võimaluse korral piirama energiatarbimist, et pikendada aku kasutusaega, ja sageli kasutama BLE -d. Bluetoothi erihuvirühm (SIG) määratleb mitmeid spetsifikatsioone, mida seade peaks rakendama, et suhelda Bluetooth -seadmega, mida nad nimetavad "profiilideks". Enamik rakenduste profiile kasutab üldist atribuudi profiili (GATT) andmete saatmiseks BLE -lingi kaudu. BLE -l on kolm põhimõistet: profiilid, teenused ja atribuudid.

Bluetooth SIG on standardinud palju tavalisi profiile, teenuseid ja atribuute. Kuid kohandatud riistvara loomisel on sageli vaja luua kohandatud teenuseid ja atribuute ning palju õpetusi pole saadaval. Asja keerulisemaks muutmiseks ei anna Adafruit juhiseid mobiilirakenduste kujundamiseks nende BLE -moodulitega sidumiseks ja nende rakenduste lähtekoodi on raske ümber kujundada.

Selle õpetuse eesmärk on selgitada:

  1. Kuidas kujundada kohandatud GATT -teenuseid ja omadusi
  2. Kuidas programmeerida Adafruit Bluefruit LE SPI Friend nende kohandatud teenuste ja omaduste GATT -serverina
  3. Kuidas programmeerida Android -seadet GATT -kliendina GATT -serverist andmete lugemiseks

See õpetus ei ole mõeldud tootmiseks valmis rakenduseks tõlkimiseks - see on lihtsalt sissejuhatus BLE -sse.

Taustalugemine:

  • Adafruit Bluefruit LE SPI sõbra dokumentatsioon
  • Kui te pole GATTi või BLE -ga tuttav

Tarvikud

  • 1x - Arduino seade (selle õpetuse jaoks kasutan UNO -d)
  • 1x - Adafruit Bluefruit LE SPI sõber
  • 8x - isased ja isased hüppajajuhtmed
  • Põhilised jootmisseadmed (SPI sõbra päise tihvtide jootmiseks)
  • Arvuti (Arduino seadme ja Android -seadme programmeerimiseks)

Samm: kujundage kohandatud teenused ja omadused

SISSEJUHATUS

See artikkel teeb suurepärast tööd, selgitades kohandatud teenuste ja omaduste kujundamist. Soovitan soojalt see artikkel läbi lugeda. Annan allpool väga lihtsa ülevaate, mis jätab lihtsuse kasuks peensused tähelepanuta.

GATT -teenused on omaduste kogum.

GATT omadused sisaldavad atribuuti, väärtust ja null või enam kirjeldust.

  • Atribuut: kuidas klient peaks andmeid käsitlema (Androidi rakendus) nt. lugeda, kirjutada, kirjutada ilma vastuseta, teavitada ja näidata.
  • Väärtus: tunnuse tegelik väärtus nt. 1089
  • Kirjeldused: see on teave väärtuse kohta nt. ühik, millisekundit

DESIGN

Olgu, nüüd teate, mis teenused ja omadused on, peame välja mõtlema, kuidas kujundada teatud teenuseid ja omadusi, et saada meie kohandatud andmed ja saata need meie GATT -serverist (Arduino) kliendile (Android -rakendus). Vaatleme Arduino seadet, mis kogub andmeid kiirendusmõõturi-güroskoobi moodulist (AGM). Soovime koguda güroskoobi ja kiirenduse mõõtmisi kolmelt ruumiteljelt ja nende mõõtmiste tegemise ajast ning edastada need andmed meie mobiilirakendusse. Samuti tahame teada, millal peame seadet laadima, seega tahame lugeda aku taset ja edastada see oma mobiilirakendusele.

1. Kas me saame kasutada mõnda standardset teenust ja omadust?

Bluetooth SIG on standardinud palju tavalisi teenuseid ja omadusi. Esmalt kontrollige neid, et näha, kas saate mõnda standardteenust ja -omadust ühiselt valida. Standardteenused ja -omadused võivad kasutada palju väiksemaid andmepakette, kuna universaalselt kordumatu identifikaator (UUID) on 16 bitti, kohandatud teenuste ja omaduste puhul tuleb UUID -de jaoks kasutada 128 bitti. UUID -de kohta hiljem. Otsingu käigus leidsime standardiseeritud "akuteenuse", mis sisaldab üht iseloomulikku "aku taset".

2. Eraldage omadused ja teenused kõik andmeväärtused, mida soovite BLE kaudu saata

Ühe kohandatud teenuse raames saame oma kohandatud andmepunktid jagada seitsmeks kohandatud tunnuseks. Nimetame seda teenust "AGM -teenuseks". See sisaldab 7 omadust: x-kiirendus, y-kiirendus, z-kiirendus, x-güroskoop, y-güroskoop, z-güroskoop ja ajaviide.

3. Määrake iga tunnuse jaoks vajalikud omadused

Omadusel võib olla mitmeid omadusi.

  1. Loe: klient (Androidi rakendus) saab lugeda väärtust GATT -serverist (Arduino)
  2. Kirjutamine: klient saab GATT -serveri väärtust muuta
  3. Märkige: Klienti teavitatakse, kui GATT -serveri väärtus muutub, ja eeldatakse, et klient saadab GATT -serverile kinnituse
  4. Teavita: Klienti teavitatakse, kui GATT -serveri väärtus muutub ja klient ei peaks GATT -serverile kinnitust saatma

Selle õpetuse jaoks seadistame lugemiseks kõik meie omadused, välja arvatud aku tase, millel on nii teavitus- kui ka lugemisomadused.

4. Looge kohandatud teenuste ja omaduste jaoks UUID -d ning leidke standardsed UUID -d

Nagu ma varem lühidalt mainisin, kasutavad Bluetooth SIG -i standardiseeritud teenused ja omadused 16 -bitist UUID -d, kohandatud teenused ja omadused aga 128 -bitiseid UUID -sid. Näiteks vaadake akuteenuse määratud numbrit Bluetooth SIG -ist. Määratud number 0x180F tähistab 128-bitist UUID "0000180F-0000-1000-8000-00805F9B34FB". Paksus kirjas olevad neli numbrit (16 bitti) on konkreetse standardteenuse või karakteristiku jaoks ainulaadsed, samas kui teised märgid on konserveeritud kõigi standardiseeritud teenuste ja omaduste vahele. Kuna nii klient kui ka GATT -server teavad, et standardiseeritud teenused ja omadused varieeruvad ainult paksus kirjas, võib andmepakettide suurust oluliselt vähendada. Kohandatud teenused ja omadused ei saa siiski toimida sama eelduse alusel.

Selle asemel peavad kohandatud teenused ja omadused kasutama lühendamata 128 -bitiseid UUID -sid. Siin on veebipõhine UUID -generaator. Kõik UUID -d peale standardiseeritud UUID on kohandatud UUID -de jaoks vastuvõetavad. Tüüpiline nimetamisviis on aga tähistada kohandatud teenust 00000001-… ja selle kohandatud teenuse 00000002-… omadusi.

Siin on kokkuvõtlik arvutustabel teenuste ja omaduste kohta, mida rakendame koos nende UUID -dega

Samm: Arduino kood

UUENDA BLUEFRUIT LE SPI FRIEND

Kõigepealt ühendage Adafruit Bluefruit LE SPI Friend, nagu nad oma ühendamisjuhendis täpsustavad, ja lülitage Arduino seade sisse. Veenduge, et leiate Adafruit Bluefruit LE SPI Friend oma Android -seadmest, kui otsite Bluetooth -seadmeid. Laadige alla rakendus Bluefruit Connect, looge ühendus Adafruit Bluefruit LE SPI Friendiga ja laske sellel seadme püsivara värskendada. See samm on oluline. Kui te püsivara ei värskenda, ebaõnnestuvad Arduino kaudu seadme väljastatud käsud ja probleemi ilmnemisel ei ilmne ilmne viga.

Siin on minu repo selle projekti jaoks. Arduino täielikku koodi näete siin.

ÜLEVAADE

Mõned olulised asjad, mida tuleb tähele panna:

  1. Setup () meetodis peavad kõik kohandatud UUID-d sisaldama iga kahe märgi vahel "-". Näiteks töötab "AT+GATTADDCHAR = UUID128 = 00-00-00-05-62-7E-47-E5-A3-FC-DD-AB-D9-7A-A9-66". "AT+GATTADDCHAR = UUID128 = 00000005-627E-47E5-A3fCDDABD97AA966" ei tööta.
  2. Pange tähele, et meetodi setup () puhul on "battery.begin (true);" kutsub "ble.reset ();" automaatselt. Kui te ei kasuta akuteenust nagu mul, peate tühjendama ble -mooduli (kasutage "ble.reset ();"), kus mul on käsk "battery.begin (true);".
  3. Kui soovite siluda, muutke seadistus () meetodis "if (! Ble.begin (false))" asemel "if (! Ble.begin (true))".

See kood on üsna iseenesestmõistetav. Lisasin iga kohandatud meetodi kirjeldused. Seadistusmeetod valmistab BLE -mooduli valmis toimima GATT -serverina. Silmusmeetod läbib kiirendusmõõturi güroskoobimooduli (AGM) võltspühkimise ja genereerib nende väärtuste jaoks juhusliku arvu 1 kuni 100. Aku tühjenemine on 1%, et simuleerida aku kasutamist. Saate selle koodi lihtsalt asendada andurite tegelike väärtustega. See kood eeldab, et edastate ühe mõõtmise asemel hulga 6 mõõtmise pikkuseid AGM -andmeid, kuna AGM -i andmete akna analüüs on tõenäoliselt kasulikum kui üksainus punkt. Kui muudate massiivi suurust, pange tähele, et android stuudio koodis tuleb teha muudatusi. Andmete massiivi jäädvustamiseks peate edastama loenduri koos andmetega, mida kavatsete saata. See loendur võimaldab teil Androidi stuudiorakendusest aknast leida, kus te asute, et saaksite oodata, kuni saate aknast puuduvaid andmepunkte kuulata. Ilma loendurita või erineva suurusega massiiviga jääb android -stuudio projekt andmepunktidest ilma või jääb takerduma silmusesse, oodates ülejäänud andmepunkte.

3. toiming: Android Studio kood

Siin on minu repo selle projekti jaoks. Android Studio täielikku koodi näete siin.

ÜLEVAADE

Uuendan seda jätkuvalt põhjalikuma ülevaatega sellest, kuidas arduino- ja android -kood üksikasjalikult töötavad … Rakendus on täielikult funktsionaalne, nii et võite vahepeal seda koodi ise vaadata.

4. samm: lõplik taotlus

Lõplik taotlus
Lõplik taotlus
Lõplik taotlus
Lõplik taotlus
Lõplik taotlus
Lõplik taotlus

Palju õnne! Teie rakendus laaditakse teie telefoni alla ja teie kantavat seadet laaditakse ning see edastab andmeid.

Käivitage rakendus

Alustamiseks klõpsake rakenduse käivitusikoonil.

TOETUSLOAD

Rakenduse nõuetekohaseks toimimiseks peate kinnitama teatud õiguste kasutamise.

SKANNA SEADMEID

Seejärel klõpsake rakenduse vasakus ülanurgas nuppu "Skaneeri".

VALI OMA KANNATAV SEADE

Seejärel valige saadaolevate BLE -seadmete loendist oma kantav seade. Selle nimi on "BLE Arduino riistvara". GET DATAOota, kuni rakendus saab AGM -i andmed ja määrab, kus kasutaja on endiselt või liigub. VAATA OMA TULEMUSI Vaadake tulemusi ekraanilt! Teiste andmete lugemiseks klõpsake sünkroonimisnuppu.

Soovitan: