Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Suunnittele mukautetut palvelut ja ominaisuudet
- Vaihe 2: Arduino -koodi
- Vaihe 3: Android Studio -koodi
- Vaihe 4: Lopullinen sovellus
Video: Luo puettava liikkeenseuranta (BLE Arduinosta mukautetuksi Android Studio -sovellukseksi): 4 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
Bluetooth Low Energy (BLE) on pienitehoinen Bluetooth -viestintä. Käytettävien laitteiden, kuten älykkäiden vaatteiden, joita autan suunnittelemaan Predictive Wearissa, on rajoitettava virrankulutusta aina kun mahdollista pidentääkseen akun käyttöikää, ja käytettävä usein BLE: tä. Bluetooth Special Interest Group (SIG) määrittelee useita eritelmiä, jotka laitteen on toteutettava toimiakseen vuorovaikutuksessa Bluetooth -laitteen kanssa. Niitä kutsutaan "profiileiksi". Useimmat sovellusprofiilit käyttävät GATT (General Attribute Profile) -profiilia tietojen lähettämiseen BLE -linkin kautta. BLE: ssä on kolme peruskäsitettä: profiilit, palvelut ja attribuutit.
Bluetooth SIG on standardoinut monia yleisiä profiileja, palveluita ja määritteitä. Kuitenkin, kun luot mukautettua laitteistoa, sinun on usein luotava mukautettuja palveluita ja määritteitä, eikä monia opetusohjelmia ole saatavilla. Asioiden vaikeuttamiseksi Adafruit ei anna ohjeita BLE -moduulien pariliitokseen liittyvien mobiilisovellusten suunnittelusta, ja niiden sovellusten lähdekoodia on vaikea muuttaa.
Tämän opetusohjelman tarkoituksena on selittää:
- Kuinka suunnitella mukautettuja GATT -palveluita ja ominaisuuksia
- Kuinka ohjelmoida Adafruit Bluefruit LE SPI Friend toimimaan GATT -palvelimena näille mukautetuille palveluille ja ominaisuuksille
- Kuinka ohjelmoida Android -laite toimimaan GATT -asiakkaana lukemaan tiedot GATT -palvelimelta
Tätä opetusohjelmaa ei ole tarkoitettu käännettäväksi tuotantovalmiiksi sovellukseksi - tämä on yksinkertaisesti johdanto BLE: hen.
Taustatiedot:
- Adafruit Bluefruit LE SPI Friend -asiakirjat
- Jos et tunne GATT- tai BLE -tekniikkaa
Tarvikkeet
- 1x - Arduino -laite (käytän UNO: ta tässä opetusohjelmassa)
- 1x - Adafruit Bluefruit LE SPI -ystävä
- 8x - uros -uros -hyppyjohdot
- Perusjuotoslaitteet (SPI Friendin juotosnapojen juottamiseen)
- Tietokone (Arduino -laitteen ja Android -laitteen ohjelmointiin)
Vaihe 1: Suunnittele mukautetut palvelut ja ominaisuudet
JOHDANTO
Tämä artikkeli selittää hienosti, miten suunnitellaan mukautettuja palveluita ja ominaisuuksia. Suosittelen lämpimästi lukemaan tämän artikkelin. Annan alla erittäin yksinkertaisen yleiskatsauksen, joka jättää huomiotta hienoudet yksinkertaisuuden puolesta.
GATT -palvelut ovat kokoelma ominaisuuksia.
GATT -ominaisuudet sisältävät ominaisuuden, arvon ja nolla tai useamman kuvaajan.
- Ominaisuus: miten asiakkaan tulee käsitellä tietoja (Android -sovellus), esim. lukea, kirjoittaa, kirjoittaa ilman vastausta, ilmoittaa ja osoittaa.
- Arvo: ominaisuuden todellinen arvo, esim. 1089
- Kuvaajat: tämä on tietoa arvosta esim. yksikkö, millisekuntia
DESIGN
Okei, nyt tiedät mitä palvelut ja ominaisuudet ovat, meidän on selvitettävä, kuinka suunnitella joitain palveluita ja ominaisuuksia saadaksemme mukautetun datamme ja lähettääksemme sen GATT -palvelimeltamme (Arduino) asiakkaalle (Android -sovellus). Ajatellaanpa Arduino-laitetta, joka kerää tietoja kiihtyvyysanturi-gyroskooppimoduulista (AGM). Haluamme kerätä gyroskooppi- ja kiihtyvyysmittauksia kolmesta tila -akselista ja näiden mittausten suorittamisajasta ja lähettää nämä tiedot mobiilisovelluksellemme. Haluamme myös tietää, milloin meidän on ladattava laite, joten haluamme lukea akun varaustason ja lähettää sen mobiilisovelluksellemme.
1. Voimmeko käyttää jotain vakiopalveluista ja ominaisuuksista?
Bluetooth SIG on standardoinut monia yleisiä palveluita ja ominaisuuksia. Tarkista ensin nämä, voitko valita minkä tahansa vakiopalvelun ja -ominaisuuden. Vakiopalvelut ja -ominaisuudet voivat käyttää paljon pienempiä datapaketteja, koska UUID (Universally Unique Identifier) on 16 -bittinen, kun taas mukautettujen palveluiden ja ominaisuuksien on käytettävä 128 -bittisiä UUID -tunnuksiaan. Lisää UUID -tunnuksista myöhemmin. Haustamme löysimme standardoidun "akkupalvelun", joka sisältää yhden ominaisuuden "akun varaustason".
2. Erota kaikki data -arvot, jotka haluat lähettää BLE: n kautta ominaisuuksiin ja palveluihin
Voimme jakaa omat tietopisteet seitsemään mukautettuun ominaisuuteen yhden mukautetun palvelun sisällä. Kutsumme tätä palvelua "yhtiökokoukseksi". Se sisältää 7 ominaisuutta: x-kiihtyvyys, y-kiihtyvyys, z-kiihtyvyys, x-gyroskooppi, y-gyroskooppi, z-gyroskooppi ja aikaviite.
3. Määritä kullekin ominaisuudelle tarvittavat ominaisuudet
Ominaisuudella voi olla useita ominaisuuksia.
- Lue: asiakas (Android -sovellus) voi lukea arvon GATT -palvelimelta (Arduino)
- Kirjoita: Asiakas voi muuttaa arvoa GATT -palvelimelta
- Ilmoita: Asiakkaalle ilmoitetaan, jos arvo muuttuu GATT -palvelimesta ja asiakkaan odotetaan lähettävän vahvistuksen GATT -palvelimelle
- Ilmoita: Asiakkaalle ilmoitetaan, jos arvo muuttuu GATT -palvelimesta eikä asiakkaan odoteta lähettävän vahvistusta GATT -palvelimelle
Tässä opetusohjelmassa asetamme kaikki ominaisuudet luettavaksi, lukuun ottamatta akun varausta, jolla on sekä ilmoitus- että lukuominaisuudet.
4. Luo UUID -tunnuksia mukautetuille palveluille ja ominaisuuksille ja etsi vakio -UUID -tunnuksia
Kuten aiemmin lyhyesti mainitsin, Bluetooth SIG -standardipalvelut ja -ominaisuudet käyttävät 16 -bittistä UUID -tunnusta, kun taas mukautetut palvelut ja ominaisuudet käyttävät 128 -bittisiä UUID -tunnuksia. Katso esimerkiksi akkupalvelun määritetty numero Bluetooth SIG -laitteesta. Annettu numero 0x180F edustaa 128-bittistä UUID-tunnusta "0000180F-0000-1000-8000-00805F9B34FB". Lihavoidut neljä numeroa (16 bittiä) ovat ainutlaatuisia tietylle standardoidulle palvelulle tai ominaisuudelle, kun taas muut merkit säilytetään kaikkien standardoitujen palveluiden ja ominaisuuksien välillä. Koska sekä asiakas että GATT -palvelin tietävät, että standardoidut palvelut ja ominaisuudet vaihtelevat vain lihavoiduilla numeroilla, datapakettien kokoja voidaan pienentää huomattavasti. Mukautetut palvelut ja ominaisuudet eivät kuitenkaan voi toimia samalla oletuksella.
Sen sijaan mukautetuissa palveluissa ja ominaisuuksissa on käytettävä lyhennettyjä 128 -bittisiä UUID -tunnuksia. Tässä on online -UUID -generaattori. Mikä tahansa muu kuin standardoitu UUID on hyväksytty mukautetulle UUID: lle. Tyypillinen nimeämiskäytäntö on kuitenkin merkitä mukautettu palvelu 00000001-… ja sen ominaisuudet 00000002-…
Tässä on yhteenveto laskentataulukosta palveluista ja ominaisuuksista, joita toteutamme yhdessä niiden UUID -tunnusten kanssa
Vaihe 2: Arduino -koodi
PÄIVITÄ BLUEFRUIT LE SPI FRIEND
Kytke ensin Adafruit Bluefruit LE SPI Friend -liitäntä liitäntäoppaassa määritetyn mukaisesti ja käynnistä Arduino -laite. Varmista, että löydät Adafruit Bluefruit LE SPI Friend -laitteen Android -laitteeltasi, kun etsit Bluetooth -laitteita. Lataa Bluefruit Connect -sovellus, muodosta yhteys Adafruit Bluefruit LE SPI Friendiin ja anna sen päivittää laitteen laiteohjelmisto. Tämä vaihe on tärkeä. Jos et päivitä laiteohjelmistoa, laitteen Arduinon kautta antamat komennot epäonnistuvat todennäköisesti, eikä ongelma ole selvä.
Tässä minun repo tälle projektille. Näet koko Arduino -koodin täältä.
YLEISKATSAUS
Muutama tärkeä huomioitava asia:
- Setup () -menetelmässä kaikkien mukautettujen UUID-tunnusten on sisällettävä "-" kahden merkin välein. Esimerkiksi "AT+GATTADDCHAR = UUID128 = 00-00-00-05-62-7E-47-E5-A3-FC-DD-AB-D9-7A-A9-66" toimii. "AT+GATTADDCHAR = UUID128 = 00000005-627E-47E5-A3fCDDABD97AA966" ei toimi.
- Huomaa, että setup () -menetelmässä "battery.begin (true);" kutsuu "ble.reset ();" automaattisesti. Jos et käytä akkupalvelua kuten minulla, sinun on nollattava ble -moduuli (käytä "ble.reset ();"), jossa minulla on komento "battery.begin (true);".
- Vaihda setup () -menetelmässä "if (! Ble.begin (false))" "arvoon" if (! Ble.begin (true)) ", jos haluat korjata virheen.
Tämä koodi on melko itsestään selvä. Lisäsin kuvaukset jokaisesta mukautetusta menetelmästä. Asennusmenetelmä saa BLE -moduulin valmiiksi toimimaan GATT -palvelimena. Silmukkamenetelmä käy läpi kiihtyvyysmittarin gyroskooppimoduulin (AGM) väärennetyn pyyhkäisyn ja luo näille arvoille satunnaisluvun 1-100. Akku tyhjenee 1% simuloidakseen akun käyttöä. Voit korvata tämän koodin helposti anturin todellisilla arvoilla. Tämä koodi olettaa, että lähetät joukon AGM -tietoja, 6 mittausta pitkiä, eikä yhtä mittausta, koska AGM -tietojen ikkunan analysointi on todennäköisesti hyödyllisempää kuin yksittäinen tieto. Jos muutat taulukon kokoa, huomaa, että Android -studio -koodiin vaaditaan muutoksia. Jos haluat kaapata joukon tietoja, sinun on lähetettävä laskuri niiden tietojen kanssa, jotka aiot lähettää. Tämän laskurin avulla voit löytää Android -studiosovelluksen ikkunasta, missä olet, joten voit odottaa kuunnella ikkunan puuttuvia datapisteitä. Ilman laskuria tai erikokoisella taulukolla android -studioprojekti joko menettää datapisteitä tai jää jumiin silmukkaan odottamaan jäljellä olevia datapisteitä, joita se odottaa.
Vaihe 3: Android Studio -koodi
Tässä minun repo tälle projektille. Näet koko Android Studion koodin täältä.
YLEISKATSAUS
Aion päivittää tätä perusteellisemmalla yleiskatsauksella siitä, miten arduino- ja android -koodi toimivat yksityiskohtaisesti … Sovellus on täysin toimiva, joten voit katsella koodia itse tällä välin.
Vaihe 4: Lopullinen sovellus
Onnittelut! Sovelluksesi ladataan puhelimeesi ja puettava laite ladataan ja se lähettää dataa.
KÄYNNISTÄ SOVELLUS
Aloita napsauttamalla sovelluksen käynnistyskuvaketta.
MYÖNNÄ LUVAT
Sinun on hyväksyttävä joidenkin käyttöoikeuksien käyttö, jotta sovellus toimii oikein.
SKANNA LAITTEITA
Napsauta seuraavaksi "Skannaa" -painiketta sovelluksen vasemmassa yläkulmassa.
VALITSE KÄYTETTÄVÄ LAITE
Valitse seuraavaksi puettava laite käytettävissä olevien BLE -laitteiden luettelosta. Sen nimi on "BLE Arduino Hardware". HANKI TIEDOT Odota, kunnes sovellus saa AGM -tiedot ja määrittää, missä käyttäjä on paikalla tai liikkuu. KATSO TULOKSET Tarkista tulokset näytöltä! Napsauta synkronointipainiketta saadaksesi uuden datalukeman.
Suositeltava:
Arduinosta tulee puhuva Tom: 6 vaihetta
Arduinosta tulee puhuva Tom: Yksi vanhimmista muistoistani älypuhelimen käytöstä oli Talking Tom -pelin pelaaminen. Peli oli aika yksinkertainen. On kissa nimeltä Tom, joka osaa puhua. Pelissä Tom kuunteli kaikki tulot puhelimen mikrofonin kautta ja toisti sitten
Tietojen lähettäminen Arduinosta Exceliin (ja piirtäminen): 3 vaihetta (kuvien kanssa)
Tietojen lähettäminen Arduinosta Exceliin (ja piirtäminen): Olen etsinyt laajasti tapaa, jolla voisin piirtää Arduino -anturini lukeman reaaliajassa. Ei vain piirtää, vaan myös näyttää ja tallentaa tiedot myöhempää kokeilua ja korjauksia varten. Yksinkertaisin ratkaisu, jonka olen löytänyt, oli käyttää exceliä, mutta
Lähetä numeerisia tietoja yhdestä Arduinosta toiseen: 16 vaihetta
Lähetä numeerisia tietoja Arduinosta toiseen: Johdanto David Palmer, CDIO Tech. Pitäisikö sinun koskaan lähettää joitakin numeroita Arduinon poikki toiselta? Tämä opas näyttää kuinka. Voit helposti testata sen toimivuuden yksinkertaisesti kirjoittamalla numerojonon, joka lähetetään S
Puhuva Arduino - MP3 -tiedoston toistaminen Arduinolla ilman moduulia - Mp3 -tiedoston toistaminen Arduinosta PCM: llä: 6 vaihetta
Puhuva Arduino | MP3 -tiedoston toistaminen Arduinolla ilman moduulia | Mp3 -tiedoston toistaminen Arduinolta PCM: n avulla: Tässä ohjeessa opimme MP3 -tiedoston toistamisen arduinolla ilman äänimoduulia, tässä käytämme PCM -kirjastoa Arduinolle, joka toistaa 16 -bittistä PCM: ää 8 kHz: n taajuudella, joten voit tehdä tämän
Lämpötilan ja kosteuden tiedonkeruulaite Arduinosta Android -puhelimeen, jossa on SD -korttimoduuli Bluetoothin kautta: 5 vaihetta
Lämpötila- ja kosteustietojen tallennuslaite Arduinosta Android -puhelimeen, jossa on SD -korttimoduuli Bluetoothin kautta: Hei kaikki, Tämä on ensimmäinen Instructable koskaan, toivottavasti autan valmistajayhteisöä, koska olen hyötynyt siitä. Usein käytämme projekteissamme antureita, mutta etsimme tapaa kerätä tiedot, tallentaa ne ja siirtää ne puhelimiin tai muihin laitteisiin välittömästi