Tartalomjegyzék:
- Kellékek
- 1. lépés: Tervezzen egyedi szolgáltatásokat és jellemzőket
- 2. lépés: Arduino kód
- 3. lépés: Android Studio kód
- 4. lépés: Végső alkalmazá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
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
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:
- Hogyan tervezzünk egyedi GATT szolgáltatásokat és jellemzőket
- Hogyan programozható az Adafruit Bluefruit LE SPI Friend GATT szerverként ezekhez az egyéni szolgáltatásokhoz és jellemzőkhöz
- 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.
- Olvasás: az ügyfél (Android -alkalmazás) ki tud olvasni egy értéket a GATT -kiszolgálóról (Arduino)
- Írás: az ügyfél módosíthat egy értéket a GATT szerverről
- 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
- É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ó:
- 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.
- 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.
- 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
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:
Egyéni NYÁK -formák készítése (Inkscape és Fritzing): 4 lépés (képekkel)
Egyedi NYÁK -formák készítése (Inkscape és Fritzing): Ha kezdő vagy, és egyedi alakú NYÁK -ra van szükséged … és a lehető legrövidebb időn belül szüksége van rá … VAGY ha nem akarsz eltölteni egy sok idő megtanulni, hogyan kell dolgozni a fejlett szoftverekkel, mert végül egy táblát vagy más
Egyéni NYÁK készítése kis teljesítményű lézergravírozó segítségével: 8 lépés (képekkel)
Egyéni nyomtatott áramköri lap készítése kis teljesítményű lézergravírozó segítségével: Ha házi PCB -t készít, számos módszert találhat az interneten: a legalapvetőbbektől, csak toll használatával, a kifinomultabbakig 3D nyomtatók és egyéb berendezések használatával. És ez a bemutató az utolsó esetre esik! Ebben a projektben én
Egyéni barkácshőmérséklet -mérő készítése oszlopdiagram és Atmega328p használatával: 3 lépés (képekkel)
Egyéni barkácshőmérséklet -mérő készítése oszlopdiagram és Atmega328p segítségével: Ebben a bejegyzésben megmutatom, hogyan készítsen hőmérséklet -mérőt oszlopdiagram & Atmega328p. A bejegyzés minden részletet tartalmaz, például kapcsolási rajzot, NYÁK -gyártást, kódolást, összeszerelést & Tesztelés. Mellékeltem egy videót is, amely mindent tartalmaz
Egyéni hangszórók készítése: 25 lépés (képekkel)
Hogyan építsünk egyedi hangszórókat: Saját egyedi hangszóróinak építésének az egyik leghasznosabb, legegyszerűbb és költséghatékonyabb DIY tevékenységnek kell lennie. Teljesen meg vagyok döbbenve, hogy nem volt nagyobb jelenléte az Instructables -en és a közösségben … nos
Miniatűr hordható zárható erősítő (és hordható eszközök szonárrendszere stb.): 7 lépés
Miniatűr hordható zárható erősítő (és hordható eszközök szonárrendszere, stb.): Építsen egy miniatűr, alacsony költségű zárható erősítőt, amely beágyazható a szemüvegkeretekbe, és hozzon létre egy szonár látórendszert a vakok számára, vagy egy egyszerű ultrahangot gép, amely folyamatosan figyeli a szívedet, és a Human-Machine Learning segítségével figyelmeztet a p