Orodha ya maudhui:

Jenga Tracker inayoweza kuvaliwa (BLE Kutoka Arduino hadi Programu Maalum ya Studio ya Android): Hatua 4
Jenga Tracker inayoweza kuvaliwa (BLE Kutoka Arduino hadi Programu Maalum ya Studio ya Android): Hatua 4

Video: Jenga Tracker inayoweza kuvaliwa (BLE Kutoka Arduino hadi Programu Maalum ya Studio ya Android): Hatua 4

Video: Jenga Tracker inayoweza kuvaliwa (BLE Kutoka Arduino hadi Programu Maalum ya Studio ya Android): Hatua 4
Video: 13 Best Tech Gadgets For Gadget Enthusiasts 2024, Julai
Anonim
Jenga Tracker inayoweza kuvaliwa (BLE Kutoka Arduino hadi Programu Maalum ya Studio ya Android)
Jenga Tracker inayoweza kuvaliwa (BLE Kutoka Arduino hadi Programu Maalum ya Studio ya Android)

Nishati ya chini ya Bluetooth (BLE) ni aina ya mawasiliano ya nguvu ya chini ya Bluetooth. Vifaa vinaweza kuvaliwa, kama mavazi maridadi ninayosaidia kubuni katika Uvaaji wa Kutabiri, lazima kupunguza matumizi ya nguvu kila inapowezekana kupanua maisha ya betri, na kutumia BLE mara nyingi. Kikundi cha Riba Maalum cha Bluetooth (SIG) kinafafanua uainishaji kadhaa kifaa kinapaswa kutekeleza kuingiliana na kifaa cha Bluetooth, ambacho huita "wasifu". Profaili nyingi za matumizi hutumia Profaili ya Sifa ya Jumla (GATT) kutuma data juu ya kiunga cha BLE. Kuna dhana tatu za kimsingi katika BLE: maelezo mafupi, huduma, na sifa.

SIG ya Bluetooth imesanifisha wasifu, huduma, na sifa nyingi za kawaida. Walakini, wakati wa kuunda vifaa vya kawaida mara nyingi kuna haja ya kuunda huduma na sifa za kitamaduni na hakuna mafunzo mengi yanayopatikana. Ili kufanya mambo kuwa magumu zaidi, Adafruit haitoi mwongozo wowote juu ya kubuni programu za rununu ili kuoana na moduli zao za BLE na nambari ya chanzo ya programu zao ni ngumu kurudisha nyuma mhandisi.

Mafunzo haya yanalenga kuelezea:

  1. Jinsi ya kubuni huduma na tabia za GATT maalum
  2. Jinsi ya kupanga Adafruit Bluefruit LE SPI Rafiki kutenda kama seva ya GATT kwa huduma na tabia hizi za kitamaduni
  3. Jinsi ya kupanga kifaa cha Android kutenda kama mteja wa GATT kusoma data kutoka kwa seva ya GATT

Mafunzo haya hayakusudiwa kutafsiri katika programu iliyo tayari ya uzalishaji - hii ni utangulizi wa BLE.

Usomaji wa Asili:

  • Nyaraka za Rafiki za Adafruit Bluefruit LE SPI
  • Ikiwa haujui GATT au BLE

Vifaa

  • 1x - Kifaa cha Arduino (ninatumia UNO kwa mafunzo haya)
  • 1x - Adafruit Bluefruit LE SPI Rafiki
  • 8x - waya wa kiume na wa kiume wa kuruka
  • Vifaa vya msingi vya kuuza (kwa pini za kichwa cha solder kwenye Rafiki wa SPI)
  • Kompyuta (kupanga kifaa cha Arduino na kifaa cha android)

Hatua ya 1: Kubuni Huduma za Mila na Tabia

UTANGULIZI

Nakala hii inafanya kazi nzuri kuelezea jinsi ya kubuni huduma na tabia za kitamaduni. Ninapendekeza sana kusoma kupitia nakala hii. Ninatoa muhtasari rahisi sana hapa chini ambao unapuuza ujanja kwa kupendelea unyenyekevu.

Huduma za GATT ni mkusanyiko wa tabia.

Tabia za GATT zina mali, thamani, na sifuri au zaidi.

  • Mali: jinsi data inapaswa kushughulikiwa na mteja (Android App) n.k. soma, andika, andika bila majibu, arifu, na onyesha.
  • Thamani: thamani halisi ya tabia k.v. 1089
  • Vifafanua: hii ni habari kuhusu thamani k.v. kitengo, milliseconds

Ubunifu

