
Агуулгын хүснэгт:
2025 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2025-01-23 15:00

Bluetooth Low Energy (BLE) нь бага чадлын Bluetooth холбооны нэг хэлбэр юм. Ухаалаг хувцас гэх мэт зүүх боломжтой төхөөрөмжүүд нь батерейны ашиглалтын хугацааг уртасгахын тулд эрчим хүчний хэрэглээг хязгаарлаж, BLE -ийг байнга ашиглах ёстой. Bluetooth Тусгай Сонирхлын Бүлэг (SIG) нь "профайл" гэж нэрлэдэг Bluetooth төхөөрөмжтэй ажиллахын тулд төхөөрөмжийн хэрэгжүүлэх ёстой хэд хэдэн тодорхойлолтыг тодорхойлдог. Ихэнх програмын профайлууд BLE холбоосоор өгөгдөл илгээхдээ Атрибутын ерөнхий профайлыг (GATT) ашигладаг. BLE -д профайл, үйлчилгээ, шинж чанар гэсэн гурван үндсэн ойлголт байдаг.
Bluetooth SIG нь олон нийтлэг профайл, үйлчилгээ, шинж чанарыг стандартчилдаг. Гэсэн хэдий ч захиалгат техник хангамжийг бий болгоход ихэвчлэн өөрчлөн тохируулсан үйлчилгээ, шинж чанаруудыг бий болгох шаардлагатай байдаг бөгөөд тийм ч олон заавар байдаггүй. Асуудлыг улам хүндрүүлэхийн тулд Adafruit нь BLE модулиудтайгаа хослуулах гар утасны програм зохион бүтээх талаар ямар ч зааварчилгаа өгөөгүй бөгөөд програмынхаа эх кодыг инженерээс нь буцаахад хэцүү байдаг.
Энэхүү заавар нь дараахь зүйлийг тайлбарлах зорилготой юм
- GATT -ийн захиалгат үйлчилгээ, шинж чанарыг хэрхэн яаж хийх вэ
- Adafruit Bluefruit LE SPI Friend -ийг эдгээр захиалгат үйлчилгээ, шинж чанаруудад GATT сервер болгон хэрхэн програмчлах вэ.
- GATT серверээс өгөгдлийг уншихын тулд GATT үйлчлүүлэгчийн үүргийг гүйцэтгэх Андройд төхөөрөмжийг хэрхэн яаж програмчлах вэ
Энэхүү гарын авлага нь үйлдвэрлэлд ашиглахад бэлэн програм болгон орчуулах зориулалттай биш бөгөөд энэ нь зүгээр л BLE -ийн танилцуулга юм.
Арын дэвсгэр уншлага:
- Adafruit Bluefruit LE SPI Friend -ийн баримт бичиг
- Хэрэв та GATT эсвэл BLE -ийг сайн мэдэхгүй бол
Хангамж
- 1x - Arduino төхөөрөмж (би энэ хичээлд НҮБ -ыг ашиглаж байна)
- 1x - Adafruit Bluefruit LE SPI найз
- 8х - эрэгтэй, эрэгтэй холбогч утас
- Гагнуурын үндсэн төхөөрөмж (SPI найз дээрх толгойн голыг гагнах)
- Компьютер (Arduino төхөөрөмж болон андройд төхөөрөмжийг програмчлах)
Алхам 1: Захиалгат үйлчилгээ ба онцлог шинж чанарыг боловсруулах
ТАНИЛЦУУЛГА
Энэхүү нийтлэл нь захиалгат үйлчилгээ, шинж чанарыг хэрхэн яаж зохиох талаар тайлбарласан маш сайн ажил юм. Би энэ нийтлэлийг уншихыг зөвлөж байна. Би энгийн байдлыг хангахын тулд нарийн ширийн зүйлийг үл тоомсорлож буй маш энгийн тоймыг доор өгөв.
GATT үйлчилгээ нь шинж чанаруудын цуглуулга юм.
GATT -ийн шинж чанарууд нь өмч, утга, тэг ба түүнээс дээш тодорхойлогчийг агуулдаг.
- Үл хөдлөх хөрөнгө: өгөгдлийг үйлчлүүлэгч хэрхэн зохицуулах ёстой (Андройд апп), жишээ нь. унших, бичих, хариулахгүйгээр бичих, мэдэгдэх, зааж өгөх.
- Утга: шинж чанарын бодит утга. 1089
- Тодорхойлогчид: энэ бол үнэ цэнийн талаархи мэдээлэл юм. нэгж, миллисекунд
ДИЗАЙН
За, одоо та үйлчилгээ, шинж чанар гэж юу болохыг мэддэг болсон тул бид өөрсдийн хүссэн өгөгдлийг олж авахын тулд зарим үйлчилгээ, шинж чанарыг хэрхэн яаж боловсруулж, GATT серверээс (Arduino) үйлчлүүлэгч рүү (Android App) илгээхийг олж мэдэх хэрэгтэй. Акселерометр-гироскоп модуль (AGM) -аас мэдээлэл цуглуулдаг Arduino төхөөрөмжийг авч үзье. Бид гурван орон зайн тэнхлэгээс гироскоп ба хурдатгалын хэмжилтийг цуглуулж, эдгээр хэмжилтийг хийх цагийг цуглуулж, энэхүү өгөгдлийг гар утасны аппликейшндээ дамжуулахыг хүсч байна. Төхөөрөмжийг хэзээ цэнэглэх шаардлагатайг бид мэдэхийг хүсч байгаа тул батерейны түвшинг уншиж, гар утасныхаа програм руу дамжуулахыг хүсч байна.
1. Бид стандарт үйлчилгээ, шинж чанаруудын аль нэгийг ашиглаж болох уу?
Bluetooth SIG нь олон нийтлэг үйлчилгээ, шинж чанарыг стандартчилдаг. Нэгдүгээрт, та стандарт үйлчилгээ, шинж чанаруудын аль нэгийг хамтран ашиглах боломжтой эсэхийг шалгах хэрэгтэй. Стандарт үйлчилгээ, шинж чанарууд нь хамаагүй бага өгөгдлийн пакетуудыг ашиглах боломжтой байдаг, учир нь Түгээмэл өвөрмөц танигч (UUID) нь 16 бит бөгөөд захиалгат үйлчилгээ, шинж чанарууд нь UUID -д 128 бит ашиглах ёстой. UUID -ийн талаар дараа нь дэлгэрэнгүй үзэх болно. Бидний хайлтаас бид "батерейны түвшин" гэсэн нэг онцлог шинж чанарыг агуулсан стандартчилагдсан "батерейны үйлчилгээ" олсон.
2. BLE дээр илгээхийг хүсч буй бүх өгөгдлийн утгыг шинж чанар, үйлчилгээ болгон тусгаарла
Бид захиалгат өгөгдлийн цэгүүдээ нэг өөрчлөн үйлчилгээний хүрээнд долоон өөрчлөн шинж чанар болгон хувааж болно. Бид энэ үйлчилгээг "AGM үйлчилгээ" гэж нэрлэх болно. Энэ нь x-хурдатгал, y-хурдатгал, z-хурдатгал, x-гироскоп, y-гироскоп, z-гироскоп, цагийн лавлагаа гэсэн 7 шинж чанарыг агуулсан болно.
3. Онцлог тус бүрт шаардлагатай шинж чанарыг тодорхойл
Онцлог шинж чанартай байж болох хэд хэдэн шинж чанарууд байдаг.
- Унших: Үйлчлүүлэгч (Android App) нь GATT серверээс (Arduino) утгыг унших боломжтой.
- Бичих: Үйлчлүүлэгч нь GATT серверээс утгыг өөрчлөх боломжтой
- Заана уу: GATT серверээс утга өөрчлөгдөж, үйлчлүүлэгч баталгаажуулалтыг GATT сервер рүү илгээнэ гэж үзвэл үйлчлүүлэгчид мэдэгдэх болно.
- Мэдэгдэх: GATT серверээс утга өөрчлөгдөх бөгөөд үйлчлүүлэгч GATT сервер рүү баталгаажуулалт явуулахгүй бол үйлчлүүлэгчид мэдэгдэх болно.
Энэхүү гарын авлагын хувьд бид мэдэгдэх, унших шинж чанартай байх батерейны түвшинг эс тооцвол бүх шинж чанаруудаа уншихаар тохируулах болно.
4. Захиалгат үйлчилгээ, шинж чанаруудын хувьд UUID үүсгэж, стандарт UUID -ийг хайж олох
Өмнө нь би товч дурдсанчлан, Bluetooth SIG стандартчилагдсан үйлчилгээ, шинж чанарууд нь 16 битийн UUID ашигладаг бол захиалгат үйлчилгээ, шинж чанарууд нь 128 битийн UUID -ийг ашигладаг. Жишээлбэл, Bluetooth SIG дээрх батерейны үйлчилгээний дугаарыг үзнэ үү. Оноосон 0x180F дугаар нь 128 битийн UUID "0000180F-0000-1000-8000-00805F9B34FB" -ийг илэрхийлнэ. Тод үсгээр бичсэн дөрвөн орон (16 бит) нь тухайн стандартчилагдсан үйлчилгээ эсвэл онцлог шинж чанартай байдаг бөгөөд бусад тэмдэгтүүд нь бүх стандартчилагдсан үйлчилгээ, шинж чанаруудын хооронд хадгалагддаг. Үйлчлүүлэгч болон GATT сервер хоёулаа стандартчилагдсан үйлчилгээ, шинж чанар нь зөвхөн тод цифрээс хамаарч өөр өөр байдгийг мэддэг тул өгөгдлийн пакетийн хэмжээг мэдэгдэхүйц бууруулах боломжтой. Гэсэн хэдий ч захиалгат үйлчилгээ, шинж чанар нь ижил таамаглалын дагуу ажиллах боломжгүй юм.
Үүний оронд захиалгат үйлчилгээ, шинж чанар нь товчлолгүй 128 битийн UUID -ийг ашиглах ёстой. Энд онлайн UUID генератор байна. Стандартчилагдсан UUID -аас өөр UUID -ийг өөрчилсөн UUID -д хүлээн зөвшөөрдөг. Гэсэн хэдий ч нэршлийн ердийн дүрэм бол 00000001-… гаалийн үйлчилгээ ба тухайн өөрчлөн үйлчилгээний 00000002-…
Энд бид UUID -ийн хамт хэрэгжүүлэх үйлчилгээ, шинж чанаруудын хураангуй хүснэгтийг энд оруулав
Алхам 2: Arduino код
BLUEFRUIT LE SPI FRIEND -ийг шинэчилнэ үү
Нэгдүгээрт, Adafruit Bluefruit LE SPI Friend холболтын гарын авлагад заасны дагуу холбож, Arduino төхөөрөмжийг асаагаарай. Bluetooth төхөөрөмж хайхдаа Adafruit Bluefruit LE SPI Андройд төхөөрөмжөө андройд төхөөрөмж дээрээс олох боломжтой эсэхийг шалгаарай. Bluefruit Connect програмыг татаж аваад Adafruit Bluefruit LE SPI Friend -тэй холбогдож төхөөрөмжийнхөө програм хангамжийг шинэчлэхийг зөвшөөрнө үү. Энэ алхам нь чухал юм. Хэрэв та firmware -ийг шинэчлэхгүй бол Arduino -ээр дамжуулан төхөөрөмжид өгсөн тушаалууд амжилтгүй болох бөгөөд асуудал юу болохыг олж мэдэхэд танд ямар ч алдаа гарахгүй.
Энэ төслийн талаархи миний репо энд байна. Та Arduino кодыг бүрэн эхээр нь эндээс харах боломжтой.
ТОЙМ
Анхаарах хэд хэдэн чухал зүйл:
- Setup () аргын хувьд бүх өөрчлөн тохируулсан UUID нь хоёр тэмдэгт бүрийн хооронд "-" тэмдэг агуулсан байх ёстой. Жишээлбэл, "AT+GATTADDCHAR = UUID128 = 00-00-00-05-62-7E-47-E5-A3-FC-DD-AB-D9-7A-A9-66" ажиллах болно. "AT+GATTADDCHAR = UUID128 = 00000005-627E-47E5-A3fCDDABD97AA966" ажиллахгүй болно.
- Тохиргоо () аргад "battery.begin (үнэн);" дуудлага "ble.reset ();" автоматаар. Хэрэв та батерейны үйлчилгээг над шиг ашигладаггүй бол би "battery.begin (үнэн);" гэсэн тушаалтай ble модулийг дахин тохируулах хэрэгтэй ("ble.reset ();") ашиглаарай.
- Тохиргоо () аргад дибаг хийхийг хүсвэл "if (! Ble.begin (false))" "" if (! Ble.begin (true)) "болгож өөрчилнө үү.
Энэ код нь өөрийгөө маш сайн тайлбарладаг. Би захиалгат арга бүрийн тайлбарыг оруулсан болно. Тохируулах арга нь BLE модулийг GATT серверийн үүрэг гүйцэтгэхэд бэлэн болгодог. Давталтын арга нь акселерометрийн гироскопын модулийг (AGM) хуурамч аргаар цэвэрлэж, эдгээр утгуудын хувьд 1 -ээс 100 хүртэлх санамсаргүй тоог гаргадаг. Зайны хэрэглээг дуурайхын тулд батерейг 1% -иар цэнэглэдэг. Та энэ кодыг мэдрэгчийн бодит утгуудаар амархан сольж болно. Энэхүү код нь та нэг удаагийн хэмжилтийг бус 6 хэмжилтийг багтаасан AGM өгөгдлийн массивыг дамжуулах болно гэж үзэж байна, учир нь AGM өгөгдлийн цонхыг шинжлэх нь нэг цэгээс илүү ашигтай байх болно. Хэрэв та массивын хэмжээг өөрчилвөл андройд студийн кодод өөрчлөлт оруулах шаардлагатай болохыг анхаарна уу. Өгөгдлийн массивыг авахын тулд та илгээх гэж буй өгөгдөлтэйгээ хамт тоолуур дамжуулах ёстой. Энэхүү тоолуур нь андроид студийн програмаас цонхонд хаана байгаагаа олох боломжийг олгодог бөгөөд ингэснээр та алга болсон өгөгдлийн цэгүүдийг цонхонд сонсохыг хүлээж болно. Тоологчгүй эсвэл өөр хэмжээтэй массивтай бол андроид студийн төсөл нь өгөгдлийн цэгүүдийг алдах эсвэл хүлээгдэж буй өгөгдлийн цэгүүдийг хүлээх хүрдэнд гацах болно.
Алхам 3: Android Studio код
Энэ төслийн талаархи миний репо энд байна. Энд та Android Studio кодыг бүрэн эхээр нь үзэх боломжтой.
ТОЙМ
Би үүнийг ардуино болон андройд код хэрхэн яаж ажилладаг талаар нарийвчилсан тоймоор үргэлжлүүлэн шинэчлэх болно. Апп нь бүрэн ажиллагаатай тул энэ хооронд кодыг өөрөө чөлөөтэй хараарай.
Алхам 4: Эцсийн өргөдөл



