Bluetooth, Beacon & iOS CoreBluetooth

by Minh Đại
597 views

Bluetooth

Bluetooth, một công nghệ không dây năng lượng thấp, tầm ngắn ra đời từ những ngày đầu của điện thoại di động, được sử dụng rộng rãi và có mặt trong hàng tỉ thiết bị và vật dụng hàng ngày. Bluetooth tạo ra một thế giới không cần dùng dây và là hình thức đầu tiên kết nối các thiết bị khác nhau, sản sinh ra những tính năng và hành vi tiêu dùng mới.

Bluetooth low energy (BLE)

Bluetooth Low Energy là chuẩn kết nối không dây hướng tới các ứng dụng tiết kiệm năng lượng (giải thích: việc truyền không dây thường tốn nhiều năng lượng, do đó, người ta cố gắng nghiên cứu những công nghệ, kỹ thuật sao cho việc truyền nhận dữ liệu không dây ít tiêu tốn năng lượng nhất có thể và thế là BLE ra đời).​

Bluetooth version

Trong quá trình phát triển của Bluetooth, Bluetooth SIG đã công bố nhiều version và vẫn đang tiếp tục phát triển các version mới

  • Bluetooth 1.x: Phiên bản Bluetooth đầu tiên, gần như không còn được sử dụng. Có tốc độ lý thuyết là 1Mbps – tốc độ này được giọi là Basic rate (BR).
    Capability : BR​
  • Bluetooth 2.x: Phiên bản nâng cấp của version 1.x cho tốc độ truyền tải lý thuyết cao hơn – 3 Mbps – tốc độ này được gọi là Enhanced data rate (EDR). Lưu ý: EDR là optional, thiết bị hỗ trợ Bluetooth 2.x vẫn có thể kết nối với tốc độ BR.
    Capability: BR + EDR​
  • Bluetooth 3.x: Hỗ trợ việc thay đổi lower layer. Các ứng dụng có lower layer thiết kế theo chuẩn của Bluetooth có thể chuyển qua sử dụng của chuẩn của giao thức 802.1 với tốc độ truyền tải dữ liệu cao hơn. Bluetooth 3.x có thể đạt tốc độ truyền tải lý thuyết lên đến 23Mbps – tốc độ này gọi là High speed (HS) và là một option của thiết bị hỗ trợ Bluetooth 3.x.
    Capability: BR + EDR + HS​
  • Bluetooth 4.x: Bổ sung thêm chuẩn giao tiếp Bluetooth Low Energy. Với ưu điểm là thu thập dữ liệu từ các thiết bị có tần số gửi data thấp, mỗi lần gửi một lượng data nhỏ (ví dụ: heart rate sensor, temperature sensor, humid sensor, …).
    Capability: BR + EDR + HS + LE​
  • Bluetooth 5.x: Go Faster. Go Further. Highlight Improvement: Range, Speed, bandwidth. Khoảng cách truyền dữ liệu lên đến 120m so với 30m của version 4.x. Tốc độ truyền tối đa của Bluetooth 5 low energy theo lý thuyết là 2Mbps, gấp đôi Bluetooth Low Energy 4.2 mà không làm tăng power consumption. Capability trong trường hợp này là khả năng hỗ trợ của version Bluetooth. Ví dụ như thiết bị mình mua về, nhà sản xuất kêu nó hỗ trợ Bluetooth 2.0 thì bạn không thể nào mong nó có khả năng kết nối với thiết bị hỗ trợ Bluetooth 3.0 với tốc độ HS. Tuy nhiên hai thiết bị này vẫn có thể kết nối với nhau với tốc độ EDR Note: Refer wiki dưới đây biết version bluetooth mà iOS device đang sử dụng:
    https://en.wikipedia.org/wiki/List_of_iOS_devices

Các kiểu thiết bị Bluetooth

• Thiết bị chỉ hỗ trợ Bluetooth Smart (Bluetooth Low Energy) không thể kết nối trực tiếp tới thiết bị chỉ hỗ trợ Bluetooth Classic (Bluetooth ít tiết kiệm năng lương)

• Thiết bị hỗ trợ Bluetooth Smart Ready có thể kết nối trực tiếp với cả thiết bị hỗ trợ Bluetooth Low Energy và Bluetooth Classic. Ví dụ như iphone sẽ là 1 thiết bị Bluetooth smart ready và nó có thể kết nối với tai nghe không dây thông qua chuẩn Bluetooth Classic và cũng có thể kết nối với smart watch thông qua chuẩn Bluetooth Low Energy.

Beacon