Sawa, sasa unajua huduma na sifa ni nini, tunahitaji kujua jinsi ya kubuni huduma na sifa kupata data yetu ya kawaida na kuituma kutoka kwa seva yetu ya GATT (Arduino) kwa mteja (App ya Android). Wacha tuangalie kifaa cha Arduino ambacho kinakusanya data kutoka kwa moduli ya accelerometer-gyroscope (AGM). Tunataka kukusanya gyroscope na vipimo vya kuongeza kasi kutoka kwa shoka tatu za anga na wakati vipimo hivi vilichukuliwa na kusambaza data hii kwa programu tumizi ya rununu. Tunataka pia kujua wakati tunahitaji kuchaji kifaa, kwa hivyo tunataka kusoma kiwango cha betri na kuipeleka kwa programu tumizi ya rununu.

1. Je! Tunaweza kutumia huduma na sifa yoyote ya kawaida?

SIG ya Bluetooth imesimamisha huduma na sifa nyingi za kawaida. Kwanza, angalia hizi ili uone ikiwa unaweza kuchagua huduma na sifa zozote sanifu. Huduma na sifa za kawaida zinaweza kutumia pakiti ndogo za data kwani Kitambulisho cha kipekee cha Ulimwenguni (UUID) ni bits 16 wakati huduma za kawaida na sifa lazima zitumie bits 128 kwa UUID zao. Zaidi juu ya UUIDs baadaye. Kutoka kwa utaftaji wetu, tumepata "huduma ya betri" iliyosanifishwa ambayo ina tabia moja ya "kiwango cha betri".

2. Tenga maadili yote ya data unayotaka kutuma juu ya BLE katika sifa na huduma

Tunaweza kuvunja alama zetu za data ya kawaida hadi sifa saba za kawaida ndani ya huduma moja ya kawaida. Huduma hii tutaiita "huduma ya AGM". Itakuwa na sifa 7: x-kuongeza kasi, y-kuongeza kasi, z-kuongeza kasi, x-gyroscope, y-gyroscope, z-gyroscope, na kumbukumbu ya wakati.

3. Tambua mali zinazohitajika kwa kila tabia

Kuna mali kadhaa tabia inaweza kuwa nayo.

  1. Soma: Mteja (Programu ya Android) anaweza kusoma thamani kutoka kwa GATT Server (Arduino)
  2. Andika: Mteja anaweza kubadilisha thamani kutoka kwa GATT Server
  3. Onyesha: Mteja ataarifiwa ikiwa thamani itabadilika kutoka kwa Seva ya GATT na Mteja anatarajiwa kutuma uthibitisho kwa Seva ya GATT
  4. Arifu: Mteja ataarifiwa ikiwa thamani itabadilika kutoka kwa Seva ya GATT na Mteja hatarajiwi kutuma uthibitisho kwa Seva ya GATT

Kwa mafunzo haya, tutaweka sifa zetu zote kusoma, isipokuwa kiwango cha betri ambacho kitakuwa na taarifa na kusoma mali.

4. Tengeneza UUIDs kwa huduma na tabia za kawaida na upate UUID za kawaida

Kama nilivyosema kwa ufupi hapo awali, huduma na sifa za Bluetooth SIG hutumia UUID 16 kidogo wakati huduma za kawaida na sifa hutumia UUIDs 128 kidogo. Kwa mfano, angalia huduma ya betri iliyopewa nambari kwenye SIG ya Bluetooth. Nambari iliyopewa 0x180F inawakilisha 128 bit UUID "0000180F-0000-1000-8000-00805F9B34FB". Nambari nne (16 bits) kwa herufi ni za kipekee kwa huduma fulani iliyosanifiwa au tabia wakati wahusika wengine wamehifadhiwa kati ya huduma na sifa zote zilizosanifiwa. Kwa kuwa mteja na seva ya GATT wanajua kuwa huduma na sifa sanifu zinatofautiana tu na nambari zilizo na ujasiri, saizi za pakiti za data zinaweza kupunguzwa sana. Walakini, huduma na tabia za kitamaduni haziwezi kufanya kazi chini ya dhana hii hiyo.

Badala yake, huduma za kawaida na sifa lazima zitumie UUIDs 128 ambazo hazijafupishwa. Hapa kuna jenereta ya UUID mkondoni. UUID yoyote isipokuwa UUID sanifu inakubalika kwa UUID ya kawaida. Walakini, mkutano wa kawaida wa kutaja jina ni kuashiria huduma ya kawaida 00000001-… na sifa ndani ya huduma hiyo ya desturi 00000002-…

Hapa kuna lahajedwali la huduma na sifa ambazo tutatekeleza pamoja na UUID zao

Hatua ya 2: Msimbo wa Arduino

Sasisha BLUEFRUIT LE SPI RAFIKI

Kwanza, unganisha Rafiki ya Adafruit Bluefruit LE SPI kama wanavyotaja katika mwongozo wao wa kukamata na kukiwezesha kifaa cha Arduino. Hakikisha unaweza kupata Rafiki ya Adafruit Bluefruit LE SPI kwenye kifaa chako cha android unapotafuta vifaa vya Bluetooth. Pakua programu ya Bluefruit Connect, unganisha na Adafruit Bluefruit LE SPI Friend na uiruhusu kusasisha firmware kwenye kifaa. Hatua hii ni muhimu. Ikiwa hautasasisha firmware, maagizo unayotoa kifaa kupitia Arduino yatashindwa na hakutakuwa na kosa dhahiri kwako kugundua shida ni nini.

