Isi kandungan:
- Bekalan
- Langkah 1: Reka Perkhidmatan & Karakteristik Tersuai
- Langkah 2: Kod Arduino
- Langkah 3: Kod Android Studio
- Langkah 4: Permohonan Akhir
Video: Bina Tracker Gerak Boleh Dipakai (BLE Dari Arduino ke Aplikasi Studio Android Custom): 4 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Tenaga Rendah Bluetooth (BLE) adalah bentuk komunikasi Bluetooth kuasa rendah. Peranti yang boleh dipakai, seperti pakaian pintar yang saya bantu reka di Predictive Wear, mesti menghadkan penggunaan kuasa sedapat mungkin untuk memanjangkan hayat bateri, dan sering menggunakan BLE. Kumpulan Kepentingan Khas Bluetooth (SIG) menentukan beberapa spesifikasi yang harus dilaksanakan oleh peranti untuk berinteraksi dengan peranti Bluetooth, yang mereka sebut "profil". Sebilangan besar profil aplikasi menggunakan Profil Atribut Umum (GATT) untuk menghantar data melalui pautan BLE. Terdapat tiga konsep asas dalam BLE: profil, perkhidmatan, dan atribut.
Bluetooth SIG telah menyeragamkan banyak profil, perkhidmatan, dan atribut umum. Namun, ketika membuat perkakasan tersuai, seringkali perlu membuat perkhidmatan dan atribut khusus dan tidak banyak tutorial tersedia. Untuk membuat masalah menjadi lebih sukar, Adafruit tidak memberikan panduan untuk merancang aplikasi mudah alih untuk dipasangkan dengan modul BLE mereka dan kod sumber untuk aplikasi mereka sukar dibuat semula.
Tutorial ini bertujuan untuk menerangkan:
- Cara merancang perkhidmatan dan ciri GATT tersuai
- Cara memprogram Adafruit Bluefruit LE SPI Friend untuk bertindak sebagai pelayan GATT untuk perkhidmatan & ciri khas ini
- Cara memprogram peranti Android untuk bertindak sebagai klien GATT untuk membaca data dari pelayan GATT
Tutorial ini tidak dimaksudkan untuk diterjemahkan ke dalam aplikasi siap produksi - ini hanyalah pengenalan kepada BLE.
Bacaan Latar Belakang:
- Dokumentasi Adafruit Bluefruit LE SPI Friend
- Sekiranya anda tidak biasa dengan GATT atau BLE
Bekalan
- 1x - Peranti Arduino (saya menggunakan UNO untuk tutorial ini)
- 1x - Adafruit Bluefruit LE SPI Rakan
- 8x - wayar jumper lelaki ke lelaki
- Peralatan pematerian asas (untuk memasang pin header pada SPI Friend)
- Komputer (untuk memprogram peranti Arduino dan peranti android)
Langkah 1: Reka Perkhidmatan & Karakteristik Tersuai
PENGENALAN
Artikel ini memberikan pekerjaan yang baik untuk menjelaskan bagaimana merancang perkhidmatan & ciri khas. Saya sangat mengesyorkan membaca artikel ini. Saya memberikan gambaran umum yang sangat sederhana di bawah ini yang mengabaikan kehalusan yang lebih baik daripada kesederhanaan.
Perkhidmatan GATT adalah kumpulan ciri.
Ciri-ciri GATT mengandungi sifat, nilai, dan penerangan sifar atau lebih.
- Harta: bagaimana data harus dikendalikan oleh pelanggan (Aplikasi Android) mis. membaca, menulis, menulis tanpa respons, memberitahu, dan menunjukkan.
- Nilai: nilai sebenar ciri cth. 1089
- Penerangan: ini adalah maklumat mengenai nilai mis. unit, milisaat
REKA BENTUK
Baiklah, sekarang anda tahu apa itu perkhidmatan & ciri, kita perlu memikirkan bagaimana merancang beberapa perkhidmatan & ciri untuk mendapatkan data tersuai dan menghantarnya dari pelayan GATT (Arduino) kepada pelanggan (Aplikasi Android). Mari kita pertimbangkan peranti Arduino yang mengumpulkan data dari modul accelerometer-gyroscope (AGM). Kami ingin mengumpulkan ukuran giroskop dan pecutan dari tiga paksi spasial dan masa pengukuran ini diambil dan menghantar data ini ke aplikasi mudah alih kami. Kami juga ingin mengetahui kapan kami perlu mengecas peranti, jadi kami ingin membaca tahap bateri dan menghantarnya ke aplikasi mudah alih kami.
1. Bolehkah kita menggunakan mana-mana perkhidmatan & ciri standard?
Bluetooth SIG telah menyeragamkan banyak perkhidmatan dan ciri umum. Pertama, periksa ini untuk melihat apakah anda boleh memilih mana-mana perkhidmatan dan ciri standard. Perkhidmatan dan ciri standard boleh menggunakan paket data yang jauh lebih kecil kerana Pengenal Unik Secara Universal (UUID) adalah 16 bit sementara perkhidmatan dan ciri khas mesti menggunakan 128 bit untuk UUID mereka. Lebih banyak mengenai UUID kemudian. Dari carian kami, kami menemui "perkhidmatan bateri" standard yang mengandungi satu "tahap bateri" ciri.
2. Pisahkan semua nilai data yang ingin anda kirimkan ke BLE menjadi ciri dan perkhidmatan
Kami dapat membahagikan titik data khusus kami menjadi tujuh ciri khas dalam satu perkhidmatan khusus. Kami akan memanggil perkhidmatan ini sebagai "perkhidmatan AGM". Ini akan mengandungi 7 ciri: pecutan-x, pecutan-y, pecutan-z, x-giroskop, y-giroskop, z-giroskop, dan rujukan waktu.
3. Tentukan sifat yang diperlukan untuk setiap ciri
Terdapat beberapa sifat yang mungkin dimiliki oleh suatu ciri.
- Baca: Pelanggan (Aplikasi Android) dapat membaca nilai dari Pelayan GATT (Arduino)
- Tulis: Pelanggan boleh mengubah nilai dari Pelayan GATT
- Nyatakan: Pelanggan akan diberitahu jika nilai berubah dari Pelayan GATT dan Pelanggan dijangka akan menghantar pengesahan ke Pelayan GATT
- Beritahu: Pelanggan akan diberitahu jika nilai berubah dari Pelayan GATT dan Klien tidak diharapkan untuk menghantar pengesahan ke Pelayan GATT
Untuk tutorial ini, kami akan menetapkan semua ciri kami untuk dibaca, dengan pengecualian tahap bateri yang mempunyai sifat memberitahu dan membaca.
4. Hasilkan UUID untuk perkhidmatan & ciri khas dan cari UUID standard
Seperti yang saya nyatakan sebentar tadi, perkhidmatan dan ciri standard Bluetooth SIG menggunakan UUID 16 bit sementara perkhidmatan dan ciri khas menggunakan UUID 128 bit. Sebagai contoh, lihat nombor perkhidmatan bateri yang diberikan pada Bluetooth SIG. Nombor yang diberi 0x180F mewakili UUID 128 bit "0000180F-0000-1000-8000-00805F9B34FB". Empat digit (16 bit) dalam huruf tebal adalah unik untuk perkhidmatan atau ciri standard tertentu sementara watak lain dipelihara antara semua perkhidmatan dan ciri standard. Oleh kerana kedua-dua pelanggan dan pelayan GATT tahu bahawa perkhidmatan dan ciri standard hanya berbeza mengikut angka yang tebal, ukuran data paket dapat dikurangkan dengan ketara. Walau bagaimanapun, perkhidmatan dan ciri khas tidak dapat beroperasi dengan anggapan yang sama.
Sebaliknya, perkhidmatan dan ciri khas mesti menggunakan UUID 128 bit yang tidak disingkat. Berikut adalah penjana UUID dalam talian. Sebarang UUID selain UUID standard boleh diterima untuk UUID tersuai. Walau bagaimanapun, satu konvensyen penamaan khas adalah untuk menunjukkan perkhidmatan khusus 00000001-… dan ciri-ciri dalam perkhidmatan khusus tersebut 00000002-…
Berikut adalah hamparan ringkasan perkhidmatan & ciri yang akan kami laksanakan bersama dengan UUID mereka
Langkah 2: Kod Arduino
KEMASKINI RAKAN BLUEFRUIT LE SPI
Pertama, sambungkan Adafruit Bluefruit LE SPI Friend seperti yang mereka nyatakan dalam panduan penyambungan mereka dan aktifkan peranti Arduino. Pastikan anda dapat menemui Adafruit Bluefruit LE SPI Friend pada peranti android anda semasa mengimbas peranti Bluetooth. Muat turun aplikasi Bluefruit Connect, sambungkan ke Adafruit Bluefruit LE SPI Friend dan biarkan ia mengemas kini firmware pada peranti. Langkah ini penting. Sekiranya anda tidak mengemas kini firmware, perintah yang anda keluarkan melalui Arduino kemungkinan akan gagal dan tidak akan ada kesalahan yang jelas bagi anda untuk mengetahui apa masalahnya.
Inilah repo saya untuk projek ini. Anda boleh melihat kod Arduino penuh di sini.
TINJAUAN KESELURUHAN
Beberapa perkara penting yang perlu diperhatikan:
- Dalam kaedah setup (), semua UUID khusus mesti mengandungi "-" antara setiap dua watak. Contohnya, "AT + GATTADDCHAR = UUID128 = 00-00-00-05-62-7E-47-E5-A3-FC-DD-AB-D9-7A-A9-66" akan berfungsi. "AT + GATTADDCHAR = UUID128 = 00000005-627E-47E5-A3fCDDABD97AA966" tidak akan berfungsi.
- Perhatikan bahawa dalam kaedah setup (), "battery.begin (true);" memanggil "ble.reset ();" secara automatik. Sekiranya anda tidak menggunakan perkhidmatan bateri seperti yang saya ada, anda perlu menetapkan semula modul ble (gunakan "ble.reset ();") di mana saya mempunyai perintah "battery.begin (true);".
- Dalam kaedah setup (), ubah "if (! Ble.begin (false))" menjadi "if (! Ble.begin (true))" jika anda mahu melakukan debug.
Kod ini cukup jelas. Saya memasukkan penerangan setiap kaedah khusus. Kaedah penyediaan menjadikan modul BLE siap bertindak sebagai pelayan GATT. Kaedah gelung menggunakan sapu palsu modul giroskop accelerometer (AGM) dan menghasilkan nombor rawak dari 1 hingga 100 untuk nilai-nilai ini. Bateri dikeringkan sebanyak 1% untuk mensimulasikan penggunaan bateri. Anda boleh mengganti kod ini dengan nilai sensor sebenar dengan mudah. Kod ini menganggap anda akan mengirimkan pelbagai data AGM, panjang 6 pengukuran, dan bukan satu pengukuran kerana menganalisis tetingkap data AGM kemungkinan lebih berguna daripada satu titik data. Sekiranya anda mengubah ukuran array, perhatikan bahawa akan ada perubahan yang diperlukan dalam kod studio android. Untuk menangkap pelbagai data, anda mesti melewati kaunter beserta data yang ingin anda hantar. Kaunter ini membolehkan anda mencari di mana anda berada di tetingkap dari aplikasi studio android sehingga anda boleh menunggu untuk mendengar titik data yang hilang di tetingkap. Tanpa kaunter atau dengan susunan bersaiz yang berbeza, projek studio android akan kehilangan titik data atau akan terjebak dalam lingkaran menunggu baki titik data yang diharapkannya.
Langkah 3: Kod Android Studio
Inilah repo saya untuk projek ini. Anda dapat melihat kod Android Studio penuh di sini.
TINJAUAN KESELURUHAN
Saya akan terus mengemas kini ini dengan gambaran keseluruhan yang lebih terperinci mengenai bagaimana kod arduino dan android berfungsi secara terperinci… Aplikasi ini berfungsi sepenuhnya jadi jangan ragu untuk melihat kod itu sendiri untuk sementara waktu.
Langkah 4: Permohonan Akhir
Tahniah! Aplikasi anda dimuat turun ke telefon anda dan peranti anda yang dikenakan boleh dicas dan menghantar data.
Lancarkan APLIKASI
Untuk memulakan, klik pada ikon pelancar untuk aplikasi tersebut.
KEBENARAN HADIAH
Anda perlu menyetujui penggunaan beberapa kebenaran agar aplikasi berfungsi dengan baik.
Imbasan untuk alat
Seterusnya, klik pada butang "Imbas" di sudut kiri atas aplikasi.
PILIH PERANGKAT WEARABLE ANDA
Seterusnya, pilih peranti boleh pakai anda dari senarai peranti BLE yang tersedia. Namanya "BLE Arduino Hardware". DAPATKAN DATAW Tunggu sementara aplikasi mendapat data AGM dan menentukan di mana pengguna masih atau bergerak. LIHAT HASIL ANDA Lihat hasilnya di skrin! Klik butang penyegerakan untuk mendapatkan bacaan data yang lain.
Disyorkan:
Jam Tangan Pengaturcaraan ATtiny85 Aktiviti Bergetar yang Boleh Dipakai & Pengaturcaraan ATtiny85 Dengan Arduino Uno: 4 Langkah (dengan Gambar)
Jam Tangan Pengaturcaraan & Pengaturcaraan Aktiviti Getaran ATtiny85 ATtiny85 Dengan Arduino Uno: Bagaimana membuat jam tangan aktiviti yang boleh dipakai? Ini adalah alat yang boleh dipakai yang direka untuk bergetar ketika mengesan genangan. Adakah anda menghabiskan sebahagian besar masa anda di komputer seperti saya? Adakah anda duduk berjam-jam tanpa menyedarinya? Maka peranti ini adalah
Cara Membuat Aplikasi Android Dengan Android Studio: 8 Langkah (dengan Gambar)
Cara Membuat Aplikasi Android Dengan Android Studio: Tutorial ini akan mengajar Anda dasar-dasar bagaimana membuat aplikasi Android menggunakan lingkungan pengembangan Android Studio. Oleh kerana peranti Android menjadi semakin umum, permintaan untuk aplikasi baru hanya akan meningkat. Android Studio adalah mudah digunakan (sebuah
Panel Lampu Custom Boleh Dipakai (Kursus Penerokaan Teknologi - TfCD - Tu Delft): 12 Langkah (dengan Gambar)
Panel Lampu Custom Boleh Dipakai (Kursus Eksplorasi Teknologi - TfCD - Tu Delft): Dalam Instruksional ini anda akan belajar bagaimana membuat gambar anda sendiri yang boleh anda pakai! Ini dilakukan dengan menggunakan teknologi EL yang ditutup dengan pelekat vinil dan melekatkan jalur ke dalamnya sehingga anda dapat memakainya di lengan anda. Anda juga boleh menukar bahagian p
Cara Mendapatkan Muzik Dari Laman Web HANYA (Haha) (Selagi Anda Boleh Mendengarnya, Anda Boleh Mendapatkannya Ok Baiklah Jika Ia Dimasukkan dalam Kilat Anda Mungkin Tidak Mampu) DIEDIT !!!!! Maklumat Tambahan: 4 Langkah
Cara Mendapatkan Muzik Dari Laman Web HANYA (Haha) (Selagi Anda Boleh Mendengarnya, Anda Boleh Mendapatkannya … Ok Baiklah Jika Ia Dimasukkan dalam Kilat Anda Mungkin Tidak Mampu) DIEDIT !!!!! Maklumat Tambahan: jika anda pernah pergi ke laman web dan memainkan lagu yang anda suka dan mahukannya, inilah petunjuk untuk tidak salah saya sekiranya anda mengacaukan sesuatu (satu-satunya cara ia akan berlaku adalah jika anda mula menghapus barang tanpa sebab ) Saya dapat mendapatkan muzik untuk
Outlet Dikawal Gerak - Dari Lampu Sensor Gerak: 6 Langkah
Outlet Dikawal Gerakan - Dari Lampu Sensor Gerak: Bayangkan anda adalah tipu muslihat atau pergi ke rumah paling menakutkan di blok itu. Setelah melewati semua hantu, hantu dan kubur anda akhirnya sampai ke jalan terakhir. Anda dapat melihat gula-gula dalam mangkuk di hadapan anda! Tetapi tiba-tiba gho