Tartalomjegyzék:

Hordható mozgáskövető készítése (BLE az Arduinótól az egyéni Android Studio alkalmazásig): 4 lépés
Hordható mozgáskövető készítése (BLE az Arduinótól az egyéni Android Studio alkalmazásig): 4 lépés

Videó: Hordható mozgáskövető készítése (BLE az Arduinótól az egyéni Android Studio alkalmazásig): 4 lépés

Videó: Hordható mozgáskövető készítése (BLE az Arduinótól az egyéni Android Studio alkalmazásig): 4 lépés
Videó: Ферганский ПЛОВ. Тонкости рецепта. Сделай так и все получится!!! 2024, Július
Anonim
Hordható mozgáskövető készítése (BLE az Arduinótól az egyéni Android Studio alkalmazásig)
Hordható mozgáskövető készítése (BLE az Arduinótól az egyéni Android Studio alkalmazásig)

A Bluetooth Low Energy (BLE) a kis teljesítményű Bluetooth kommunikáció egyik formája. A hordható eszközöknek, mint például az intelligens ruhadaraboknak, amelyeket a Predictive Wear tervezésében segítek, mindenhol korlátozniuk kell az energiafogyasztást az akkumulátor élettartamának meghosszabbítása érdekében, és gyakran kell használniuk a BLE -t. A Bluetooth Special Interest Group (SIG) számos specifikációt határoz meg, amelyeket az eszköznek meg kell valósítania, hogy kölcsönhatásba léphessen egy Bluetooth -eszközzel, amelyet "profilnak" neveznek. A legtöbb alkalmazásprofil az általános attribútumprofilt (GATT) használja az adatok BLE linken keresztüli küldéséhez. A BLE -ben három alapvető fogalom van: profilok, szolgáltatások és attribútumok.

A Bluetooth SIG számos közös profilt, szolgáltatást és attribútumot szabványosított. Az egyéni hardverek létrehozásakor azonban gyakran szükség van egyéni szolgáltatások és attribútumok létrehozására, és nem sok oktatóanyag áll rendelkezésre. Az ügy megnehezítése érdekében az Adafruit nem ad útmutatást a BLE -moduljaikkal párosítható mobilalkalmazások tervezéséhez, és alkalmazásuk forráskódját nehéz megváltoztatni.

Ennek az oktatóanyagnak a célja a magyarázat:

  1. Hogyan tervezzünk egyedi GATT szolgáltatásokat és jellemzőket
  2. Hogyan programozható az Adafruit Bluefruit LE SPI Friend GATT szerverként ezekhez az egyéni szolgáltatásokhoz és jellemzőkhöz
  3. Hogyan programozható egy Android -eszköz GATT -ügyfélként, hogy ki tudja olvasni az adatokat a GATT -kiszolgálóról

Ez az oktatóanyag nem arra készült, hogy lefordítható legyen gyártásra kész alkalmazásra - ez csak a BLE bevezetése.

Háttérolvasás:

  • Adafruit Bluefruit LE SPI Friend dokumentáció
  • Ha nem ismeri a GATT -ot vagy a BLE -t

Kellékek

  • 1x - Arduino eszköz (ehhez az oktatóanyaghoz az UNO -t használom)
  • 1x - Adafruit Bluefruit LE SPI Barát
  • 8x - hüvely -férfi áthidaló vezetékek
  • Alap forrasztóberendezés (az SPI Friend forrasztópántjainak forrasztásához)
  • Számítógép (az Arduino eszköz és az Android eszköz programozásához)

1. lépés: Tervezzen egyedi szolgáltatásokat és jellemzőket

BEVEZETÉS

Ez a cikk nagyszerű munkát végez az egyéni szolgáltatások és jellemzők tervezésének bemutatásában. Nagyon ajánlom, hogy olvassa el ezt a cikket. Az alábbiakban egy nagyon egyszerű áttekintést adok, amely figyelmen kívül hagyja a finomságokat az egyszerűség érdekében.

A GATT szolgáltatások a jellemzők összessége.

A GATT jellemzői egy tulajdonságot, értéket és nulla vagy több leírót tartalmaznak.

  • Tulajdon: hogyan kezelje az adatokat az ügyfél (Android App) pl. olvasni, írni, válasz nélkül írni, értesíteni és jelezni.
  • Érték: a jellemző tényleges értéke pl. 1089
  • Leírók: ez információ az értékről pl. az egység, ezredmásodperc

TERVEZÉS

Rendben, most már tudja, milyen szolgáltatások és jellemzők vannak, ki kell találnunk, hogyan tervezzünk meg bizonyos szolgáltatásokat és jellemzőket, hogy megkapjuk az egyéni adatainkat, és elküldjük azokat a GATT szerverünkről (Arduino) az ügyfélnek (Android App). Tekintsünk egy Arduino eszközt, amely adatokat gyűjt egy gyorsulásmérő-giroszkóp modulból (AGM). Szeretnénk három térbeli tengelyből összegyűjteni a giroszkóp és a gyorsulás méréseit, valamint a mérések elvégzésének idejét, és továbbítani ezeket az adatokat mobil alkalmazásunkhoz. Azt is szeretnénk tudni, hogy mikor kell töltenünk az eszközt, ezért le akarjuk olvasni az akkumulátor töltöttségi szintjét, és továbbítani azt a mobilalkalmazásunkba.

1. Használhatjuk -e a szokásos szolgáltatásokat és jellemzőket?

A Bluetooth SIG számos közös szolgáltatást és jellemzőt szabványosított. Először ellenőrizze ezeket, hogy tudja-e választani a szabványosított szolgáltatások és jellemzők bármelyikét. A szabványos szolgáltatások és jellemzők sokkal kisebb adatcsomagokat használhatnak fel, mivel az univerzálisan egyedi azonosító (UUID) 16 bites, míg az egyéni szolgáltatások és jellemzők 128 bitet használnak UUID -khez. Bővebben az UUID -ről később. A keresés során egy szabványosított "akkumulátor szolgáltatást" találtunk, amely egy jellegzetes "akkumulátor töltöttségi szintet" tartalmaz.

2. Válassza szét a BLE -n keresztül elküldeni kívánt összes adatértéket a jellemzők és szolgáltatások között

Az egyéni adatpontokat hét egyedi jellemzőre bonthatjuk egy egyéni szolgáltatáson belül. Ezt a szolgáltatást "AGM szolgáltatásnak" nevezzük. 7 jellemzőt fog tartalmazni: x-gyorsulás, y-gyorsulás, z-gyorsulás, x-giroszkóp, y-giroszkóp, z-giroszkóp és egy időreferencia.

3. Határozza meg az egyes jellemzőkhöz szükséges tulajdonságokat

Egy tulajdonságnak számos tulajdonsága lehet.

  1. Olvasás: az ügyfél (Android -alkalmazás) ki tud olvasni egy értéket a GATT -kiszolgálóról (Arduino)
  2. Írás: az ügyfél módosíthat egy értéket a GATT szerverről
  3. Jelölje: az Ügyfél értesítést kap, ha egy érték megváltozik a GATT szerverről, és az Ügyfél várhatóan megerősítést küld a GATT szervernek
  4. Értesítés: az Ügyfél értesítést kap, ha egy érték megváltozik a GATT szerverről, és az Ügyfél várhatóan nem küld megerősítést a GATT szervernek

Ebben az oktatóanyagban minden jellemzőnket olvasásra állítjuk be, kivéve az akkumulátor töltöttségi szintjét, amely értesítési és olvasási tulajdonságokkal is rendelkezik.

4. Hozzon létre UUID -ket az egyéni szolgáltatásokhoz és jellemzőkhöz, és keresse meg a szabványos UUID -ket

Ahogy korábban röviden említettem, a Bluetooth SIG szabványosított szolgáltatások és jellemzők 16 bites UUID -t használnak, míg az egyéni szolgáltatások és jellemzők 128 bites UUID -ket használnak. Lásd például az akkumulátor -szolgáltatáshoz rendelt számot a Bluetooth SIG -en. A hozzárendelt 0x180F szám a 128 bites UUID "0000180F-0000-1000-8000-00805F9B34FB" számát képviseli. A vastag betűvel szedett négy számjegy (16 bit) az adott szabványosított szolgáltatás vagy jellemző egyedi, míg a többi karakter az összes szabványosított szolgáltatás és jellemző között megmarad. Mivel mind az ügyfél, mind a GATT szerver tudja, hogy a szabványosított szolgáltatások és jellemzők csak félkövér számjegyekkel változnak, az adatcsomagok mérete jelentősen csökkenthető. Az egyéni szolgáltatások és jellemzők azonban nem működhetnek ugyanezen feltételezés alapján.

Ehelyett az egyéni szolgáltatásoknak és jellemzőknek rövidített 128 bites UUID -ket kell használniuk. Itt egy online UUID generátor. A szabványos UUID -tól eltérő bármely UUID elfogadható egyéni UUID -hez. Egy tipikus elnevezési megállapodás azonban a 00000001- egyéni szolgáltatás és annak jellemzői 00000002-… jellemzőit jelöli.

Itt található egy összefoglaló táblázat a szolgáltatásokról és jellemzőkről, amelyeket az UUID -kkel együtt fogunk megvalósítani

2. lépés: Arduino kód

A BLUEFRUIT LE SPI FRIEND FRISSÍTÉSE