Баяр хүргэе! Таны аппликешныг таны утсан дээр татаж авсан бөгөөд таны өмсдөг төхөөрөмжийг цэнэглэж өгөгдөл дамжуулж байна.
Аппыг ажиллуулна уу
Эхлэхийн тулд програмын эхлүүлэгч дүрс дээр дарна уу.
Зөвшөөрөл олгох
Апп зөв ажиллахын тулд та зарим зөвшөөрлийг ашиглахыг зөвшөөрөх шаардлагатай болно.
ТӨХӨӨРӨМЖ ХАЙХ
Дараа нь програмын зүүн дээд буланд байгаа "Scan" товчийг дарна уу.
ЭВХЭРЛЭХ ТӨХӨӨРӨМЖөө сонгоно уу
Дараа нь боломжтой BLE төхөөрөмжүүдийн жагсаалтаас өмсдөг төхөөрөмжөө сонгоно уу. Нэр нь "BLE Arduino Hardware". DATA АВАХ. Апп нь AGM -ийн өгөгдлийг авах бөгөөд хэрэглэгч хаана байгаа эсвэл хөдөлж байгааг тодорхойлох хүртэл хүлээнэ үү. Үр дүнг дэлгэцэн дээрээс үзээрэй. Өгөгдлийг дахин уншихын тулд синхрончлох товчийг дарна уу.
Зөвлөмж болгож буй:
Паркинсоны өвчний зүүж болох техник: 4 алхам