Beacons là các máy phát không dây nhỏ, sử dụng công nghệ Bluetooth Low Energy để gửi tín hiệu đến các thiết bị thông minh khác gần đó. Đây là một trong những phát triển mới nhất trong công nghệ vị trí và tiếp thị gần (Proximity Marketing). Nói một cách đơn giản, chúng kết nối và truyền thông tin đến các thiết bị thông minh giúp cho việc tìm kiếm và tương tác dựa trên vị trí trở nên dễ dàng và chính xác hơn.

Ưu thế lớn nhất của BLE là tiết kiệm năng lượng, cho phép beacons truyền thông tin liên tục lên đến 2-3 năm chỉ với một viên pin nhỏ. Khoảng cách truyền BLE cũng lên đến 100m như Classic Bluetooth.

BLE có hai chế độ trao đổi thông tin:

Advertising: chỉ truyền một chiều

Connecting: trao đổi hai chiều

Beacons chỉ sử dụng chế độ truyền advertising (chỉ gửi thông tin một chiều). Beacons theo một chu kỳ sẽ phát thông tin quảng bá để các thiết bị khác như smartphone nhận. Beacons có thể phát với chu kỳ từ 20ms đến 10s, chu kỳ càng dài thì thời lượng pin càng lâu.

Thiết bị Beacon rất đơn giản. Mỗi thiết bị chứa CPU, radio và pin, và nó hoạt động bằng cách liên tục phát ra một mã định danh (ID) . Mã nhận dạng này được chọn bởi thiết bị của bạn, thường là điện thoại di động và đánh dấu một vị trí quan trọng trong môi trường của bạn. Mã định danh là số ID duy nhất mà điện thoại thông minh của bạn nhận ra là duy nhất cho Beacon. Sau khi kết nối, Beacon sẽ thực hiện bất kỳ chức năng nào nó đã được lập trình bao gồm : quảng cáo, điều hướng, theo dõi…

Chúng ta có thể xem xét ví dụ điển hình về quảng cáo trong Mall:

Bước 1: Người dùng tìm kiếm ở Google về “Black Shoes”
Bước 2: Quảng cáo tìm kiếm Google của bạn xuất hiện.
Bước 3: Người dùng nhấp vào quảng cáo tìm kiếm, duyệt sản phẩm, sau đó đóng điện thoại của họ.
Bước 4: Người dùng này quyết định họ muốn thử giày trước khi mua, vì vậy họ bước vào cửa hàng của bạn.
Bước 5: Khi họ vào cửa hàng, điện thoại của họ nhận một số nhận dạng ID từ Beacon của cửa hàng của bạn.
Bước 6: Beacon nhận ra rằng điện thoại này giống với điện thoại đã nhấp vào quảng cáo tìm kiếm của bạn và liên kết dữ liệu này với tài khoản Google Ads của bạn dưới dạng chuyến thăm cửa hàng trên mạng.

Bằng cách ghi nhật ký lượt truy cập cửa hàng thực tế từ quảng cáo tìm kiếm của bạn, công nghệ này sẽ giúp bạn hiểu được tác động và hiệu quả của quảng cáo tìm kiếm của bạn. Nếu bạn thấy họ đang thu hút rất nhiều lượt truy cập vào cửa hàng của bạn, bạn có thể muốn đầu tư nhiều hơn vào tìm kiếm.

Beacons gửi dữ liệu gì?

Một gói tin để các thiết bị đọc được phải tuân theo các chuẩn đã được định trước, trước tiên là gói dữ liệu advertising. Một gói tin advertising có độ dài lên đến 47 bytes.

  • Preamble (1 byte)
  • Access Address (4 bytes) – 8E 89 BE D6
  • PDU Header (2 bytes)
  • PDU MAC address (6 bytes)
  • PDU Data (0-31 bytes)
  • CRC (3 bytes)

Phân loại Beacon

IBeacon Là giao thức BLE được Apple đưa ra 12/2013, đây là một bộ giao thức chính thức đầu tiên về BLE, đa số mọi beacons đều hỗ trợ. Giao thức này được hỗ trợ chỉ trên iOS, nhưng hiện nay có thể tìm rất nhiều hàm API hỗ trợ tìm kiếm các iBeacon trên Android. Cần có một ứng dụng để tìm kiếm beacons và thực hiện các thao tác với chúng.

  • iBeacon hỗ trợ hai kiểu tương tác, giám sát (monitoring) và vùng phủ
    (ranging). Với chế độ giám sát ứng dụng sẽ cảnh báo ngay cả khi ứng
    dụng đã tắt. Khác chế độ giám sát, chế độ cự ly chỉ hoạt động khi ứng
    dụng đang chạy.
  • Với iBeacon thì các beacon sẽ phát ra dữ liệu gì?, chúng phát ba
    thông tin UUID, Major, và Minor. Sẽ không bao giờ có hai beacon cùng
    UUID, Major, và Minor.

Eddystone Là giao thức BLE do Google công bố 7/2015, được hỗ trợ chính thức trên cả hai nền tảng iOS và Android. Là một giao thức mở và hỗ trợ nhiều gói tin khác nhau. Chỉ hỗ trợ một kiểu tương tác cơ bản, gần giống với vùng phủ của iBeacon.

Các gói tin của Eddystone gồm có:

  • Eddystone-UID: gần giống gói tin của iBeacon, gồm các thông tin
    Namespace (chức năng giống UUID của iBeacon) và Instance (chức năng
    giống Major và Minor của iBeacon)
  • Eddystone-URL: gửi thông tin một đường dẫn site . Với gói tin này
    trên điện thoại sẽ mở site và ko cần cái ứng dụng.
  • Eddystone-TLM: là gói tin gửi các thông tin của beacons như điện áp
    pin, nhiệt độ, số gói tin đã gửi, và thời gian bật beacons. Gói tin
    này sẽ gửi với chu kỳ dài hơn hai gói trên.

Ứng dụng của Beacon

Công nghệ Beacon còn rất nhiều mở rộng trong tương lai, nên việc sử dụng nó vẫn đang được phát hiện. Hiện tại, trọng tâm chính vẫn là trong lĩnh vực điều hướng và và quảng cáo. Đây là nơi bạn thấy các công ty đầu tư mạnh vào thời điểm này.

•Sản xuất
•Quản lý chuỗi cung ứng
•Bán buôn / bán lẻ / thương mại
•Nhà hàng, khách sạn
•Du lịch
•Giáo dục
•Chăm sóc sức khỏe

Core bluetooth là gì ?

Core Bluetooth là một framework cung cấp các lớp cần thiết cho ứng dụng iOS và MacOS có thể giao tiếp với các thiết bị có hỗ trợ công nghệ không dây bluetooth được trang bị các chuẩn low energy (LE) và Basic Rate / Enhanced Data Rate (BR/EDR) .

Central, Peripheral

Có hai đối tượng chính trong quá trình giao tiếp Bluetooth: central và peripheral.

  • Một peripheral thường là một đối tượng có chứa dữ liệu, và các thiết
    bị khác sẽ cần sử dụng dữ liệu đó.
  • Một central thường là một đối tượng mà sử dụng thông tin được cung
    cấp bởi peripheral để thực hiện một nhiệm vụ nào đó.

Ví dụ: Một chiếc máy đo nhịp tim (peripheral) chứa những thông tin hữu ích mà các ứng dụng trên điện thoại và máy tính (central) cần để hiển thị nhịp tim của người sử dụng theo một cách dễ hình dung trên màn hình.

Central

Central phát hiện và kết nối tới các Peripheral đang advertising

• Peripheral phát tán một vài dữ liệu của chúng ở dạng advertising packet. Một advertising packet là như một gói dữ liệu nhỏ chứa những thông tin mà peripheral phải cung cấp để nhận dạng, ví dụ như tên của peripheral và chức năng chính của nó. Ví dụ, một máy điều hòa nhiệt độ phải advertise rằng chúng cung cấp nhiệt độ hiện tại của căn phòng. Trong công nghệ Bluetooth, advertising là cách chính để peripheral thể hiện sự có mặt của nó.

• Một central, mặt khác, sẽ quét và lắng nghe bất cứ thiết bị peripheral nào đang advertising thông tin mà nó muốn, sau đó có thể yêu cầu quyền truy cập tới thiết bị đó.

Dữ liệu của một Peripheral được cấu trúc như thế nào ?

Mục đích của việc kết nối tới peripheral là dò xét và tương tác với với dữ liệu mà nó cung cấp, và trước khi làm vậy, sẽ tốt hơn nếu bạn hiểu dữ liệu của peripheral được cấu trúc ra sao.

• Peripheral có thể bao gồm một hoặc nhiều service hoặc cung cấp thông tin hữu ích về cường độ tín hiệu kết nối. Một service là một tập dữ liệu và hành vi đi kèm để thực hiện một chức năng hay một tính năng của thiết bị. Ví dụ, một service của máy đo nhịp tim là đưa ra dữ liệu nhịp tim từ bộ cảm biến.