Először csatlakoztassa az Adafruit Bluefruit LE SPI Friend -t, ahogy azt a csatlakozási útmutatóban megadják, és kapcsolja be az Arduino eszközt. Győződjön meg róla, hogy megtalálja az Adafruit Bluefruit LE SPI Friend készüléket androidos eszközén, amikor Bluetooth -eszközöket keres. Töltse le a Bluefruit Connect alkalmazást, csatlakozzon az Adafruit Bluefruit LE SPI Friend -hez, és hagyja, hogy frissítse az eszköz firmware -jét. Ez a lépés fontos. Ha nem frissíti a firmware -t, akkor az Arduino -n keresztül kiadott parancsok valószínűleg sikertelenek lesznek, és nem lesz nyilvánvaló hiba a probléma felfedezéséhez.

Itt a repo a projekthez. A teljes Arduino kódot itt láthatja.

ÁTTEKINTÉS

Néhány fontos tudnivaló:

  1. A setup () metódusban minden egyéni UUID azonosítónak tartalmaznia kell a "-" jelet minden két karakter között. Például: "AT+GATTADDCHAR = UUID128 = 00-00-00-05-62-7E-47-E5-A3-FC-DD-AB-D9-7A-A9-66" működik. Az "AT+GATTADDCHAR = UUID128 = 00000005-627E-47E5-A3fCDDABD97AA966" nem fog működni.
  2. Vegye figyelembe, hogy a setup () metódusban az "battery.begin (true);" hívja a "ble.reset ();" automatikusan. Ha nem úgy használja az akkumulátor szolgáltatást, mint én, akkor vissza kell állítania a ble modult (használja a "ble.reset ();") parancsot, ahol az "battery.begin (true);" parancs van megadva.
  3. A setup () metódusban módosítsa az "if (! Ble.begin (false))" "értéket" if (! Ble.begin (true)) "értékre, ha hibakeresést szeretne.

Ez a kód elég magától értetődő. Minden egyedi módszer leírását mellékeltem. A beállítási módszerrel a BLE modul készen áll arra, hogy GATT szerverként működjön. A hurok módszer a gyorsulásmérő giroszkóp modul (AGM) hamis söprésén megy keresztül, és 1-100 közötti véletlen számot generál ezekhez az értékekhez. Az akkumulátor 1% -os lemerülése szimulálja az akkumulátor használatát. Ezt a kódot egyszerűen lecserélheti az érzékelő aktuális értékeire. Ez a kód azt feltételezi, hogy egy mérés helyett egy 6 mérés hosszú AGM -adatot fog továbbítani, mivel az AGM -adatok ablakának elemzése valószínűleg hasznosabb, mint egyetlen adatpont. Ha módosítja a tömb méretét, vegye figyelembe, hogy az android stúdió kódjában módosítások szükségesek. Az adatok tömbjének rögzítéséhez át kell adni egy számlálót a küldeni kívánt adatokkal együtt. Ez a számláló lehetővé teszi, hogy az android stúdióalkalmazásból megtudja, hol van az ablakban, így várhat, amíg meghallgatja az ablakban hiányzó adatpontokat. Számláló nélkül vagy más méretű tömb esetén az android stúdióprojekt vagy kihagyja az adatpontokat, vagy beakad egy hurokba, és várja a többi adatpontot, amire számít.

3. lépés: Android Studio kód

Itt a repo a projekthez. A teljes Android Studio kódot itt tekintheti meg.

ÁTTEKINTÉS

Folyamatosan frissítem ezt az arduino és az android kód részletes működésének alapos áttekintésével … Az alkalmazás teljes mértékben működőképes, ezért nyugodtan nézze meg a kódot.

4. lépés: Végső alkalmazás

Végső alkalmazás
Végső alkalmazás
Végső alkalmazás
Végső alkalmazás
Végső alkalmazás
Végső alkalmazás

Gratulálunk! Alkalmazását letöltik a telefonra, és hordható eszközét feltöltik, és adatokat továbbít.

AZ APP ALDÍTÁSA

A kezdéshez kattintson az alkalmazás indítóikonjára.

TÁMOGATÁSI ENGEDÉLYEK

Az alkalmazás megfelelő működéséhez jóvá kell hagynia bizonyos engedélyek használatát.

BERENDEZÉSEK SZERINT

Ezután kattintson a "Beolvasás" gombra az alkalmazás bal felső sarkában.

VÁLASSZA VISELHETŐ ESZKÖZÉT

Ezután válassza ki hordható eszközét az elérhető BLE -eszközök listájából. A neve "BLE Arduino Hardware". GET DATA Tekintse meg az eredményeket a képernyőn! Kattintson a szinkronizálás gombra az adatok újabb leolvasásához.

Ajánlott: