[STIoT] [Bài 00] Giới thiệu về BLE

Discussion in 'Communication' started by Ngô Văn Tuân, Mar 11, 2019.

  1. Ngô Văn Tuân

    Ngô Văn Tuân Thành Viên PIF

    Chào mọi người :1cool_byebye:,
    Hôm nay mình sẽ giới thiệu về những khái niệm cơ bản cần nắm được khi bước vào thế giới của Bluetooth. Khi trình bày ở thread này, mình sẽ dùng phương pháp tự hỏi tự trả lời hay nói ngắn gọn hơn là tự kỷ:D.
    OK, câu chuyện dài về IoT xin được bắt đầu kể từ đây :gach.
    [​IMG]
    1. Câu hỏi: Bluetooth là gì? Bluetooth low energy (BLE) là gì?
    Trả lời: Bluetooth là một chuẩn giao tiếp không dây, được phát triển từ những năm 1990 với mục đích ban đầu là để thay thế những sợi dây cáp trong việc truyền dữ liệu.
    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).​
    2. Câu hỏi: Thế giới đã có Wi-Fi rồi, sài Wi-Fi phê lắm rồi, cần gì có Bluetooth nữa chứ :doubt:?
    Trả lời 1: Người ta tạo ra cái gì cũng có lý do của nó, Bluetooth từ khi được tạo ra vẫn sống tới ngày hôm nay cũng có lý do của nó, không phải ngẫu nhiên mà mấy ông sản xuất điện thoại di động vẫn tích hợp Bluetooth trên điện thoại của họ cho dù sự phổ biến của nó không thể nào so sánh với Wi-Fi:-(. Bạn thấy Wi-Fi mạnh vì chỉ nhìn vào yếu tố tốc độ của nó nhưng mạnh ở chỗ này đôi khi lại gây ra điểm yếu ở chỗ khác. Chúng ta cần phải có một cái nhìn đa diện hơn để có thể chọn ra được công nghệ sẽ là solution cho vấn đề cần giải quyết=)).
    Trả lời 2: Trong Bluetooth có Bluetooth Low Energy, chuẩn kết nối này giúp các thiết bị có thể kết nối với nhau một cách tiết kiệm năng lương nhất, phù hợp với việc trao đổi các dữ liệu nhỏtần truyền nhận không cao:2cool_after_boom:. Ví dụ như các sensor nhiệt độ, độ ẩm cần gửi dữ liệu về trung tâm, mỗi lần gửi một lượng dữ liệu nhỏ, khoảng thời gian giữa các lần gửi lớn (từ 1s -> 1h --> 1ngày --> xxx ngày tùy theo nhu cầu của người sử dụng), nhưng các thiết bị này lại chạy bằng pin, khi chạy cần tiết kiệm năng lượng nhất có thể, do đó chuẩn giao tiếp Bluetooth Low Energy là một solution cho bài toán gửi dữ liệu về máy chủ.:6cool_boss:
    3. Câu hỏi: Thế ai là người quy định ra cái chuẩn kết nối Bluetooth này?
    Trả lời: Không phải một người mà là một tổ chức sẽ đưa ra những quy tắc chung để để các thiết bị có thể kết nối với nhau thông qua Bluetooth. Tổ chức này là Bluetooth Special Interesting Group (Bluetooth SIG). Cách thức giao tiếp thông qua Bluetooth sẽ có trong Bluetooth Core Specifications tìm thấy trên trang này.
    4. Câu hỏi: Ta thường nghe Bluetooth 5.x, 4.x, 3.x, ... vậy mấy cái đó là gì? Chúng có gì khác nhau nổi bật?
    Trả lời: Đó là các version của Bluetooth. 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).
    Capabilities: 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 trong specification. Thích việc 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: 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.
    Lưu ý 01: tốc độ truyền tải lý thuyết là tốc độ được tính dựa trên thời gian truyền của một bit, tốc độ truyền tải dữ liệu thực tế sẽ thấp hơn:-( vì một số lý do sau:
    • Packet overhead: không phải tất cả các byte trong packet đều là payload (dữ liệu cần phải truyền).
    • Gap between packet: khoảng thời gian delay giữa các packet.
    • Empty package: Packet trống cần phải được truyền nhận để giữ kết nối ngay cả khi không có dữ liệu cần truyền.
    Lưu ý 02: 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.
    Lưu ý 03: Thiết bị hỗ trợ Bluetooth x.x chưa chắc đã hỗ trợ hết các giao thức truyền dữ liệu của Bluetooth x.x được quy định trong Bluetooth Specification. Ví dụ như thiết bị hỗ trợ Bluetooth 4.0 chưa chắc đã có khả năng kết nối HS với các thiết bị hỗ trợ Bluetooth 4.0 khác có khả năng kết nối HS. Ví dụ một nguyên nhân đơn giản là thiết thiết bị đó chỉ hỗ trợ giao tiếp thông qua Bluetooth Low Energy là một phần của Bluetooth 4.0 specification.​
    5. Câu hỏi: Ta từng nghe về thứ gọi là Bluetooth smart? Bạn nào lỡ chưa nghe thì giờ nghe rồi đó=))!! Vậy Bluetooth smart là gì?
    Trả lời: Bluetooth smart là commercial name của Bluetooth Low Energy.
    Bonus:
    • 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 :gach).
    • Thiết bị hỗ trợ Bluetooth Smart Ready có thể kết nối tới cả thiết bị hỗ trợ Bluetooth Low Energy và Bluetooth Classic. Ví dụ như điện thoại di động của bạn rất có thể là 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.
    [​IMG]
    The relationship between Bluetooth Smart and Bluetooth Smart Ready devices (Source: Bluetooth SIG)
    Tiết mục tự hỏi tự trả lời đến đây là kết thúc.
    30s quảng cáo :4cool_beauty::
    [​IMG]

    nRF52832 là một con SoC (System on Chip) với những features nổi bật sau đây:
    • Protocol support: Bluetooth 5. Bluetooth mesh, ANT, 2.4GHz proprietary stack.
    • ARM Cortex-M4 CPU with floating point unit running att 64MHz.
    • NFC support.
    • Numerous digital peripherals and interfaces.
    • Sophisticated on-chip adaptive power management system
    Còn đây là development kit (DK) của nó:
    [​IMG]

    Thực hành:
    [​IMG]

    Trong bài thực hành lần này, chúng ta sẽ làm một ví dụ vô cùng đơn giản, đó là bật tắt LED thông qua Bluetooth.

    Demo sản phẩm
    Để làm được bài thực hành chúng ta cần có những công cụ như sau:
    • Phần cứng
      • 1 máy tính còn chạy được (đương nhiên rồi :5cool_sweat:)
      • nRF52 DK
      • 1 Smart phone hỗ trợ Bluetooth (kiếm cái smart phone không có Bluetooth cũng khó đấy :whaaat:)
    • Phần mềm:
      • Trên máy tính cần có Embedded studio.
      • Trên smart phone cần cài app nRF Blinky. Hoặc cũng có thể tải Android Studio về rồi tự build cái app này luôn. Source nó nằm trên github :6cool_boss:.
    Sau đây là hướng dẫn tải SDK, build code và nạp xuống DK:

    Sau khi đã nạp code thành công thì quay lại xem demo để biết cách sử dụng nhóe.​
    Kết thúc bài 00
     
    Last edited: Mar 31, 2019
    minh_t57, 2death and lttung1197 like this.
Loading...

Share This Page