• Service được tạo nên từ các characteristic hoặc từ việc sử dụng các service khác. Một characteristic cung cấp những thông tin chi tiết hơn về một service của peripheral. Ví dụ, service nhịp tim vừa mô tả ở trên có thể bao gồm một characteristic mô tả vị trí hướng cơ thể của bộ cảm biến và một characteristic khác trao đổi dữ liệu tính toán nhịp tim. Hình dưới đây cung cấp một cấu trúc có thể có về service và characteristic của một máy đo nhịp tim.

Central dò xét và tương tác với dữ liệu của Peripheral

• Sau khi central thiết lập kết nối thành công tới peripheral, nó có thể thấy được toàn bộ service và characteristic mà peripheral cung cấp (dữ liệu lúc advertising có thể chỉ là một phần của những service hiện có).

• Một central có thể tương tác với service của peripheral bằng việc đọc và ghi các characteristic của service đó. Ví dụ, ứng dụng của bạn có thể yêu cầu thông tin về nhiệt độ phòng từ một máy điều hòa nhiệt độ hoặc cung cấp cho máy điều hòa nhiệt độ một giá trị để thiết lập nhiệt độ phòng.

Khi thiết bị của bạn đóng vai trò là Central

Phần lớn các hoạt động khi xử lý với Bluetooth của bạn nằm ở phía central

Ở phía central, một thiết bị local central được thể hiện bởi một đối tượng CBCentralManager. Đối tượng này được sử dụng để quản lý việc phát hiện và kết nối tới thiết bị remote peripheral (thể hiện bởi đối tượng CBPeripheral), bao gồm việc quét, phát hiện, và kết nối tới peripheral đang advertising.

Thiết bị central sẽ có nhiệm vụ tìm và kết nối tới các peripheral, sau đó sẽ đọc và tương tác với dữ liệu của peripheral đó.

  • Khởi tạo central manager object
  • Tìm kiếm và kết nối tới một peripheral nào đó đang phát sóng.
  • Đọc dữ liệu trên peripheral sau khi kết nối thành công.
  • Gửi các request đọc và ghi một characteristic nào đó của các dịch vụ trong peripheral.
  • Đăng ký nhận thông báo khi một characteristic cập nhật.

Refer:
https://developer.apple.com/library/archive/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/PerformingCommonCentralRoleTasks/PerformingCommonCentralRoleTasks.html#//apple_ref/doc/uid/TP40013257-CH3-SW1

Khi thiết bị của bạn đóng vai trò là Peripheral

Máy Mac sử dụng MacOS 10.9 trở lên, thiết bị iOS sử dụng iOS 6.0 trở lên có chứa các tính năng để tương tác như một peripheral, cung cấp dữ liệu cho các thiết bị khác, bao gồm các máy Mac, iPhone và iPad khác. Khi thiết lập thiết bị của bạn để thực thi trong vai trò peripheral, bạn đang thực hiện những hoạt động ở phía peripheral trong việc giao tiếp giữa các thiết bị Bluetooth.

  • Ở phía peripheral, một thiết bị local peripheral được thể hiện bởi đối tượng CBPeripheralManager. Đối tượng này được sử dụng để quản lý các service công khai bên trong cơ sở dữ liệu về service và characteristic của thiết bị local peripheral, và có nhiệm vụ advertising các service này tới các thiết bị remote central (thể hiện bởi đối tượng CBCentral). Đối tượng peripheral manager còn được sử dụng để trả lời các yêu cầu đọc và ghi từ remote central.

Thiết bị peripheral có nhiệm vụ cung cấp, phát tán các service của nó, và trả lời các request từ central.

  • Khởi tạo một peripheral manager object.
  • Thiết lập các service và characteristic trên thiết bị.
  • Publish các service và characteristic tới database của thiết bị.
  • Phát tán các service.
  • Trả lời các yêu cầu đọc và ghi từ các central được kết nối.
  • Gửi các giá trị của characteristic cho các central đã đăng ký (subscribe).

Refer:
https://developer.apple.com/library/archive/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/PerformingCommonPeripheralRoleTasks/PerformingCommonPeripheralRoleTasks.html#//apple_ref/doc/uid/TP40013257-CH4-SW1

Lời kết

Qua bài viết trên đây hi vọng mọi ngừời sẽ nắm được những thông tin cơ bản của bluetooth cũng như các ứng dụng của nó tới đời sống, ngoài ra các bạn hãy code demo về corebluetooth như guide của apple mình đã refer link ở trên nhé.

Leave a Comment

* By using this form you agree with the storage and handling of your data by this website.