Mundarija:
- Ta'minotlar
- 1 -qadam: Maxsus xizmatlar va xususiyatlarni loyihalash
- 2 -qadam: Arduino kodi
- 3 -qadam: Android Studio kodi
- 4 -qadam: Yakuniy ariza
Video: Kiyinadigan harakatni kuzatuvchini yarating (Arduino -dan Android Studio -ning maxsus ilovasiga BLE): 4 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
Bluetooth past energiyasi (BLE) - bu past quvvatli Bluetooth aloqasi. Kiyinadigan qurilmalar, xuddi aqlli kiyimlar kabi, men Predictive Wear dizaynida, batareyaning ishlash muddatini uzaytirish uchun iloji boricha quvvat sarfini cheklashi va BLEdan tez -tez foydalanishi kerak. Bluetooth maxsus qiziqish guruhi (SIG) "profil" deb ataydigan Bluetooth qurilmasi bilan ishlash uchun qurilma bajarishi kerak bo'lgan bir nechta texnik xususiyatlarni belgilaydi. Ko'pgina dastur profillari BLE havolasi orqali ma'lumotlarni yuborish uchun umumiy atribut profilidan (GATT) foydalanadi. BLEda uchta asosiy tushuncha mavjud: profillar, xizmatlar va atributlar.
Bluetooth SIG ko'plab umumiy profillarni, xizmatlarni va atributlarni standartlashtirdi. Biroq, maxsus uskunalar yaratishda ko'pincha maxsus xizmatlar va atributlar yaratishga ehtiyoj seziladi va ko'p qo'llanmalar mavjud emas. Vaziyatni murakkablashtirish uchun, Adafruit BLE modullari bilan bog'lanish uchun mobil ilovalarni loyihalash bo'yicha hech qanday ko'rsatma bermaydi va ularning ilovalari uchun manba kodini o'zgartirish qiyin.
Bu darslik quyidagilarni tushuntirishga qaratilgan
- Maxsus GATT xizmatlari va xususiyatlarini qanday loyihalash mumkin
- Adafruit Bluefruit LE SPI Friend -ni ushbu maxsus xizmatlar va xususiyatlar uchun GATT -server sifatida qanday dasturlash mumkin.
- GATT serveridan ma'lumotlarni o'qish uchun Android qurilmasini GATT mijozi sifatida qanday dasturlash mumkin
Bu qo'llanma ishlab chiqarishga tayyor bo'lgan ilovaga tarjima qilinmaydi - bu shunchaki BLE -ga kirish.
Fonni o'qish:
- Adafruit Bluefruit LE SPI Friend hujjatlari
- Agar siz GATT yoki BLE bilan tanish bo'lmasangiz
Ta'minotlar
- 1x - Arduino qurilmasi (men bu qo'llanmada UNOdan foydalanaman)
- 1x - Adafruit Bluefruit LE SPI do'sti
- 8x - erkakdan erkakgacha o'tish simlari
- Lehimlashning asosiy uskunalari (SPI Friend -dagi sarlavhali pimlarga)
- Kompyuter (Arduino va android qurilmalarini dasturlash uchun)
1 -qadam: Maxsus xizmatlar va xususiyatlarni loyihalash
KIRISH
Ushbu maqola maxsus xizmatlar va xususiyatlarni qanday ishlab chiqishni tushuntirib beradigan ajoyib ish. Men ushbu maqolani o'qishni juda tavsiya qilaman. Men quyida juda oddiy sharh beraman, u oddiylik foydasiga nozikliklarni e'tiborsiz qoldiradi.
GATT xizmatlari - bu xususiyatlar to'plami.
GATT xarakteristikasida xususiyat, qiymat va nol yoki undan ortiq tavsiflovchi mavjud.
- Mulk: ma'lumotlar mijoz bilan qanday ishlashi kerakligi (Android ilovasi), masalan. o'qish, yozish, javobsiz yozish, xabar berish va ko'rsatish.
- Qiymat: xarakteristikaning haqiqiy qiymati, masalan. 1089
- Deskriptorlar: bu qiymat haqidagi ma'lumotlar, masalan. birlik, millisekund
DIZAYN
Xo'sh, endi siz qanday xizmatlar va xususiyatlar borligini bilasiz, biz o'z ma'lumotlarimizni olish va GATT serverimizdan (Arduino) mijozga (Android App) yuborish uchun qanday xizmatlar va xususiyatlarni qanday ishlab chiqish kerakligini aniqlashimiz kerak. Keling, akselerometr-giroskop modulidan (AGM) ma'lumotlarni yig'adigan Arduino qurilmasini ko'rib chiqaylik. Biz uchta fazoviy o'qdan giroskop va tezlanish o'lchovlarini yig'ishni va bu o'lchovlar olingan vaqtni yig'ishni va ushbu ma'lumotlarni mobil ilovamizga uzatishni xohlaymiz. Shuningdek, biz qurilmani qachon zaryad qilish kerakligini bilmoqchimiz, shuning uchun biz batareya quvvatini o'qib, uni mobil ilovamizga uzatmoqchimiz.
1. Biz standart xizmatlar va xususiyatlardan birini ishlata olamizmi?
Bluetooth SIG ko'plab umumiy xizmatlar va xususiyatlarni standartlashtirdi. Birinchidan, standartlashtirilgan xizmatlar va xususiyatlardan birini tanlashingiz mumkinligini bilish uchun ularni tekshiring. Standart xizmatlar va xarakteristikalar ancha kichik ma'lumotlar paketlarini ishlatishi mumkin, chunki Umumjahon yagona identifikatori (UUID) 16 bitni tashkil etadi, maxsus xizmatlar va xususiyatlar esa UUID uchun 128 bitdan foydalanishi kerak. UUIDlar haqida keyinroq. Qidiruvimiz natijasida biz standart "batareya xizmati" ni topdik, unda bitta "batareya darajasi" mavjud.
2. BLE orqali yubormoqchi bo'lgan barcha ma'lumotlar qiymatlarini xususiyatlar va xizmatlarga ajrating
Biz bitta maxsus xizmatda o'z shaxsiy ma'lumotlar nuqtalarini ettita maxsus xususiyatlarga bo'lishimiz mumkin. Biz bu xizmatni "AGM xizmati" deb ataymiz. U 7 ta xususiyatni o'z ichiga oladi: x-tezlanish, y-tezlanish, z-tezlanish, x-giroskop, y-giroskop, z-giroskop va vaqtga mos yozuvlar.
3. Har bir xarakteristikaga kerakli xususiyatlarni aniqlang
Xususiyat bo'lishi mumkin bo'lgan bir nechta xususiyatlar mavjud.
- O'qing: mijoz (Android ilovasi) GATT serveridan (Arduino) qiymat o'qishi mumkin.
- Yozish: mijoz GATT serveridan qiymatni o'zgartirishi mumkin
- Belgilang: agar GATT serveridan qiymat o'zgarsa va mijoz GATT serveriga tasdiq yuborishi kutilsa, mijozga xabar beriladi.
- Xabar bering: agar GATT serveridan qiymat o'zgarsa va mijoz GATT serveriga tasdiqnoma yuborishi kutilmasa, mijozga xabar beriladi.
Ushbu qo'llanma uchun biz barcha xususiyatlarimizni o'qish uchun o'rnatamiz, bundan tashqari, xabarnoma va o'qish xususiyatlariga ega bo'lgan batareya quvvati darajasi bundan mustasno.
4. Maxsus xizmatlar va xususiyatlar uchun UUID -larni yarating va standart UUID -larni toping
Yuqorida aytib o'tganimdek, Bluetooth SIG standartlashtirilgan xizmatlari va xususiyatlari 16 bitli UUIDdan, maxsus xizmatlar va xususiyatlar esa 128 bitli UUIDdan foydalanadi. Masalan, Bluetooth SIG -da batareya xizmatining tayinlangan raqamini ko'ring. Belgilangan 0x180F raqami "0000180F-0000-1000-8000-00805F9B34FB" 128 bitli UUIDni ko'rsatadi. Qalin harflar bilan yozilgan to'rtta raqam (16 bit) ma'lum standartlashtirilgan xizmat yoki xarakteristikaga xosdir, qolgan belgilar esa barcha standart xizmatlar va xususiyatlar o'rtasida saqlanadi. Mijoz ham, GATT serveri ham standart xizmatlar va xarakteristikalar faqat qalin harflar bilan farqlanishini bilgani uchun, ma'lumotlar paketlarining o'lchamlarini sezilarli darajada kamaytirish mumkin. Biroq, odatiy xizmatlar va xususiyatlar xuddi shu taxmin asosida ishlay olmaydi.
Buning o'rniga, maxsus xizmatlar va xususiyatlar qisqartirilmagan 128 bitli UUIDdan foydalanishi kerak. Bu erda onlayn UUID generatori. Foydalanuvchi UUID uchun standart UUIDdan boshqa har qanday UUID qabul qilinadi. Biroq, odatiy nomlash konventsiyasi-bu 00000001-… maxsus xizmatini va 00000002-… maxsus xizmatining xususiyatlarini ko'rsatish.
Bu erda biz UUID -lari bilan birga amalga oshiriladigan xizmatlar va xususiyatlarning qisqacha jadvalini keltiramiz
2 -qadam: Arduino kodi
BLUEFRUIT LE SPI FRIEND -ni yangilang
Birinchidan, Adafruit Bluefruit LE SPI Friend -ni ulang, ular o'z yo'riqnomasida ko'rsatilgandek va Arduino qurilmasini yoqadi. Adafruit Bluefruit LE SPI Friend ni Bluetooth qurilmalarini skanerlashda android qurilmangizda topishingizga ishonch hosil qiling. Bluefruit Connect ilovasini yuklab oling, Adafruit Bluefruit LE SPI Friend -ga ulaning va unga qurilmadagi dasturiy ta'minotni yangilashga ruxsat bering. Bu qadam muhim ahamiyatga ega. Agar siz dasturiy ta'minotni yangilamasangiz, Arduino orqali qurilmani chiqaradigan buyruqlar bajarilmasligi mumkin va muammo nima ekanligini aniqlashda aniq xato bo'lmaydi.
Mana bu loyiha uchun repo. Arduino kodini to'liq ko'rishingiz mumkin.
UMUMIY
E'tibor qilish kerak bo'lgan bir nechta muhim narsalar:
- Setup () usulida barcha maxsus UUID-lar har ikki belgi orasida "-" belgisini o'z ichiga olishi kerak. Masalan, "AT+GATTADDCHAR = UUID128 = 00-00-00-05-62-7E-47-E5-A3-FC-DD-AB-D9-7A-A9-66" ishlaydi. "AT+GATTADDCHAR = UUID128 = 00000005-627E-47E5-A3fCDDABD97AA966" ishlamaydi.
- E'tibor bering, setup () usulida "battery.begin (true);" qo'ng'iroqlar "ble.reset ();" avtomatik ravishda. Agar siz batareya xizmatidan men kabi foydalanmasangiz, ble modulini tiklashingiz kerak ("ble.reset ();" dan foydalaning), menda "battery.begin (rost);").
- O'rnatish () usulida, agar disk raskadrovka qilmoqchi bo'lsangiz, "if (! Ble.begin (false))" "if (! Ble.begin (true))" ga o'zgartiring.
Bu kod o'z-o'zidan tushunarli. Men har bir maxsus usulning tavsiflarini qo'shdim. O'rnatish usuli BLE modulini GATT serveri sifatida ishlashga tayyor qiladi. Loop usuli akselerometr gyroskop modulini (AGM) soxta tozalashdan o'tadi va bu qiymatlar uchun 1 dan 100 gacha tasodifiy sonni hosil qiladi. Batareyadan foydalanishni taqlid qilish uchun batareyaning quvvati 1% ga kamayadi. Siz ushbu kodni haqiqiy sensor qiymatlari bilan osongina almashtirishingiz mumkin. Bu kod sizga bitta o'lchov o'rniga 6 o'lchovli AGM ma'lumotlarini uzatishni nazarda tutadi, chunki AGM ma'lumotlari oynasini tahlil qilish bitta ma'lumotdan ko'ra foydali bo'lishi mumkin. Agar siz massiv hajmini o'zgartirsangiz, Android studiya kodiga o'zgartirishlar kiritilishini unutmang. Ma'lumotlar to'plamini olish uchun siz hisoblagichni yubormoqchi bo'lgan ma'lumotlar bilan birga topshirishingiz kerak. Bu hisoblagich sizga android studio dasturidan oynada qaerda ekanligingizni topishga imkon beradi, shuning uchun siz oynada yo'qolgan ma'lumotlar nuqtalarini tinglashni kutishingiz mumkin. Hisoblagichsiz yoki boshqa o'lchamdagi massivsiz, android studiyasi loyihasi ma'lumot punktlarini o'tkazib yuboradi yoki kutilgan qolgan ma'lumot punktlarini kutib qoladi.
3 -qadam: Android Studio kodi
Mana bu loyiha uchun repo. Bu erda to'liq Android Studio kodini ko'rishingiz mumkin.
UMUMIY
Men buni arduino va android kodlari qanday ishlashini batafsil ko'rib chiqish bilan yangilab turaman … Ilova to'liq ishlaydi, shu vaqt ichida kodni o'zingiz ko'rishingiz mumkin.
4 -qadam: Yakuniy ariza
Tabriklaymiz! Sizning ilovangiz telefoningizga yuklanadi va taqiladigan qurilmangiz zaryadlanadi va ma'lumotlarni uzatadi.
Ilovani ishga tushiring
Ishni boshlash uchun dasturni ishga tushirish belgisini bosing.
GRANT RUXSATLARI
Ilovaning to'g'ri ishlashi uchun siz ba'zi ruxsatlardan foydalanishni tasdiqlashingiz kerak bo'ladi.
QURILMALARNI SKANLASH
Keyin, dasturning chap yuqori burchagidagi "Skanerlash" tugmasini bosing.
QO'YILGAN QURILMASINI TANLASH
Keyin, mavjud BLE qurilmalari ro'yxatidan kiyiladigan qurilmangizni tanlang. Uning nomi "BLE Arduino Hardware" dir. Ma'lumotni kuting. Ilova AGM ma'lumotlarini oladi va foydalanuvchi qaerda yoki harakatda ekanligini aniqlaydi. Natijalarni ekranda ko'ring! Ma'lumotni boshqa o'qish uchun sinxronizatsiya tugmasini bosing.
Tavsiya:
Garmin GPS uchun maxsus xaritalar yarating: 8 qadam (rasmlar bilan)
Garmin GPS uchun maxsus xaritalar yarating: Agar sizda sayohatlar va boshqa ochiq havoda sayohat qilish uchun mo'ljallangan Garmin GPS bo'lsa (shu jumladan GPSMAP, eTrex, Kolorado, Dakota, Oregon va Montana qatorlari), bunga hojat yo'q. unga oldindan yuklangan yalang'och xaritalarni hal qiling. E
O'tirish vaqtini kuzatuvchini qanday qurish kerak: 7 qadam
O'tirgan vaqtni kuzatuvchini qanday qurish kerak: Ushbu loyiha odamni aniqlash va kuzatish uchun Zio Qwiic ultratovushli masofa sensori yordamida amalga oshiriladi. Qurilma strategik ravishda o'tirgan odamga qaragan ekran/monitorning yuqori qismiga, uning kompyuteriga joylashtiriladi
Harorat va namlikni Blynk ilovasiga yuboring (Wemos D1 Mini Pro): 15 qadam (rasmlar bilan)
Blynk ilovasiga harorat va namlikni yuborish (Wemos D1 Mini Pro): Ushbu ko'rsatma Blynk APP -ga ma'lumotlarni (harorat va namlik) yuborish uchun Wemos D1 Mini Pro -dan foydalanishga qaraydi
Wemos D1 Mini Pro yordamida Blynk ilovasiga sana va vaqtni kiritish: 10 qadam
Wemos D1 Mini Pro yordamida Blynk ilovasiga sana va vaqt surish: Biz Wemos D1 Mini Pro -dan vaqtni surish uchun foydalanamiz & Blynk ilovasining sanasi, bu faoliyat uchun hech qanday komponentni Wemos D1 Mini Pro -ga ulash shart emas
Kiyinadigan maxsus yorug'lik paneli (Texnologiyalarni o'rganish kursi - TfCD - Tu Delft): 12 qadam (rasmlar bilan)
Kiyinadigan maxsus yorug'lik paneli (Texnologiyalarni o'rganish kursi - TfCD - Tu Delft): Ushbu yo'riqnomada siz o'zingiz kiyishingiz mumkin bo'lgan yorqin tasvirni qanday yasashni o'rganasiz! Bu EL texnologiyasidan foydalangan holda amalga oshiriladi, uni vinil stiker bilan yopiladi va uni tasmalar bilan bog'lab qo'yishingiz mumkin, shunda siz uni qo'ltig'iga taqishingiz mumkin. Bundan tashqari, siz ushbu qismni o'zgartirishingiz mumkin