Orodha ya maudhui:
- Vifaa
- Hatua ya 1: Kubuni Huduma za Mila na Tabia
- Hatua ya 2: Msimbo wa Arduino
- Hatua ya 3: Msimbo wa Studio ya Android
- Hatua ya 4: Maombi ya Mwisho
Video: Jenga Tracker inayoweza kuvaliwa (BLE Kutoka Arduino hadi Programu Maalum ya Studio ya Android): Hatua 4
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:48
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:
- Jinsi ya kubuni huduma na tabia za GATT maalum
- Jinsi ya kupanga Adafruit Bluefruit LE SPI Rafiki kutenda kama seva ya GATT kwa huduma na tabia hizi za kitamaduni
- 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.
- Soma: Mteja (Programu ya Android) anaweza kusoma thamani kutoka kwa GATT Server (Arduino)
- Andika: Mteja anaweza kubadilisha thamani kutoka kwa GATT Server
- Onyesha: Mteja ataarifiwa ikiwa thamani itabadilika kutoka kwa Seva ya GATT na Mteja anatarajiwa kutuma uthibitisho kwa Seva ya GATT
- 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:
- 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.
- 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);".
- 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
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:
Arduino: Programu za Muda na Udhibiti wa Kijijini Kutoka kwa Programu ya Android: Hatua 7 (na Picha)
Arduino: Programu za Wakati na Udhibiti wa Kijijini Kutoka kwa Programu ya Android: Nimekuwa nikijiuliza kila wakati ni nini kinatokea na bodi zote za Arduino ambazo watu hawaitaji baada ya kumaliza miradi yao nzuri. Ukweli ni wa kukasirisha kidogo: hakuna chochote. Nimeona hii nyumbani kwa familia yangu, ambapo baba yangu alijaribu kujenga nyumba yake mwenyewe
Jenga hii 5Hz hadi 400KHz Jenereta ya Ishara ya Ishara ya LED Kutoka kwa Kits: Hatua 8
Jenga hii 5Hz hadi 400KHz Jenereta ya Ishara ya Ishara ya LED kutoka kwa Kits: Jenga jenereta hii ya ishara rahisi ya kufagia kutoka kwa vifaa vinavyopatikana kwa urahisi. Ikiwa ungeangalia mwisho wangu wa kufundisha (Fanya Paneli za Kuangalia Mbele za Mtaalam), labda ningeepuka kile nilichokuwa nikifanya kazi wakati huo, ambayo ilikuwa jenereta ya ishara. Nilitaka
Jopo la Taa Maalum linaloweza kuvaliwa (Kozi ya Utafutaji wa Teknolojia - TfCD - Tu Delft): Hatua 12 (na Picha)
Jopo la Taa Maalum linaloweza kuvaliwa (Kozi ya Uchunguzi wa Teknolojia - TfCD - Tu Delft): Katika Agizo hili utajifunza jinsi ya kutengeneza picha yako ambayo unaweza kuvaa! Hii imefanywa kwa kutumia teknolojia ya EL iliyofunikwa na alama ya vinyl na kushikamana na bendi ili uweze kuivaa kwenye mkono wako. Unaweza pia kubadilisha sehemu za ukurasa huu
Jinsi ya Kupata Muziki wa Bure Kutoka kwa PP Bila Programu zozote Maalum Mbali na Windows Media 9 Labda 10: 3 Hatua
Jinsi ya Kupata Muziki wa Bure Kutoka kwa PP Bila Programu zozote Maalum Mbali na Windows Media 9 Labda 10: Hii inayoweza kufundishwa itakufundisha jinsi ya kupata muziki bure kutoka kwa mtoa huduma wa orodha ya kucheza ya bure, Orodha ya kucheza ya Mradi. (Ya kwanza ya kufundisha ftw!) Vitu utakavyohitaji: 1. Kompyuta (duh) 2. Ufikiaji wa mtandao (duh nyingine husababisha usomaji wako huu) 3. Pr
Pata Kalenda Kutoka Microsoft Outlook 2000 hadi Ipod Bila Programu: 3 Hatua
Pata Kalenda Kutoka Microsoft Outlook 2000 hadi Ipod Bila Programu: Katika hii Inayoweza Kuelekezwa nitakuonyesha jinsi ya kupata kalenda kutoka Microsoft Outlook 2000 (au toleo lolote lisiloungwa mkono na itunes) kwa ipod yako (moja tu ambayo inasaidia matumizi ya diski) bila kupakua programu. Kuna mambo machache ningependa ma