Hapa repo yangu ya mradi huu. Unaweza kuona nambari kamili ya Arduino hapa.

MAELEZO

Vitu muhimu vya kuzingatia:

  1. Katika njia ya kuanzisha (), UUID zote maalum lazima ziwe na "-" kati ya kila herufi mbili. Kwa mfano, "AT + GATTADDCHAR = UUID128 = 00-00-00-05-62-7E-47-E5-A3-FC-DD-AB-D9-7A-A9-66" itafanya kazi. "AT + GATTADDCHAR = UUID128 = 00000005-627E-47E5-A3fCDDABD97AA966" haitafanya kazi.
  2. Kumbuka kuwa katika njia ya kuanzisha (), "betri.anza (kweli);" simu "ble.reset ();" moja kwa moja. Ikiwa hautumii huduma ya betri kama nilivyo, unahitaji kuweka upya moduli ya ble (tumia "ble.reset ();") ambapo nina amri "betri.anza (kweli);".
  3. Katika njia ya kuanzisha (), badilisha "ikiwa (! Ble.anza (uongo))" hadi "ikiwa (! Ble.begin (kweli))" ikiwa unataka kutatua.

Nambari hii inaelezea vizuri. Nilijumuisha maelezo ya kila njia ya kawaida. Njia ya kuanzisha inapata moduli ya BLE tayari kutenda kama seva ya GATT. Njia ya kitanzi hupitia ufagiaji bandia wa moduli ya gyroscope ya kasi ya kasi (AGM) na inazalisha nambari ya nasibu kutoka 1 hadi 100 kwa maadili haya. Betri hutolewa na 1% kuiga matumizi ya betri. Unaweza kubadilisha nambari hii na maadili halisi ya sensa kwa urahisi. Nambari hii inadhani utasambaza safu ya data ya AGM, vipimo 6 kwa muda mrefu, badala ya kipimo kimoja kwani kuchambua dirisha la data ya AGM kunaweza kuwa muhimu zaidi kuliko nukta moja ya data. Ukibadilisha saizi ya safu, kumbuka kuwa kutakuwa na mabadiliko yanayohitajika katika nambari ya studio ya android. Ili kunasa safu ya data, lazima upitishe kaunta pamoja na data unayotarajia kutuma. Kaunta hii hukuruhusu kupata mahali ulipo kwenye dirisha kutoka kwa programu ya studio ya android ili uweze kusubiri kusikiliza alama za data zilizopotea kwenye dirisha. Bila kaunta au na safu tofauti ya ukubwa, mradi wa studio ya android utakosa alama za data au utakwama kwenye kitanzi ukingojea alama za data zilizobaki ambazo zinatarajia.

Hatua ya 3: Msimbo wa Studio ya Android

Hapa repo yangu ya mradi huu. Unaweza kuona nambari kamili ya Studio ya Android hapa.

MAELEZO

Nitaendelea kusasisha hii kwa muhtasari kamili wa jinsi kificho cha arduino na admin kinafanya kazi kwa undani… Programu inafanya kazi kikamilifu kwa hivyo jisikie huru kuangalia nambari yako mwenyewe kwa sasa.

Hatua ya 4: Maombi ya Mwisho

Maombi ya Mwisho
Maombi ya Mwisho
Maombi ya Mwisho
Maombi ya Mwisho
Maombi ya Mwisho
Maombi ya Mwisho

Hongera! Maombi yako yanapakuliwa kwenye simu yako na kifaa chako kinachoweza kuvaliwa huchajiwa na kusambaza data.

ZINDUA APP

Ili kuanza, bonyeza ikoni ya kifungua programu.

VIBALI VYA RUZUKU

Utahitaji kuidhinisha utumiaji wa ruhusa zingine kwa programu kufanya kazi vizuri.

CHANGANYA VIFAA

Ifuatayo, bonyeza kitufe cha "Scan" kwenye kona ya juu kushoto ya programu.

CHAGUA VIFAA VYAKO VIVYO

Ifuatayo, chagua kifaa chako cha kuvaa kutoka kwenye orodha ya vifaa vya BLE zinazopatikana. Jina lake ni "BLE Arduino Hardware". PATA DATAWASubiri wakati programu inapata data ya Mkutano Mkuu na huamua ni wapi mtumiaji yuko bado au anahamia. TAZAMA MATOKEO YAKO Angalia matokeo kwenye skrini! Bonyeza kitufe cha kusawazisha kupata usomaji mwingine wa data.

Ilipendekeza: