Satura rādītājs:
- Piegādes
- 1. darbība. Izstrādājiet pielāgotus pakalpojumus un īpašības
- 2. darbība: Arduino kods
- 3. darbība. Android Studio kods
- 4. solis: galīgais pieteikums
Video: Izveidojiet valkājamu kustību izsekotāju (BLE no Arduino uz pielāgotu Android Studio lietotni): 4 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:51
Bluetooth Low Energy (BLE) ir mazjaudas Bluetooth saziņas veids. Valkājamām ierīcēm, piemēram, viedajiem apģērbiem, ko es palīdzu projektēt programmā Predictive Wear, pēc iespējas jāierobežo enerģijas patēriņš, lai pagarinātu akumulatora darbības laiku, un bieži jāizmanto BLE. Bluetooth īpašo interešu grupa (SIG) nosaka vairākas specifikācijas, kas ierīcei jāievieš, lai mijiedarbotos ar Bluetooth ierīci, ko tās sauc par "profiliem". Lielākā daļa lietojumprogrammu profilu izmanto vispārējo atribūtu profilu (GATT), lai nosūtītu datus, izmantojot BLE saiti. BLE ir trīs pamatjēdzieni: profili, pakalpojumi un atribūti.
Bluetooth SIG ir standartizējis daudzus izplatītus profilus, pakalpojumus un atribūtus. Tomēr, veidojot pielāgotu aparatūru, bieži vien ir jāizveido pielāgoti pakalpojumi un atribūti, un nav daudz pamācību. Lai situāciju padarītu sarežģītāku, Adafruit nesniedz nekādus norādījumus par mobilo lietojumprogrammu projektēšanu, lai tās savienotu pārī ar to BLE moduļiem, un to lietojumprogrammu avota kodu ir grūti mainīt.
Šīs apmācības mērķis ir izskaidrot:
- Kā izveidot pielāgotus GATT pakalpojumus un īpašības
- Kā programmēt Adafruit Bluefruit LE SPI draugu, lai tas darbotos kā GATT serveris šiem pielāgotajiem pakalpojumiem un īpašībām
- Kā ieprogrammēt Android ierīci, lai tā darbotos kā GATT klients, lai nolasītu datus no GATT servera
Šī apmācība nav paredzēta pārtapšanai ražošanai gatavā lietojumprogrammā - tas ir vienkārši ievads BLE.
Fona lasījums:
- Adafruit Bluefruit LE SPI drauga dokumentācija
- Ja neesat pazīstams ar GATT vai BLE
Piegādes
- 1x - Arduino ierīce (šai apmācībai izmantoju UNO)
- 1x - Adafruit Bluefruit LE SPI draugs
- 8x - džemperu vadi no vīriešu līdz vīriešiem
- Pamata lodēšanas iekārta (lai lodētu galvenes tapas uz SPI Friend)
- Dators (lai programmētu Arduino ierīci un Android ierīci)
1. darbība. Izstrādājiet pielāgotus pakalpojumus un īpašības
IEVADS
Šis raksts lieliski palīdz izskaidrot, kā veidot pielāgotus pakalpojumus un īpašības. Es ļoti iesaku izlasīt šo rakstu. Tālāk sniegšu ļoti vienkāršu pārskatu, kurā tiek ignorēti smalkumi par labu vienkāršībai.
GATT pakalpojumi ir raksturlielumu kopums.
VVTT raksturlielumos ir īpašums, vērtība un nulle vai vairāk deskriptoru.
- Īpašums: kā klientam ir jāapstrādā dati (Android lietotne), piem. lasīt, rakstīt, rakstīt bez atbildes, paziņot un norādīt.
- Vērtība: raksturlieluma faktiskā vērtība, piem. 1089
- Apraksti: tā ir informācija par vērtību, piem. vienība, milisekundes
DIZAINS
Labi, tagad jūs zināt, kas ir pakalpojumi un īpašības, mums ir jāizdomā, kā izstrādāt dažus pakalpojumus un īpašības, lai iegūtu mūsu pielāgotos datus un nosūtītu tos no mūsu GATT servera (Arduino) klientam (Android lietotne). Aplūkosim Arduino ierīci, kas vāc datus no akselerometra-žiroskopa moduļa (AGM). Mēs vēlamies savākt žiroskopu un paātrinājuma mērījumus no trim telpiskajām asīm un šo mērījumu veikšanas laiku un pārsūtīt šos datus uz mūsu mobilo lietotni. Mēs arī vēlamies zināt, kad ierīce jāuzlādē, tāpēc vēlamies nolasīt akumulatora uzlādes līmeni un pārsūtīt to uz mūsu mobilo lietojumprogrammu.
1. Vai mēs varam izmantot kādu no standarta pakalpojumiem un īpašībām?
Bluetooth SIG ir standartizējis daudzus izplatītus pakalpojumus un īpašības. Vispirms pārbaudiet šos, lai redzētu, vai varat kopīgi izvēlēties kādu no standartizētajiem pakalpojumiem un īpašībām. Standarta pakalpojumos un raksturlielumos var izmantot daudz mazākas datu paketes, jo universāli unikālais identifikators (UUID) ir 16 bitu, savukārt pielāgoto pakalpojumu un raksturlielumu UUID ir jāizmanto 128 biti. Vairāk par UUID vēlāk. Veicot meklēšanu, mēs atradām standartizētu "akumulatora pakalpojumu", kas satur vienu raksturīgu "akumulatora uzlādes līmeni".
2. Atdaliet visas datu vērtības, kuras vēlaties nosūtīt, izmantojot BLE, raksturlielumos un pakalpojumos
Mēs varam sadalīt savus pielāgotos datu punktus septiņos pielāgotos raksturlielumos viena pielāgota pakalpojuma ietvaros. Šo pakalpojumu mēs sauksim par "AGM pakalpojumu". Tajā būs 7 raksturlielumi: x-paātrinājums, y-paātrinājums, z-paātrinājums, x-žiroskops, y-žiroskops, z-žiroskops un laika atskaite.
3. Nosakiet katrai pazīmei nepieciešamās īpašības
Raksturojumam var būt vairākas īpašības.
- Lasīt: klients (Android lietotne) var nolasīt vērtību no GATT servera (Arduino)
- Rakstīt: klients var mainīt vērtību no GATT servera
- Norādiet: klients tiks informēts, ja vērtība mainīsies no GATT servera, un gaidāms, ka klients nosūtīs apstiprinājumu GATT serverim
- Paziņot: klients tiks informēts, ja vērtība mainīsies no GATT servera un nav paredzēts, ka klients nosūtīs apstiprinājumu uz GATT serveri
Šajā apmācībā mēs iestatīsim visu mūsu raksturlielumu lasīšanu, izņemot akumulatora uzlādes līmeni, kam būs gan paziņojuma, gan lasīšanas rekvizīti.
4. Izveidojiet UUID pielāgotiem pakalpojumiem un īpašībām un atrodiet standarta UUID
Kā es īsumā minēju iepriekš, Bluetooth SIG standartizētajos pakalpojumos un raksturlielumos tiek izmantots 16 bitu UUID, savukārt pielāgotajos pakalpojumos un raksturlielumos tiek izmantoti 128 bitu UUID. Piemēram, skatiet akumulatora pakalpojumam piešķirto numuru Bluetooth SIG. Piešķirtais numurs 0x180F apzīmē 128 bitu UUID "0000180F-0000-1000-8000-00805F9B34FB". Četri cipari (16 biti) treknrakstā ir unikāli konkrētajam standartizētajam pakalpojumam vai īpašībai, bet pārējās rakstzīmes tiek saglabātas starp visiem standartizētiem pakalpojumiem un raksturlielumiem. Tā kā gan klients, gan GATT serveris zina, ka standartizētie pakalpojumi un īpašības atšķiras tikai ar trekniem cipariem, datu pakešu izmērus var ievērojami samazināt. Tomēr pielāgoti pakalpojumi un īpašības nevar darboties saskaņā ar šo pašu pieņēmumu.
Tā vietā pielāgotajos pakalpojumos un raksturlielumos jāizmanto nesaīsināti 128 bitu UUID. Šeit ir tiešsaistes UUID ģenerators. Jebkurš UUID, kas nav standartizēts UUID, ir pieņemams pielāgotajam UUID. Tomēr tipiska nosaukšanas konvencija ir apzīmēt pielāgotu pakalpojumu 00000001-… un šī pielāgotā pakalpojuma 00000002- raksturlielumus.
Šeit ir apkopota izklājlapa par pakalpojumiem un īpašībām, ko mēs īstenosim kopā ar to UUID
2. darbība: Arduino kods
ATJAUNINIET BLUEFRUIT LE SPI DRAUGU
Vispirms pievienojiet Adafruit Bluefruit LE SPI Friend, kā norādīts savienošanas rokasgrāmatā, un ieslēdziet Arduino ierīci. Pārliecinieties, ka varat atrast Adafruit Bluefruit LE SPI Friend savā Android ierīcē, meklējot Bluetooth ierīces. Lejupielādējiet lietotni Bluefruit Connect, izveidojiet savienojumu ar Adafruit Bluefruit LE SPI Friend un ļaujiet tai atjaunināt ierīces programmaparatūru. Šis solis ir svarīgs. Ja neatjaunināsit programmaparatūru, komandas, kuras izdodat ierīcei, izmantojot Arduino, visticamāk neizdosies, un nebūs acīmredzamas kļūdas, lai jūs varētu atklāt problēmu.
Šeit ir mans repo šim projektam. Šeit varat redzēt pilnu Arduino kodu.
PĀRSKATS
Jāņem vērā dažas svarīgas lietas:
- Iestatīšanas () metodē visos pielāgotajos UUID ik pēc divām rakstzīmēm ir jābūt "-". Piemēram, "AT+GATTADDCHAR = UUID128 = 00-00-00-05-62-7E-47-E5-A3-FC-DD-AB-D9-7A-A9-66" darbosies. "AT+GATTADDCHAR = UUID128 = 00000005-627E-47E5-A3fCDDABD97AA966" nedarbosies.
- Ņemiet vērā, ka iestatīšanas () metodē "battery.begin (true);" aicina "ble.reset ();" automātiski. Ja neizmantojat akumulatora pakalpojumu, kā es, jums ir jāatiestata ble modulis (izmantojiet "ble.reset ();"), kur man ir komanda "battery.begin (true);".
- Iestatīšanas () metodē, ja vēlaties atkļūdot, mainiet "if (! Ble.begin (false))" uz "if (! Ble.begin (true))".
Šis kods ir diezgan pašsaprotams. Es iekļāvu katras pielāgotās metodes aprakstus. Iestatīšanas metode ļauj BLE modulim darboties kā GATT serverim. Cilpas metode iet caur akselerometra žiroskopa moduļa (AGM) viltotu slaucīšanu un ģenerē nejaušu skaitli no 1 līdz 100 šīm vērtībām. Lai simulētu akumulatora lietošanu, akumulators ir izlādējies par 1%. Jūs varat viegli nomainīt šo kodu ar faktiskajām sensora vērtībām. Šis kods pieņem, ka jūs pārsūtīsit AGM datu masīvu, 6 mērījumu garumā, nevis vienu mērījumu, jo AGM datu loga analīze, iespējams, ir lietderīgāka nekā viens datu punkts. Ja maināt masīva lielumu, ņemiet vērā, ka Android studijas kodā būs nepieciešamas izmaiņas. Lai iegūtu datu masīvu, jums jānodod skaitītājs kopā ar datiem, kurus plānojat nosūtīt. Šis skaitītājs ļauj jums atrast atrašanās vietu logā no android studio lietojumprogrammas, lai jūs varētu gaidīt, lai noklausītos trūkstošos datu punktus logā. Bez skaitītāja vai ar cita izmēra masīvu android studijas projekts vai nu palaidīs garām datu punktus, vai arī iestrēgs cilpā, gaidot atlikušos datu punktus.
3. darbība. Android Studio kods
Šeit ir mans repo šim projektam. Pilnu Android Studio kodu varat skatīt šeit.
PĀRSKATS
Es turpināšu to atjaunināt ar rūpīgāku pārskatu par to, kā arduino un android kods darbojas detalizēti … Lietotne ir pilnībā funkcionāla, tāpēc tikmēr varat brīvi aplūkot kodu.
4. solis: galīgais pieteikums
Apsveicam! Jūsu lietojumprogramma tiek lejupielādēta tālrunī, un valkājamā ierīce tiek uzlādēta un pārsūta datus.
SĀKT APP
Lai sāktu darbu, noklikšķiniet uz lietojumprogrammas palaišanas ikonas.
PIEŠĶIRT ATĻAUJAS
Lai lietotne darbotos pareizi, jums būs jāapstiprina dažu atļauju izmantošana.
SKENĒT IERĪCES
Pēc tam noklikšķiniet uz pogas "Skenēt" lietotnes augšējā kreisajā stūrī.
IZVĒLIETIES Nēsājamo ierīci
Pēc tam pieejamo BLE ierīču sarakstā atlasiet savu valkājamo ierīci. Tās nosaukums ir "BLE Arduino Hardware". IEGŪT DATUS Pagaidiet, kamēr lietotne iegūst AGM datus un nosaka, kur lietotājs joprojām atrodas vai pārvietojas. SKATĪT SAVUS REZULTĀTUS Pārbaudiet rezultātus ekrānā! Noklikšķiniet uz sinhronizācijas pogas, lai iegūtu citu datu nolasījumu.
Ieteicams:
Kā izveidot Android lietotni, izmantojot Android Studio: 8 soļi (ar attēliem)
Kā izveidot Android lietotni, izmantojot Android Studio: šī apmācība iemācīs jums pamatus, kā izveidot Android lietotni, izmantojot Android Studio izstrādes vidi. Tā kā Android ierīces kļūst arvien izplatītākas, pieprasījums pēc jaunām lietotnēm tikai palielināsies. Android Studio ir viegli lietojams (
Izveidojiet pielāgotu Arduino testa stendu, izmantojot vadu ietīšanu: 7 soļi (ar attēliem)
Izveidojiet pielāgotu Arduino testa stendu, izmantojot vadu iesaiņošanu: šī pamācība parādīs vienkāršu veidu, kā savienot Arduino Nano ar dažādiem PCB sadalīšanas dēļiem. Šis projekts radās, meklējot efektīvu, bet nesagraujošu veidu, kā savienot vairākus moduļus. Man bija pieci moduļi, kurus es gribēju
Izveidojiet motorizētu klēts durvju izsekotāju : 6 soļi (ar attēliem)
Izveidojiet motorizētu klēts durvju izsekotāju …: … fotografējiet zvaigznes, planētas un citus miglājus, izmantojot kameru. Nav Arduino, nav pakāpju motoru, nav pārnesumu, tikai vienkāršs motors, pagriežot vītņotu stieni, šis šķūņa durvju izsekotājs rotē jūsu kameru tādā pašā ātrumā kā mūsu planētas rotācija
Izveidojiet pielāgotu USB ikonu un nosaukumu: 3 soļi
Izveidojiet pielāgotu USB ikonu un nosaukumu: Sveiki, laipni lūdzam šajā īsajā apmācībā! Beigās jūs varēsit nomainīt veco un pārmērīgi izmantoto USB zibatmiņas diska ikonu un mainīt tās nosaukumu zem logiem. Tātad, sāksim! PS : Es esmu francūzis, tāpēc var būt dažas kļūdas vai dīvaini teikumi, un es atvainojos
Izveidojiet pielāgotu displeju LCD studijā (G15 tastatūrai un LCD ekrāniem) .: 7 soļi
Izveidojiet pielāgotu displeju LCD studijā (G15 tastatūrai un LCD ekrāniem).: Labi, ja tikko esat ieguvis savu G15 tastatūru un neesat ļoti iespaidīgs ar komplektā iekļautajiem pamata displejiem, tad es iepazīstināšu jūs ar LCD Studio lietošanas pamatiem lai izveidotu savu. Šis piemērs būs displeja izveide, kas parāda tikai pamata