Паркинсоны өвчний элэгддэг технологи: Дэлхий даяар 10 сая гаруй хүн Паркинсоны өвчин (PD) -тэй амьдарч байна. Мэдрэлийн системийн дэвшилтэт эмгэг нь хөшүүн байдал үүсгэдэг бөгөөд өвчтөний хөдөлгөөнд нөлөөлдөг. Илүү энгийнээр хэлэхэд олон хүмүүс Паркинсоны өвчнөөр шаналж байсан ч
Зүүж болох гэрэл асаах Жак-О-дэнлүү: 5 алхам (зурагтай)

Wearable Light Up Jack-O-Lantern: Энд Halloween-ий өмнөхөн авах боломжтой 3D хэвлэсэн гайхалтай төсөл байна. Доорх алхмуудыг дагана уу, өөрийгөө зүүж болох 3D хэвлэсэн Жак-О-дэнлүү болгож, хүзүүндээ зүүж эсвэл ажлын ширээн дээрээ тавиад Hallowe-д оруулах боломжтой болно
ATtiny85 зүүж болох чичиргээтэй үйл ажиллагааг хянах цаг ба програмчлал ATtiny85 Arduino Uno -той: 4 алхам (зурагтай)

ATtiny85 зүүдэг чичиргээтэй үйлдлийг хянах цаг ба програмчлал ATtiny85 Arduino Uno -той хамт: Зүүж болох хөдөлгөөнийг хянах цагийг хэрхэн яаж хийх вэ? Энэ бол зогсонги байдлыг илрүүлэх үед чичиргээ хийх зориулалттай өмсдөг багаж юм. Та над шиг ихэнх цагаа компьютер дээр өнгөрөөдөг үү? Та өөрөө ч мэдэлгүй хэдэн цагаар сууж байна уу? Тэгвэл энэ төхөөрөмж нь
[Зүүж болох хулгана] Windows 10 болон Линуксд зориулсан Bluetooth дээр суурилсан элэгддэг хулганы хянагч: 5 алхам
![[Зүүж болох хулгана] Windows 10 болон Линуксд зориулсан Bluetooth дээр суурилсан элэгддэг хулганы хянагч: 5 алхам [Зүүж болох хулгана] Windows 10 болон Линуксд зориулсан Bluetooth дээр суурилсан элэгддэг хулганы хянагч: 5 алхам](https://i.howwhatproduce.com/images/006/image-17131-j.webp)
[Зүүж болох хулгана] Windows 10 болон Линуксд зориулсан Bluetooth дээр суурилсан зүүж болох хулганы хянагч: Би хулганы заагчийг хянах, компьютерын хулганатай холбоотой үйлдлийг ямар ч гадаргуу дээр хүрэлгүйгээр гүйцэтгэх боломжтой Bluetooth дээр суурилсан хулганы хянагч хийсэн. Бээлий дээр суурилуулсан электрон хэлхээг ашиглан
Зүүж болох Arduino худлаа таних бөгж: 7 алхам

Зүүх боломжтой Arduino худлаа таних бөгж: Эхлээд… хов живээс: Том, бага сургуулийн 5-р ангийн сурагч. Нэг удаа тэр гэртээ харихаар аавынхаа дэргэд суув. Эцэг нь удаан хугацааны турш эргэлдэж, эцэст нь тоос шороонд дарагдсан нэг жижиг зүйлийг олж авав